diff --git a/README.md b/README.md index 28ce8b2448b..62d70d561c9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
**English** · [简体中文](docs/readme/README_zh.md) · [繁體中文](docs/readme/README_zh-TW.md) · [日本語](docs/readme/README_ja.md) · [한국어](docs/readme/README_ko.md) · [Türkçe](docs/readme/README_tr.md) · [Русский](docs/readme/README_ru.md) · [Tiếng Việt](docs/readme/README_vi.md) · [ไทย](docs/readme/README_th.md) · [Deutsch](docs/readme/README_de.md) · [Español](docs/readme/README_es.md) · [Français](docs/readme/README_fr.md) · [Українська](docs/readme/README_uk.md) · [Polski](docs/readme/README_pl.md) · [Português (Brasil)](docs/readme/README_pt-BR.md) · [العربية](docs/readme/README_ar.md) · [فارسی](docs/readme/README_fa.md) · [Bahasa Indonesia](docs/readme/README_id.md) · [Italiano](docs/readme/README_it.md) -· [Ελληνικά](docs/readme/README_el.md) · [മലയാളം](docs/readme/README_ml.md) · [Roman Urdu](docs/readme/README_ur-Latn.md) · [Română](docs/readme/README_ro.md) +· [Ελληνικά](docs/readme/README_el.md) · [മലയാളം](docs/readme/README_ml.md) · [Roman Urdu](docs/readme/README_ur-Latn.md) · [Română](docs/readme/README_ro.md) · [বাংলা](docs/readme/README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_ar.md b/docs/readme/README_ar.md index 2b42cd96883..430ddbcfa02 100644 --- a/docs/readme/README_ar.md +++ b/docs/readme/README_ar.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · **العربية** · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: هندسة عكسية لأي شيء diff --git a/docs/readme/README_bn.md b/docs/readme/README_bn.md new file mode 100644 index 00000000000..e52b6149e4c --- /dev/null +++ b/docs/readme/README_bn.md @@ -0,0 +1,408 @@ +
+ +[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) · [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · **বাংলা** + +# REA: Reverse Engineer Anything + +### বাইনারি, অ্যাপ্লিকেশন এবং runtime আচরণ — সবকিছুর reverse engineering-এর জন্য একটিই MCP। + +**পছন্দের কোনো ফিচার চোখে পড়েছে? সেটি কীভাবে কাজ করে, বাইনারি স্তর পর্যন্ত বুঝে নিন।** + +[![npm version](https://img.shields.io/npm/v/rea-agents?style=flat-square&color=cb3837)](https://www.npmjs.com/package/rea-agents) +[![MCP tool catalog](https://img.shields.io/badge/MCP-tool_catalog-5c4ee5?style=flat-square)](../mcp-contracts.md#generated-catalog) +[![Node.js requirements](https://img.shields.io/badge/Node.js-requirements-339933?style=flat-square&logo=nodedotjs&logoColor=white)](#current-status) +[![skills.sh](https://skills.sh/b/morluto/rea?style=flat-square)](https://skills.sh/morluto/rea/reverse-engineer-anything) +[![MIT license](https://img.shields.io/badge/license-MIT-f4c430?style=flat-square)](../../LICENSE) +[![Discord](https://img.shields.io/discord/1556595354999332884?logo=discord&logoColor=white&label=Discord&color=5865F2)](https://discord.gg/GkcryMnJDM) + +morluto%2Frea | Trendshift + +**[ওয়েবসাইট](https://rea.tools/bn/) · [গাইড](https://rea.tools/bn/guides/) · [শোকেস](https://rea.tools/bn/showcase/)** + +[দ্রুত শুরু](#দ্রুত-শুরু) · [REA কীভাবে কাজ করে](#rea-কীভাবে-কাজ-করে) · [কী কী বিশ্লেষণ করা যায়](#কী-কী-বিশ্লেষণ-করা-যায়) · [শোকেস](#শোকেস) · [সাধারণ প্রশ্নোত্তর](#সাধারণ-প্রশ্নোত্তর-faq) · [GNU objdump ও Rizin টুল](../reverse-engineering-tools.md) · [ডকুমেন্টেশন](#ডকুমেন্টেশন) + +npx rea-agents setup + +
+ +> [!IMPORTANT] +> REA-এর অফিসিয়াল উৎস: [morluto/rea](https://github.com/morluto/rea), [rea.tools](https://rea.tools/), [rea-agents](https://www.npmjs.com/package/rea-agents) (npm)। +> ইনস্টলেশন ও release লিংকের জন্য এই অফিসিয়াল উৎসগুলোই অনুসরণ করুন। একই রকম repository নাম বা কপি করা README দেখে কোনো download অফিসিয়াল বলে ধরে নেওয়া যায় না। + +
+ +
+ +একটি native বাইনারি পরীক্ষার সময় Hopper-এর ভেতরে REA তার analysis bridge চালু করছে + +

+ + + + + +
+ + Discord
+ Reverse Engineering কমিউনিটিতে যোগ দিন +

+ Discord · প্রশ্নোত্তর · Show and Tell +
+ +
+ +
+ +--- + +কোনো অ্যাপের এমন একটি ফিচার দেখেছেন যা নিজের প্রোডাক্টে চান? আপনার agent-কে REA দিয়ে সেটি খুঁজে দেখতে বলুন। সোর্স কোড ছাড়াই এটি অ্যাপটি পরীক্ষা করতে পারে, ফিচারটি কীভাবে কাজ করে তা ব্যাখ্যা করতে পারে, প্রমাণ দেখাতে পারে এবং আপনার প্রজেক্টের জন্য একটি সংস্করণ তৈরি করে দিতে পারে। + +REA আপনার agent-কে native বাইনারি, JavaScript ও Electron অ্যাপ, .NET assembly এবং ওয়েবসাইট পরীক্ষা করার টুলের সঙ্গে যুক্ত করে। একই টুল আপনি টার্মিনাল থেকেও ব্যবহার করতে পারেন। বিশ্লেষণ চলে আপনার নিজের কম্পিউটারে, আর প্রতিটি সিদ্ধান্তের পেছনের প্রমাণ ও সীমাবদ্ধতা ফলাফলেই থাকে। + +Setup আপনার agent-এ REA নিবন্ধন করে এবং মানানসই workflow নির্দেশনা ইনস্টল করে। Native বিশ্লেষণে আগে থেকে ইনস্টল করা Hopper, Ghidra বা IDA ব্যবহার করা যায়; চাইলে setup আপনার অনুমোদন নিয়ে Hopper ইনস্টল করে দিতে পারে। Static JavaScript বিশ্লেষণের জন্য কোনো native analysis engine লাগে না। + +> **[REA ওয়েবসাইট দেখুন](https://rea.tools/bn/)** — সেখানে setup নির্দেশনা, ছবিসহ গাইড এবং বাস্তব case study পাবেন। + +## দ্রুত শুরু + +Linux-এ Ghidra, JADX, firmware tool চালু করা এবং static JavaScript/Electron +বিশ্লেষণের জন্য process ownership যাচাইয়ে REA-এর `PATH`-এ একটি +procps-সামঞ্জস্যপূর্ণ `ps` লাগে। পুনরুদ্ধারের ধাপ `docs/installation.md`-এর +"Linux owned-process prerequisite" শিরোনামের নিচে আছে। + +### আপনার agent সেট আপ করুন + +Node.js ও npm ইনস্টল থাকলে চালান: + +```bash +npx rea-agents setup +``` + +আপনার agent বেছে নিন, প্রস্তাবিত পরিবর্তনগুলো দেখে নিন এবং অনুমোদন দিন। Setup +REA-এর MCP server ও মানানসই workflow নির্দেশনা যোগ করে, আর বিদ্যমান +configuration-এর ব্যাকআপ রাখে। এরপর আপনার agent রিস্টার্ট করুন। + +Setup সমর্থন করে Claude Code, Codex, Cursor, Gemini CLI, Grok Build এবং +[অন্যান্য agent](../installation.md#supported-agents)। Provider configuration ও +ম্যানুয়াল MCP নিবন্ধনের জন্য [ইনস্টলেশন ও setup](../installation.md) দেখুন। + +Context-এর বাড়তি চাপ কমাতে MCP ডিফল্টভাবে compact input schema ব্যবহার করে। পুরো +field নির্দেশনা ও nested validation-এর বিস্তারিত দরকার হলে আপনার MCP নিবন্ধনে +`REA_MCP_INPUT_SCHEMA_PROFILE=full` সেট করুন। দুই profile-এই সব tool থাকে এবং +server-এর canonical validation বজায় থাকে। বিস্তারিত জানতে MCP contracts গাইডের +"Compact input schema profile" অংশটি দেখুন। + +### আপনার agent-কে জিজ্ঞাসা করুন + +```text +Notes অ্যাপে search কীভাবে কাজ করে তা বুঝে নাও, আমাকে প্রমাণ দেখাও, এবং আমার +প্রজেক্টের জন্য একই রকম একটি ফিচার তৈরি করো। +``` + +Notes-এর জায়গায় আপনার টার্গেট অ্যাপ এবং যে ফিচারটি বুঝতে চান সেটি বসান। + +### টার্মিনাল ব্যবহার করুন + +Extract করা একটি JavaScript/Electron অ্যাপ ডিরেক্টরি বা ASAR পরীক্ষা করুন: + +```bash +npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json +``` + +ফলাফলে module, import, Electron boundary এবং সেগুলোর প্রমাণ থাকে। +Path-এর জায়গায় আপনার টার্গেট দিন, যেমন Windows-এ `"D:/apps/example"`। + +নিয়মিত ব্যবহারের জন্য `rea` কমান্ড ইনস্টল করতে: + +```bash +npm install --global rea-agents +rea --help +``` + +Native বিশ্লেষণের জন্য আগে একটি provider কনফিগার করুন। Native কমান্ড, provider +বাছাই, snapshot এবং scripting-এর জন্য [CLI ও Evidence গাইড](../cli.md) দেখুন। + +### REA আপডেট করুন + +REA দ্রুত বদলায়, এবং নতুন release-এ প্রায়ই bug fix থাকে। আপনার +ইনস্টলেশন হালনাগাদ রাখুন। + +`npm install --global` বা `bun add --global` দিয়ে ইনস্টল করা CLI-এর জন্য: + +```bash +rea update +``` + +Bun-এ global আপডেটের জন্য Bun 1.2.17 বা তার পরের সংস্করণ লাগবে। পুরোনো Bun +থাকলে `rea update` চালানোর আগে নিজে Bun আপগ্রেড করে নিন। + +আপনার agent নিবন্ধন ও skill রিফ্রেশ করতে, আপডেটের পর যে setup কমান্ডটি +দেখানো হয় সেটি চালান। + +`npx` ব্যবহার করলে আপনার agent setup আপডেট করুন এভাবে: + +```bash +npx rea-agents@latest setup +``` + +Setup-এর পরিবর্তনগুলো দেখে নিয়ে আপনার agent রিস্টার্ট করুন। একবারের CLI কমান্ডের জন্য +`npx rea-agents@latest`-এর পরে কমান্ডটি লিখুন। Bun-এ `npx rea-agents@latest`-এর +বদলে `bunx rea-agents@latest` ব্যবহার করুন। + +## REA কীভাবে কাজ করে + +আপনার agent MCP-এর মাধ্যমে REA-কে call করে টার্গেট পরীক্ষা করে এবং প্রাসঙ্গিক কোড trace করে। +REA প্রমাণসহ ফলাফল ফেরত দেয়। Agent সেগুলো ব্যবহার করে পরবর্তী প্রশ্ন করে, +আচরণ ব্যাখ্যা করে, অথবা একটি implementation লিখে test করে। +CLI কমান্ডও একই workflow ব্যবহার করে। + +![REA অনুসন্ধানের ধারা: আপনার agent একটি local টার্গেট সম্পর্কে প্রশ্ন করে, REA analysis টুল দিয়ে সেটি পরীক্ষা ও trace করে, আর agent ফেরত পাওয়া কোড, reference ও অজানা বিষয়গুলো ব্যবহার করে ব্যাখ্যা, implementation ও test করে।](../../website/public/assets/figures/rea-investigation-flow.svg) + +[পূর্ণ আকারের চিত্রটি খুলুন](../../website/public/assets/figures/rea-investigation-flow.svg)। + + + +## কী কী বিশ্লেষণ করা যায় + +REA-এর জন্য লাগবে Node.js 22.x (>=22.23.4), 24.x (>=24.22.1) বা 26.12.1+, সঙ্গে npm। +অতিরিক্ত টুল ও host সমর্থন টার্গেটের ওপর নির্ভর করে: + +| টার্গেট | REA কী ফেরত দেয় | প্রয়োজনীয়তা ও গাইড | +| ----------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| ডেস্কটপ ইনস্টলেশন | Runtime candidate, সহায়ক ফাইল, component marker ও পরবর্তী probe | বিল্ট-ইন সীমিত directory/header পরীক্ষা; [ডেস্কটপ অ্যাপ্লিকেশন](../desktop-applications.md) | +| Native বাইনারি | Pseudocode, assembly, string, symbol, call ও reference | Hopper, Ghidra বা IDA; [native বিশ্লেষণ](../native-investigation.md) | +| Offline ELF layout | Section, segment, মূল symbol/relocation এবং static mitigation-এর সম্ভাব্য তালিকা | Linux x64-এ caller-এর দেওয়া pwntools; [binary diagnostics](../binary-diagnostics.md) | +| Go বাইনারি | Embedded compiler সংস্করণ, module, replacement ও build setting | বিল্ট-ইন static ELF/PE/thin Mach-O পরীক্ষা; Go ইনস্টল করার দরকার নেই | +| GPU code object | CUDA/HIP target, নির্বাচিত kernel-এর parameter ও resource এবং সংরক্ষিত PTX text | বিল্ট-ইন static ELF/PE/fatbin/CUBIN/PTX পরীক্ষা; [GPU code object](../gpu-code-objects.md) | +| Model artifact | GGUF / safetensors metadata, tensor ঘোষণা ও উদ্ভূত মোট মান | বিল্ট-ইন header পরীক্ষা; ঐচ্ছিক পূর্ণ-ফাইল hash; [model ফাইল](../model-artifacts.md) | +| IL2CPP metadata | Unity global-metadata.dat-এর assembly image, type ও method-এর নাম এবং index range | বিল্ট-ইন static decoding (version 24, 27, 29, 31 ও 39); Unity লাগে না | +| Godot PCK | Archive-এর তালিকা ও extraction, মূল header/directory তথ্য এবং নির্বাচিত content identity | বিল্ট-ইন static format 2, 3 ও 4; Godot লাগে না | +| Rust বাইনারি | এমবেড করা cargo-auditable crate-এর নাম, সংস্করণ, উৎস ও dependency সম্পর্ক | বিল্ট-ইন static ELF/PE/thin Mach-O পরীক্ষা; [Rust বাইনারি](../rust-binaries.md) | +| PE certificate | Authenticode WIN_CERTIFICATE entry এবং PKCS#7 signer/X.509 পরিচয়ের field | বিল্ট-ইন static PE পরীক্ষা; [PE certificate](../pe-certificates.md) | +| PE import | Import ও delay-load DLL-এর নাম, ordinal, IAT RVA এবং pefile import hash | বিল্ট-ইন static PE পরীক্ষা; [PE import](../pe-imports.md) | +| ELF note | PT_NOTE/SHT_NOTE owner, type, GNU build-id ও ABI-tag field | বিল্ট-ইন static ELF পরীক্ষা; [ELF note](../elf-notes.md) | +| Apple IPS crash | .ips metadata, thread, image, register এবং নথিভুক্ত crash শ্রেণি | বিল্ট-ইন static JSON পরীক্ষা; [Apple IPS](../apple-ips.md) | +| Linux kernel module | .modinfo key, __versions CRC, this_module উপস্থিতি এবং signature trailer | বিল্ট-ইন static ELF পরীক্ষা; [kernel module](../kernel-modules.md) | +| Erlang BEAM | IFF chunk, atom, export, import, lambda এবং Code header | বিল্ট-ইন static BEAM পরীক্ষা; [Erlang BEAM](../erlang-beam.md) | +| WASM artifact | Validation, section, হুবহু import/export WAT রূপ এবং decode করা WAT | Caller-এর দেওয়া WABT 1.0.42; `inspect_wasm_artifact` | +| EVM bytecode | Dispatch selector, byte offset, অনুমিত argument ও mutability | Linux x64-এ local raw/hex carrier; [offline EVM গাইড](../evm-bytecode.md) | +| SQLite ডেটাবেস | Table, column, index, view, trigger এবং নির্বাচিত সাধারণ table-এর row | Local database/WAL snapshot; native SQLite সীমাসহ Node.js 24.x >=24.15 বা 26+ | +| রেকর্ড করা Linux crash | Raw note, রেকর্ড করা প্রতিটি thread-এর register/signal এবং ঐচ্ছিক mapping candidate | Linux x64-এ caller-এর দেওয়া pwntools; ঐচ্ছিক GDB/pwndbg; [রেকর্ড করা crash](../recorded-crashes.md) | +| JavaScript / Electron | Module, import, source map, route, IPC এবং native add-on-এর সম্পর্ক | Node.js ও npm; Linux: procps-সামঞ্জস্যপূর্ণ `ps`; [অ্যাপ্লিকেশন বিশ্লেষণ](../javascript-application-workflows.md) | +| ওয়েবসাইট | পেজের গঠন, script, network পর্যবেক্ষণ এবং অনুরোধ করা screenshot | একটি Chrome-ঘরানার ব্রাউজার; [ব্রাউজার বিশ্লেষণ](../browser-observation.md) | +| সংরক্ষিত network capture | Request, response, উন্মুক্ত payload ও source location | HAR বা Fiddler Everywhere SAZ; native mitmproxy capture-এর জন্য Linux-এ mitmdump; [capture গাইড](../web-network-captures.md) | +| .NET assembly | Metadata, CIL instruction, ঘোষিত native dependency এবং build তুলনা | কিছু লাগে না (শুধু static); [managed-code গাইড](../managed-code-analysis.md) | +| Android APK | Manifest ঘোষণা, class, decompile করা method ও reference | Linux/macOS/Windows x64-এ headless JADX ও পূর্ণ JDK; [Android গাইড](../android-analysis.md) | +| APK signature | v1/v2/v3/v3.1 signer, certificate fingerprint, key rotation এবং digest-এর অভ্যন্তরীণ সামঞ্জস্য | কিছু লাগে না (শুধু static); `inspect_apk_signature` | +| Android ডিভাইস | ডিভাইস, package, process, log, dump, screen capture এবং APK/ফাইল আদান-প্রদান | Caller-এর দেওয়া adb (emulator বা হার্ডওয়্যার); [ADB গাইড](../adb-device-analysis.md) | +| JEB প্রজেক্ট | Engine-চালিত project unit, artifact digest এবং type/method pseudo-code | REA_JEB_MCP_URL দিয়ে নির্বাচিত, caller-এর চালু করা একটি MCP-সার্ভিং JEB client; [JEB গাইড](../jeb-analysis.md) | +| Android resource | Decode করা manifest, string table, locale ও সংস্করণের তথ্য | Caller-এর দেওয়া Apktool launcher; [resource গাইড](../apktool-resource-analysis.md) | +| Flutter অ্যাপ | Dart snapshot hash, প্রতিটি ABI-এর library digest এবং engine build-এর উৎস | কিছু লাগে না (static APK parsing); [Flutter গাইড](../flutter-analysis.md) | +| Firmware | Region, extraction-এর ফলাফল এবং native বিশ্লেষণে হস্তান্তর | Linux-এ Binwalk / Unblob; [firmware গাইড](../firmware-analysis.md) | +| রেকর্ড করা packet | নির্বাচিত field, পুনরাবৃত্ত value, filter এবং decode-as rule | Linux: TShark 4.x + prlimit; [capture গাইড](../packet-captures.md) | +| Packet সারাংশ | Endpoint, DNS, TLS SNI, protocol বণ্টন এবং HTTP request | Caller-এর দেওয়া tshark ও capinfos (Linux-এ যাচাই করা); [pcap গাইড](../pcap-analysis.md) | +| রেকর্ড করা logic signal | Decoder annotation, sample range এবং diagnostics | Linux: sigrok-cli 0.7.2 + prlimit; [signal রেকর্ডিং](../signal-recordings.md) | +| Package ও resource | ফাইলের তালিকা, digest, plist, Apple bundle-এর গঠন এবং extract করা resource | [Artifact ও JavaScript গাইড](../javascript-artifact-reconstruction.md), [Apple অ্যাপ্লিকেশন](../apple-application-analysis.md) | +| Process-এর আচরণ | টার্মিনাল output, interaction, exit ও filesystem পর্যবেক্ষণ এবং run-এর তুলনা | Native PTY-সহ Linux/macOS; [process capture](../process-capture.md) | +| PyInstaller executable | CArchive member, Python সংস্করণ, entry script ও extract করা bytecode | কিছু লাগে না (শুধু static); [Python প্যাকেজ করা অ্যাপ্লিকেশন](../python-packaged-applications.md) | + +Static JavaScript ও .NET পরীক্ষা অ্যাপ্লিকেশন না চালিয়েই দেওয়া ফাইলগুলো পড়ে। +Runtime capture আপনার user permission নিয়ে নির্বাচিত টার্গেট চালায় বা তার সঙ্গে +interact করে; প্রতিটি runtime গাইডে এর প্রভাব বর্ণনা করা আছে। + + + +Native format ও host সমর্থন provider ভেদে আলাদা। দেখুন +[Hopper ও Ghidra setup](../installation.md#hopper), +[IDA গাইড](../ida-provider.md) (ঐচ্ছিক native MCP bridge-সহ), +[Kuna decompiler গাইড](../kuna-provider.md) এবং +[পরীক্ষামূলক Windows Ghidra সমর্থন](../windows-ghidra-p0.md)। +Ghidra [16-bit DOS বিশ্লেষণ](../ghidra-dos.md)-ও সমর্থন করে। +বড় বাইনারির জন্য `REA_GHIDRA_STARTUP_TIMEOUT_MS` বা `REA_HOPPER_STARTUP_TIMEOUT_MS` +দিয়ে provider-এর startup deadline বাড়িয়ে দিন। +Provider বাছাইয়ের জন্য [CLI গাইড](../cli.md#choose-a-provider) দেখুন। +সর্বশেষ npm release-এর পরে যোগ হওয়া ফিচারের জন্য +[release-এ প্রাপ্যতা](../installation.md#released-package-and-main) দেখে নিন। + +## শোকেস + + + + + DX-Ball sound-pan, Notion clipboard-bridge এবং TH04 bullet-ring শোকেসের চিত্র + + + +### DX-Ball: একটি sound-pan হিসাব পুনর্গঠন + +একটি sound call অনুসরণ করে তার position-to-pan helper-এ পৌঁছান, instruction পরীক্ষা করুন +এবং অসম্পূর্ণ pseudocode-কে C-তে রূপ দিন। পুনর্গঠিত কোডটি মূল x86-এর 3,205টি +case পাস করে এবং compile করা function-এর 63টি byte হুবহু পুনরুৎপাদন করে। + +[Case study পড়ুন](https://rea.tools/bn/showcase/dx-ball/) · +[পুনর্গঠনের repository](https://github.com/N0zoM1z0/dx-ball) + +### Notion: Electron clipboard bridge trace করা + +Renderer-এর clipboard API খুঁজে বের করুন, preload ও IPC হয়ে main process পর্যন্ত +সেটি অনুসরণ করুন এবং rich clipboard format পরীক্ষা করুন। + +[Case study পড়ুন](https://rea.tools/bn/showcase/notion/) + +### TH04: একটি DOS bullet-ring হিসাব উদ্ধার + +মূল PC-98 গেমের 16-bit instruction পরীক্ষা করুন, স্থির ও লক্ষ্যভেদী কোণের +হিসাব উদ্ধার করুন এবং পুনর্গঠিত C++ কোডকে ঐতিহাসিক compiler output-এর +সঙ্গে মিলিয়ে দেখুন। + +[Case study পড়ুন](https://rea.tools/bn/showcase/th04/) · +[পুনর্গঠনের repository](https://github.com/N0zoM1z0/th04) + +আপনি যদি মজার কিছুতে REA ব্যবহার করে থাকেন, আমরা তা দেখতে চাই। একটি +[issue](https://github.com/morluto/rea/issues) বা +[pull request](https://github.com/morluto/rea/pulls)-এ আপনার অভিজ্ঞতা শেয়ার করুন — +টার্গেট, আপনার প্রশ্ন, REA কীভাবে সাহায্য করেছে এবং আপনি কী পেয়েছেন তা সহ। + +## সাধারণ প্রশ্নোত্তর (FAQ) + +
+কোন কোন agent REA ব্যবহার করতে পারে? + +Local MCP server সমর্থন করে এমন যেকোনো agent। Setup +[সমর্থিত agent](../installation.md#supported-agents)-গুলো কনফিগার করে; অন্য client +[ম্যানুয়াল MCP নিবন্ধন](../installation.md#mcp-registry) ব্যবহার করতে পারে। + +
+ +
+আমার কি Hopper, Ghidra বা IDA লাগবে? + +গভীর native বিশ্লেষণে এগুলোর যেকোনো একটি ব্যবহৃত হয়। Static JavaScript ও .NET পরীক্ষা +native analysis engine ছাড়াই কাজ করে। অনুমোদন পেলে setup Hopper ইনস্টল করতে পারে; +Ghidra ও IDA-র ক্ষেত্রে আপনার বিদ্যমান ইনস্টলেশন ব্যবহৃত হয়। [Provider setup](../installation.md#hopper) দেখুন। + +
+ +
+আমাকে কি আগে Hopper চালু করতে হবে? + +কোনো কাজে দরকার হলে REA নিজেই Hopper চালু করে। macOS-এ প্রথমবার চালানোর সময় একটি +dialog আপনাকে demo mode বেছে নিতে বা license সক্রিয় করতে বলতে পারে। প্রথম CLI/MCP +কাজ বা স্বয়ংক্রিয় job-এর আগে একই user session-এ সেই prompt-টি সম্পন্ন করুন। +প্রয়োজনে Hopper নিজে খুলুন। দেখুন +[Hopper চালু করা ও সমস্যা সমাধান](../installation.md#launcher-paths-and-troubleshooting)। + +
+ +
+skills.sh থেকে skill ইনস্টল করলে কী হয়? + +Skill আপনার agent-কে অনুসন্ধানের নির্দেশনা দেয়। REA-এর MCP server নিবন্ধন করতে এবং +মানানসই নির্দেশনা ইনস্টল করতে `npx rea-agents setup` ব্যবহার করুন, তারপর আপনার agent +রিস্টার্ট করুন। দেখুন [শুধু skill ইনস্টলেশন](../installation.md#skill-only-installation)। + +
+ +
+REA কী ধরনের কোড ফেরত দেয়? + +Native বিশ্লেষণ pseudocode ও assembly ফেরত দেয়। JavaScript/Electron বিশ্লেষণ +module ও সেগুলোর পারস্পরিক সম্পর্ক উদ্ধার করে। আপনার agent এই ফলাফল ব্যবহার করে +implementation লেখে ও test করে; [শোকেস](#শোকেস)-এ হাতে-কলমে উদাহরণ আছে। + +
+ +
+REA কি আমার অ্যাপ আপলোড করে? + +REA টার্গেট local-ভাবে বিশ্লেষণ করে। টুলের ফলাফল আপনার agent পায়, আর সেই agent-এর +model provider-এর নিজস্ব data policy আছে। + +
+ +
+কোনো bug পেলে কী করব? + +আগে আপডেট করুন; সাম্প্রতিক কোনো release-এ হয়তো সমস্যাটি ঠিক হয়ে গেছে। + +`npm install --global` বা `bun add --global` দিয়ে ইনস্টল করা CLI-এর জন্য: + +```bash +rea update +``` + +`npx`-এর মাধ্যমে agent setup-এর জন্য: + +```bash +npx rea-agents@latest setup +``` + +Agent ব্যবহার করলে [setup রিফ্রেশ](#rea-আপডেট-করুন) সম্পন্ন করে সেটি রিস্টার্ট করুন। +একই কাজ আবার চেষ্টা করুন। সমস্যা থেকে গেলে আপনার REA সংস্করণ, টার্গেটের ধরন, +সমস্যাটি ঘটানোর ধাপ এবং error output সহ [একটি issue খুলুন](https://github.com/morluto/rea/issues)। + +
+ +## ডকুমেন্টেশন + +ওয়েবসাইটের [হাতে-কলমে গাইড](https://rea.tools/bn/guides/) দিয়ে শুরু করুন। +সুনির্দিষ্ট option, পূর্বশর্ত ও result contract-এর জন্য: + +- [ইনস্টলেশন ও setup](../installation.md): agent নিবন্ধন, provider configuration, আপডেট ও uninstall। +- [প্রস্তুতি যাচাই ও সমস্যা সমাধান](../installation.md#check-readiness-for-your-task): একটি agent বা analysis engine-এর সমস্যা নির্ণয়। +- [CLI ও Evidence](../cli.md): কমান্ড, provider বাছাই, snapshot, import/export ও exit status। +- [MCP contract](../mcp-contracts.md) ও [agent prompt](../mcp-prompts.md): টুলের ফলাফল, session ও নির্দেশিত অনুসন্ধান। +- [টুল ক্যাটালগ](../mcp-contracts.md#generated-catalog): টুল, provider ও CLI কমান্ডের স্বয়ংক্রিয়ভাবে তৈরি তালিকা। +- [Roadmap](../roadmap.md): পরিকল্পিত কাজ ও সক্ষমতার tracker। + +নিরাপত্তা-ত্রুটি (vulnerability) জানাতে [SECURITY.md](../../SECURITY.md) দেখুন। + +## Star-এর ইতিহাস + +🎉 **300,000 GitHub star — সবাইকে ধন্যবাদ!** + +যাঁরা REA ব্যবহার করছেন, bug রিপোর্ট করছেন, ফিচারের অনুরোধ জানাচ্ছেন, build test করছেন এবং fix দিয়ে অবদান রাখছেন — সবাইকে ধন্যবাদ। + + + + + + REA GitHub star history + + + +## দায়মুক্তি + +দায়িত্বশীল ব্যবহারের নির্দেশনার জন্য [DISCLAIMER.md](../../DISCLAIMER.md) দেখুন। + +অবৈধ বা অননুমোদিত ব্যবহার নিয়ে প্রজেক্টের অবস্থান REA-এর সব সংস্করণ, বিতরণের মাধ্যম +ও প্ল্যাটফর্মের ক্ষেত্রে প্রযোজ্য; প্রতিটি কপিতে তার প্রযোজ্য license বহাল থাকে। + +REA বৈধ গবেষণা, শিক্ষা, interoperability, সফটওয়্যার সংরক্ষণ এবং আপনার নিজের +অথবা পরীক্ষা করার অনুমতি আছে এমন সফটওয়্যার বিশ্লেষণের জন্য। + +## অবদান রাখুন + +REA-তে আপনার সাহায্য পেলে আমরা খুশি হব! Bug রিপোর্ট করতে বা ফিচারের পরামর্শ দিতে +[একটি issue খুলুন](https://github.com/morluto/rea/issues), অথবা কোড বা ডকুমেন্টেশন উন্নত করতে +[pull request পাঠান](https://github.com/morluto/rea/pulls)। + +Development setup ও check-এর জন্য [CONTRIBUTING.md](../../CONTRIBUTING.md), যাচাইয়ের ধাপের জন্য +[testing](../testing.md) এবং নির্বাচিত layer ও dependency path-এর জন্য +[architecture map](../architecture.mermaid) দেখুন। + +## লাইসেন্স + +[MIT](../../LICENSE) + +REA-র নিজস্ব কোড MIT license-এর অধীনে। Third-party উপাদানগুলোর নিজস্ব +license ও copyright notice বহাল থাকে; dependency-র তালিকা, সংরক্ষিত license +টেক্সট ও বাইরের টুলের শর্তাবলির জন্য [Third-party notices](../../THIRD_PARTY_NOTICES.md) দেখুন। + +**বাণিজ্যিক টুল — যেমন IDA Pro / Hex-Rays decompiler, Hopper ও JEB — আপনাকে অবশ্যই +বৈধভাবে সংগ্রহ করতে হবে এবং প্রযোজ্য license অনুযায়ী ব্যবহারের অনুমতি থাকতে হবে।** +REA কোনো টুলের license, key বা activation-এর অধিকার দেয় না। Trial ও demo সংস্করণ +vendor-এর শর্তাবলির অধীন, যার মধ্যে user, ফিচার, automation ও output শেয়ার করার +সীমাবদ্ধতাও আছে। Crack করা কপি, চুরি করা key, অননুমোদিতভাবে key শেয়ার করা এবং +license-এর সীমাবদ্ধতা এড়িয়ে যাওয়া অনুমোদিত নয়। এই নির্দেশনা MIT বা third-party +license-এ কোনো পরিবর্তন আনে না। diff --git a/docs/readme/README_de.md b/docs/readme/README_de.md index 5e5b41603b6..36453863ab7 100644 --- a/docs/readme/README_de.md +++ b/docs/readme/README_de.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · **Deutsch** · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Alles reverse-engineeren diff --git a/docs/readme/README_el.md b/docs/readme/README_el.md index 47cff58bce5..36d8868d28e 100644 --- a/docs/readme/README_el.md +++ b/docs/readme/README_el.md @@ -1,6 +1,6 @@
-[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) · **Ελληνικά** · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) · **Ελληνικά** · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_es.md b/docs/readme/README_es.md index 5593d980335..70340747c7b 100644 --- a/docs/readme/README_es.md +++ b/docs/readme/README_es.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · **Español** · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Ingeniería inversa de cualquier cosa diff --git a/docs/readme/README_fa.md b/docs/readme/README_fa.md index 3f031d1f75d..f49810c46bc 100644 --- a/docs/readme/README_fa.md +++ b/docs/readme/README_fa.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · **فارسی** · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: مهندسی معکوس هر چیزی diff --git a/docs/readme/README_fr.md b/docs/readme/README_fr.md index b3e2716d7ea..9e599ffd2eb 100644 --- a/docs/readme/README_fr.md +++ b/docs/readme/README_fr.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · **Français** · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA : rétro-ingénierie de tout diff --git a/docs/readme/README_id.md b/docs/readme/README_id.md index 47ff89c8b36..8392f558519 100644 --- a/docs/readme/README_id.md +++ b/docs/readme/README_id.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · **Bahasa Indonesia** · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Rekayasa Balik Apa Pun diff --git a/docs/readme/README_it.md b/docs/readme/README_it.md index 3dd67069122..cb8eadd06bd 100644 --- a/docs/readme/README_it.md +++ b/docs/readme/README_it.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · **Italiano** -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_ja.md b/docs/readme/README_ja.md index fd5be9db905..a0299c8d16f 100644 --- a/docs/readme/README_ja.md +++ b/docs/readme/README_ja.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · **日本語** · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA:あらゆるものをリバースエンジニアリング diff --git a/docs/readme/README_ko.md b/docs/readme/README_ko.md index 4f1dccb8eff..d18614169dd 100644 --- a/docs/readme/README_ko.md +++ b/docs/readme/README_ko.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · **한국어** · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: 무엇이든 리버스 엔지니어링 diff --git a/docs/readme/README_ml.md b/docs/readme/README_ml.md index c53d3aa7106..b4e46bf61b9 100644 --- a/docs/readme/README_ml.md +++ b/docs/readme/README_ml.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · **മലയാളം** · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · **മലയാളം** · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: എന്തും Reverse Engineer ചെയ്യുക diff --git a/docs/readme/README_pl.md b/docs/readme/README_pl.md index 008eb92bb34..e54a9adf8e2 100644 --- a/docs/readme/README_pl.md +++ b/docs/readme/README_pl.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · **Polski** · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_pt-BR.md b/docs/readme/README_pt-BR.md index ceffa134554..aa6237c6074 100644 --- a/docs/readme/README_pt-BR.md +++ b/docs/readme/README_pt-BR.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · **Português (Brasil)** · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Faça engenharia reversa de qualquer coisa diff --git a/docs/readme/README_ru.md b/docs/readme/README_ru.md index 698aa2b8733..638ad1b2e86 100644 --- a/docs/readme/README_ru.md +++ b/docs/readme/README_ru.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · **Русский** · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Реверс-инжиниринг чего угодно diff --git a/docs/readme/README_th.md b/docs/readme/README_th.md index cb675ae3b33..d7bdd7949a2 100644 --- a/docs/readme/README_th.md +++ b/docs/readme/README_th.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · **ไทย** · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_tr.md b/docs/readme/README_tr.md index c1e426e53f0..29eb0269a47 100644 --- a/docs/readme/README_tr.md +++ b/docs/readme/README_tr.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · **Türkçe** · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Her şeyi tersine mühendislikle inceleyin diff --git a/docs/readme/README_uk.md b/docs/readme/README_uk.md index 9276177686a..f1340a61c07 100644 --- a/docs/readme/README_uk.md +++ b/docs/readme/README_uk.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · **Українська** · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Реверс-інжиніринг будь-чого diff --git a/docs/readme/README_ur-Latn.md b/docs/readme/README_ur-Latn.md index 3308b2f5bca..23f58fc9e75 100644 --- a/docs/readme/README_ur-Latn.md +++ b/docs/readme/README_ur-Latn.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · **Roman Urdu** · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · **Roman Urdu** · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Reverse Engineer Anything diff --git a/docs/readme/README_vi.md b/docs/readme/README_vi.md index c454100b09f..7f8062303f9 100644 --- a/docs/readme/README_vi.md +++ b/docs/readme/README_vi.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · **Tiếng Việt** · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA: Kỹ thuật dịch ngược cho mọi thứ diff --git a/docs/readme/README_zh-TW.md b/docs/readme/README_zh-TW.md index 6e6f07ca4db..0cd93cbfb82 100644 --- a/docs/readme/README_zh-TW.md +++ b/docs/readme/README_zh-TW.md @@ -1,7 +1,7 @@
[English](../../README.md) · [简体中文](README_zh.md) · **繁體中文** · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA:逆向一切 diff --git a/docs/readme/README_zh.md b/docs/readme/README_zh.md index dc8713cba4d..2e8df776bd9 100644 --- a/docs/readme/README_zh.md +++ b/docs/readme/README_zh.md @@ -1,7 +1,7 @@
[English](../../README.md) · **简体中文** · [繁體中文](README_zh-TW.md) · [日本語](README_ja.md) · [한국어](README_ko.md) · [Türkçe](README_tr.md) · [Русский](README_ru.md) · [Tiếng Việt](README_vi.md) · [ไทย](README_th.md) · [Deutsch](README_de.md) · [Español](README_es.md) · [Français](README_fr.md) · [Українська](README_uk.md) · [Polski](README_pl.md) · [Português (Brasil)](README_pt-BR.md) · [العربية](README_ar.md) · [فارسی](README_fa.md) · [Bahasa Indonesia](README_id.md) · [Italiano](README_it.md) -· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) +· [Ελληνικά](README_el.md) · [മലയാളം](README_ml.md) · [Roman Urdu](README_ur-Latn.md) · [Română](README_ro.md) · [বাংলা](README_bn.md) # REA:逆向一切 diff --git a/src/application/BinaryTargetResolver.ts b/src/application/BinaryTargetResolver.ts index c7a9dd7c9c9..4825d972c05 100644 --- a/src/application/BinaryTargetResolver.ts +++ b/src/application/BinaryTargetResolver.ts @@ -31,7 +31,12 @@ import { type StableRegularFileDescriptor, } from "../filesystem/RegularFile.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; +import type { + BinaryTarget, + BinaryArchitecture, + PeCodeViewRecord, + UniversalMachOSlice, +} from "../domain/binaryTargetTypes.js"; import { err, ok, type Result } from "../domain/result.js"; import { readMipsElfMetadata } from "./MipsElfMetadata.js"; import { validateElfDeclaredRanges } from "../domain/elfDeclaredRanges.js"; @@ -49,7 +54,6 @@ import { } from "../domain/rawBinary.js"; import { admitGamecubeDol } from "../domain/gamecubeDolAdmission.js"; import { DOL_HEADER_SIZE } from "../domain/gamecubeDol.js"; -import type { BinaryArchitecture } from "../domain/binaryTargetTypes.js"; import { mzWindowsHeaderLayoutLimitation, observeMzWindowsHeader, @@ -96,10 +100,6 @@ import { readMachoLoadCommandTableHeader, type MachoLoadCommandTableHeader, } from "../domain/apple/machoLoadCommands.js"; -import type { - PeCodeViewRecord, - UniversalMachOSlice, -} from "../domain/binaryTargetTypes.js"; import { absoluteCallerPath } from "../filesystem/callerPath.js"; import type { JsonValue } from "../domain/jsonValue.js"; diff --git a/src/application/BrowserObservationService.test.ts b/src/application/BrowserObservationService.test.ts index b87c4f2a4da..d38d1e1d1e8 100644 --- a/src/application/BrowserObservationService.test.ts +++ b/src/application/BrowserObservationService.test.ts @@ -1,6 +1,10 @@ import { expect, it } from "vitest"; import type { BrowserObservationPort } from "./BrowserObservationPort.js"; -import { listBrowserTargets } from "./BrowserObservationService.js"; +import { + listBrowserTargets, + inspectWebPage, + analyzeWebBundle, +} from "./BrowserObservationService.js"; import type { BrowserTargetList } from "../domain/browserObservationSchemas.js"; import { parseEvidence } from "../domain/evidence.js"; import { @@ -18,10 +22,8 @@ import { BrowserObservationError } from "../domain/browserObservationError.js"; import { err, ok } from "../domain/result.js"; import { passiveNetworkCapture } from "../../tests/fixtures/passiveNetworkCapture.js"; import { analyzeWebBundleFixture } from "../../tests/support/browser/analyzeWebBundleFixture.js"; -import { inspectWebPage } from "./BrowserObservationService.js"; import { analyzeWebBundleInputSchema } from "../domain/webBundleAnalysis.js"; import { inspectWebPageInputSchema } from "../domain/browserObservation.js"; -import { analyzeWebBundle } from "./BrowserObservationService.js"; const input = { cdp_endpoint: { diff --git a/src/application/DirectAnalysis.ts b/src/application/DirectAnalysis.ts index 462d0a71007..0c16d806ad6 100644 --- a/src/application/DirectAnalysis.ts +++ b/src/application/DirectAnalysis.ts @@ -1,6 +1,9 @@ import type { ExecutableFormatHint } from "../domain/dosCom.js"; import { dispatchQueuedInterrupts } from "../process/queuedInterrupts.js"; -import type { BinaryArchitecture } from "../domain/binaryTargetTypes.js"; +import type { + BinaryArchitecture, + BinaryTarget, +} from "../domain/binaryTargetTypes.js"; import type { JsonValue } from "../domain/jsonValue.js"; import type { DirectAnalysisDependencies } from "./DirectAnalysisDependencies.js"; import type { BinarySession } from "./binary/BinarySession.js"; @@ -31,7 +34,6 @@ import { access, stat } from "node:fs/promises"; import { absoluteCallerPath } from "../filesystem/callerPath.js"; import { requiresNativeSourceAdmissionBeforeReplay } from "./binary/AnalysisSnapshotCache.js"; import { classifyBinaryTargetFilesystemFailure } from "./BinaryTargetResolver.js"; -import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { snapshotEvidenceForQuery, snapshotMatchesTarget, diff --git a/src/application/SetupHost.ts b/src/application/SetupHost.ts index ddfe19e9f06..79ef773826d 100644 --- a/src/application/SetupHost.ts +++ b/src/application/SetupHost.ts @@ -23,7 +23,12 @@ import { SUPPORTED_NODE_VERSION_PROSE, supportsNodeVersion, } from "../domain/runtimeVersion.js"; -import { runDoctor, systemDoctorHost, type DoctorHost } from "./Doctor.js"; +import { + runDoctor, + systemDoctorHost, + type DoctorHost, + type DoctorScope, +} from "./Doctor.js"; import { installLinuxHopper, LinuxHopperTemporaryCleanupOwner, @@ -67,7 +72,6 @@ import type { SetupInitialState, SetupProviderEnvironment, } from "./SetupTypes.js"; -import type { DoctorScope } from "./Doctor.js"; import { SetupCleanupOwner } from "./SetupCleanupOwner.js"; import { AnalysisCleanupLeaseGroup, diff --git a/src/application/analysisView/AnalysisViewService.test.ts b/src/application/analysisView/AnalysisViewService.test.ts index 84307150b56..0b8a3311c5b 100644 --- a/src/application/analysisView/AnalysisViewService.test.ts +++ b/src/application/analysisView/AnalysisViewService.test.ts @@ -7,6 +7,9 @@ import { analysisViewObjectDenseCapture, environmentManifestCaptureFixture, environmentStateCaptureFixture, + analysisViewJavaScriptAnalysisWithSource, + analysisViewJavaScriptEvidence, + analysisViewLayoutEvidence, } from "../../../tests/fixtures/analysisView.js"; import { describe, expect, it } from "vitest"; @@ -19,11 +22,6 @@ import { import { inspectAnalysisViewInputSchema } from "../../domain/analysisView/analysisView.js"; import { functionDossierSchema } from "../../domain/hopperValues.js"; import { ghidraFunctionDossier } from "../../domain/ghidraValues.fixture.js"; -import { - analysisViewJavaScriptAnalysisWithSource, - analysisViewJavaScriptEvidence, - analysisViewLayoutEvidence, -} from "../../../tests/fixtures/analysisView.js"; import { inspectAnalysisView, inspectAnalysisViewValidated, diff --git a/src/application/binary/BinarySession.ts b/src/application/binary/BinarySession.ts index 908ecc82ec2..52f27b883ea 100644 --- a/src/application/binary/BinarySession.ts +++ b/src/application/binary/BinarySession.ts @@ -20,8 +20,8 @@ import type { ExecutionOptions, AnalysisOperationPort, ProviderIdentity, + AnalysisOperation, } from "../AnalysisProvider.js"; -import type { AnalysisOperation } from "../AnalysisProvider.js"; import { OFFICIAL_TOOL_CONTRACTS } from "../../contracts/officialToolContracts.js"; import { ENHANCED_TOOL_CONTRACTS } from "../../contracts/enhancedToolContracts.js"; import type { diff --git a/src/application/environment/environmentCompare.ts b/src/application/environment/environmentCompare.ts index bc7e29b615f..fac79aea588 100644 --- a/src/application/environment/environmentCompare.ts +++ b/src/application/environment/environmentCompare.ts @@ -1,4 +1,7 @@ -import { decodedSegment } from "../../domain/analysisView/environmentStateRules.js"; +import { + decodedSegment, + same, +} from "../../domain/analysisView/environmentStateRules.js"; import type { FieldRule } from "../../domain/analysisView/environmentStateWriteRules.js"; import { fromJsonSchema } from "@modelcontextprotocol/server"; import type { AnalysisError } from "../../domain/analysisErrorBase.js"; @@ -57,7 +60,6 @@ import { type EnvironmentToolAnswer, } from "./environmentToolAnswer.js"; import type { EnvironmentToolDefinition } from "./environmentTools.js"; -import { same } from "../../domain/analysisView/environmentStateRules.js"; /** One probe capture file: its label for the report and its parsed JSON. */ export interface CompareProbeInput { diff --git a/src/application/javascript/JavaScriptArtifactGraphContext.ts b/src/application/javascript/JavaScriptArtifactGraphContext.ts index e7f225e6a52..79e7f9861a3 100644 --- a/src/application/javascript/JavaScriptArtifactGraphContext.ts +++ b/src/application/javascript/JavaScriptArtifactGraphContext.ts @@ -17,13 +17,13 @@ import type { JavaScriptArtifactAnalysis, JavaScriptArtifactAnalysisScope, } from "./JavaScriptArtifactAnalysisTypes.js"; -import type { JavaScriptUnanalyzedArtifactLookup } from "../../domain/javascript/javascriptArtifactFiles.js"; -import { HTML_INLINE_SCRIPT_LOCATION_LIMIT } from "../../domain/javascript/htmlArtifactReferences.js"; import type { + JavaScriptUnanalyzedArtifactLookup, JavaScriptArtifactFile, JavaScriptArtifactFileSet, JavaScriptArtifactFileKind, } from "../../domain/javascript/javascriptArtifactFiles.js"; +import { HTML_INLINE_SCRIPT_LOCATION_LIMIT } from "../../domain/javascript/htmlArtifactReferences.js"; import { JavaScriptArtifactGraphAccumulator } from "./JavaScriptArtifactGraphAccumulator.js"; import { artifactObservationEvidence, diff --git a/src/application/reverse/ReverseEngineeringService.ts b/src/application/reverse/ReverseEngineeringService.ts index 68d5cb6c029..a4adcba0678 100644 --- a/src/application/reverse/ReverseEngineeringService.ts +++ b/src/application/reverse/ReverseEngineeringService.ts @@ -15,12 +15,12 @@ import { AnalysisInputError, AnalysisResourceConstraintError, AnalysisTimeoutError, + AnalysisOutputError, } from "../../domain/analysisErrorCore.js"; import { AnalysisError, type AnalysisCleanupObservation, } from "../../domain/analysisErrorBase.js"; -import { AnalysisOutputError } from "../../domain/analysisErrorCore.js"; import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; import { createEvidence, type Evidence } from "../../domain/evidence.js"; import { analysisInputErrorFromIssues } from "../../domain/inputIssueProjection.js"; diff --git a/src/artifacts/ArtifactResourceScope.test.ts b/src/artifacts/ArtifactResourceScope.test.ts index 40be9c20bc6..3292bdcff4f 100644 --- a/src/artifacts/ArtifactResourceScope.test.ts +++ b/src/artifacts/ArtifactResourceScope.test.ts @@ -5,7 +5,10 @@ import { withArtifactFileHandle, bindArtifactFileCleanup, } from "./ArtifactFileOperation.js"; -import { ArtifactResourceRetryFailure } from "./ArtifactResourceScope.js"; +import { + ArtifactResourceRetryFailure, + ArtifactResourceScope, +} from "./ArtifactResourceScope.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; import { expect, it } from "vitest"; @@ -16,7 +19,6 @@ import { type ArtifactReader, } from "./ArtifactReader.js"; import { translateArtifactFailure } from "./ArtifactOperationFailure.js"; -import { ArtifactResourceScope } from "./ArtifactResourceScope.js"; const deferred = () => { let resolve: (value: T) => void = () => {}; diff --git a/src/artifacts/extraction/ArtifactExtraction.ts b/src/artifacts/extraction/ArtifactExtraction.ts index 5eb2fe7d27c..ec3d2dc5a4b 100644 --- a/src/artifacts/extraction/ArtifactExtraction.ts +++ b/src/artifacts/extraction/ArtifactExtraction.ts @@ -2,7 +2,11 @@ import type { AsarHeaderAdmission } from "../../config/asarHeaderAdmission.js"; import { resolveAsarHeaderAdmission } from "../AsarHeader.js"; import { locateGodotPck } from "../GodotPckLocation.js"; import { withArtifactRegularFile } from "../ArtifactFileOperation.js"; -import type { ArtifactCleanupAttempt } from "../ArtifactResourceScope.js"; +import type { + ArtifactCleanupAttempt, + ArtifactResourceOwner, + ArtifactResourceScope, +} from "../ArtifactResourceScope.js"; import { lstat, realpath } from "node:fs/promises"; import { dirname } from "node:path"; import { absoluteCallerPath } from "../../filesystem/callerPath.js"; @@ -44,10 +48,6 @@ import { type ArtifactOccurrence, } from "../../domain/artifactGraph.js"; import { AnalysisUnsupportedTargetError } from "../../domain/analysisErrorCore.js"; -import type { - ArtifactResourceOwner, - ArtifactResourceScope, -} from "../ArtifactResourceScope.js"; import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; import { scanArtifactInventoryForExtractionInScope } from "../inventory/ArtifactInventory.js"; diff --git a/src/artifacts/pyinstaller/PyInstallerArtifactReader.test.ts b/src/artifacts/pyinstaller/PyInstallerArtifactReader.test.ts index 3e79b0b2116..74bc6b962a7 100644 --- a/src/artifacts/pyinstaller/PyInstallerArtifactReader.test.ts +++ b/src/artifacts/pyinstaller/PyInstallerArtifactReader.test.ts @@ -7,8 +7,10 @@ import { expect, it, vi } from "vitest"; import { ArtifactReaderFailure } from "../ArtifactReader.js"; import { OwnedFileHandle } from "../../filesystem/OwnedFileHandle.js"; -import { materializeArtifactInventory } from "../../../tests/fixtures/artifactInventory.js"; -import { scanCanonicalArtifactInventory } from "../../../tests/fixtures/artifactInventory.js"; +import { + materializeArtifactInventory, + scanCanonicalArtifactInventory, +} from "../../../tests/fixtures/artifactInventory.js"; import { createTestTempDirectory } from "../../../tests/fixtures/temporaryDirectory.js"; import { PyInstallerArtifactReader } from "../PyInstallerArtifactReader.js"; import { reconstructedPycHeader } from "./PythonBytecode.js"; diff --git a/src/browser/CdpBrowserProvider.ts b/src/browser/CdpBrowserProvider.ts index b0a51c72c2a..f21f68c34ca 100644 --- a/src/browser/CdpBrowserProvider.ts +++ b/src/browser/CdpBrowserProvider.ts @@ -1,6 +1,8 @@ import type { BrowserObservationPort } from "../application/BrowserObservationPort.js"; -import type { ProviderIdentity } from "../application/AnalysisProvider.js"; -import type { ExecutionOptions } from "../application/AnalysisProvider.js"; +import type { + ProviderIdentity, + ExecutionOptions, +} from "../application/AnalysisProvider.js"; import { sanitizeBrowserUrl, type InspectWebPageInput, diff --git a/src/browser/WebSourceMapFetcher.ts b/src/browser/WebSourceMapFetcher.ts index e4d472140b6..1c0f4b21b10 100644 --- a/src/browser/WebSourceMapFetcher.ts +++ b/src/browser/WebSourceMapFetcher.ts @@ -27,7 +27,10 @@ import type { WebSourceMapItem, WebSourceMaps, } from "../domain/webBundleAnalysis.js"; -import { webSourceMapsSchema } from "../domain/webBundleAnalysis.js"; +import { + webSourceMapsSchema, + DEFAULT_SOURCE_MAP_FETCH_TIMEOUT_MS, +} from "../domain/webBundleAnalysis.js"; import { createWebTextArtifact, type WebTextArtifact, @@ -45,7 +48,6 @@ import { noRuntimeOverrideSentence, selectedBrowserDeadlineMs, } from "../domain/browserDeadline.js"; -import { DEFAULT_SOURCE_MAP_FETCH_TIMEOUT_MS } from "../domain/webBundleAnalysis.js"; import { WEB_SOURCE_MAP_LIMITS } from "../domain/webSourceLocation.js"; export interface WebSourceMapRequest { diff --git a/src/browser/history/CaptureFailures.ts b/src/browser/history/CaptureFailures.ts index ddefd1a4566..2418c4b1d6c 100644 --- a/src/browser/history/CaptureFailures.ts +++ b/src/browser/history/CaptureFailures.ts @@ -2,8 +2,10 @@ import { analysisSettingLimit } from "../../domain/analysisSettingDefinitions.js import type { ExecutionOptions } from "../../application/AnalysisProvider.js"; import { ArtifactReaderFailure } from "../../artifacts/ArtifactReader.js"; import { analysisErrorWithCleanupFailure } from "../../domain/analysisErrorCleanup.js"; -import { bindArtifactFileCleanup } from "../../artifacts/ArtifactFileOperation.js"; -import { artifactFileCancellationCause } from "../../artifacts/ArtifactFileOperation.js"; +import { + bindArtifactFileCleanup, + artifactFileCancellationCause, +} from "../../artifacts/ArtifactFileOperation.js"; import { AnalysisError } from "../../domain/analysisErrorBase.js"; import { AnalysisAccessDeniedError, diff --git a/src/browser/network/PlaywrightScenarioNetwork.ts b/src/browser/network/PlaywrightScenarioNetwork.ts index c97c45afcdf..e837ed4903b 100644 --- a/src/browser/network/PlaywrightScenarioNetwork.ts +++ b/src/browser/network/PlaywrightScenarioNetwork.ts @@ -7,8 +7,8 @@ import type { BrowserScenarioCaptureLimits } from "../../domain/browserScenarioC import type { BrowserScenarioEventAdmission, BrowserScenarioEventBudgetReason, + BrowserScenarioEvent, } from "../../domain/browserScenarioCaptureValues.js"; -import type { BrowserScenarioEvent } from "../../domain/browserScenarioCaptureValues.js"; import type { BrowserScenarioSecrets } from "../BrowserScenarioSecrets.js"; import { captureNetworkBody, diff --git a/src/contracts/native/binaryDiagnosticsToolContracts.ts b/src/contracts/native/binaryDiagnosticsToolContracts.ts index dc035e31aa6..35332199237 100644 --- a/src/contracts/native/binaryDiagnosticsToolContracts.ts +++ b/src/contracts/native/binaryDiagnosticsToolContracts.ts @@ -2,7 +2,11 @@ import { inspectDevicetreeInputSchema, devicetreeSchema, } from "../../domain/firmware/devicetree.js"; -import { devicetreeSummaryViewResultSchema } from "../../domain/analysisView/analysisView.js"; +import { + devicetreeSummaryViewResultSchema, + binaryLayoutSummaryViewResultSchema, + nativeExportsSummaryViewResultSchema, +} from "../../domain/analysisView/analysisView.js"; import { inspectPeLoadConfigInputSchema, peLoadConfigSchema, @@ -18,10 +22,6 @@ import { inspectBinaryLayoutInputSchema, binaryLayoutSchema, } from "../../domain/native/binaryLayout.js"; -import { - binaryLayoutSummaryViewResultSchema, - nativeExportsSummaryViewResultSchema, -} from "../../domain/analysisView/analysisView.js"; import { analysisDetailOutputSchemaOf, analysisDetailSchema, diff --git a/src/contracts/toolOutputSchemaGroups.ts b/src/contracts/toolOutputSchemaGroups.ts index ec818b9eccb..cd12ee3bf20 100644 --- a/src/contracts/toolOutputSchemaGroups.ts +++ b/src/contracts/toolOutputSchemaGroups.ts @@ -1,23 +1,23 @@ import { literalFeatureMatchSchema } from "../domain/native/literalFeatureMatch.js"; import { byteEntropySchema } from "../domain/native/byteEntropy.js"; -import { byteEntropySummaryViewResultSchema } from "../domain/analysisView/analysisView.js"; -import { nativeFunctionMatchingSchema } from "../domain/native/functionMatching.js"; -import { nativeFunctionMatchingSummaryViewResultSchema } from "../domain/analysisView/analysisView.js"; -import { nativeByteReadSchema } from "../domain/native/nativeByteRead.js"; -import { analysisDetailOutputSchemaOf } from "./analysisDetail.js"; -import { nativeFunctionSummaryViewResultSchema } from "../domain/analysisView/analysisView.js"; -import { functionDossierSchema } from "../domain/hopperValues.js"; -import { nativeInventorySummaryViewResultSchema } from "../domain/analysisView/analysisView.js"; -import { nativeInventoryRowsSchemas } from "../domain/native/nativeInventory.js"; -import { z } from "zod"; -import { byteSearchResultSchema } from "../domain/native/bytePattern.js"; import { + byteEntropySummaryViewResultSchema, + nativeFunctionMatchingSummaryViewResultSchema, + nativeFunctionSummaryViewResultSchema, + nativeInventorySummaryViewResultSchema, artifactInventorySummaryViewResultSchema, interfaceBuilderSummaryViewResultSchema, machoSummaryViewResultSchema, managedArtifactSummaryViewResultSchema, managedMemberSummaryViewResultSchema, } from "../domain/analysisView/analysisView.js"; +import { nativeFunctionMatchingSchema } from "../domain/native/functionMatching.js"; +import { nativeByteReadSchema } from "../domain/native/nativeByteRead.js"; +import { analysisDetailOutputSchemaOf } from "./analysisDetail.js"; +import { functionDossierSchema } from "../domain/hopperValues.js"; +import { nativeInventoryRowsSchemas } from "../domain/native/nativeInventory.js"; +import { z } from "zod"; +import { byteSearchResultSchema } from "../domain/native/bytePattern.js"; import { evidenceBundleSummarySchema } from "../domain/evidenceRecordSummary.js"; import { BINARY_ARCHITECTURES, diff --git a/src/cutter/CutterBridgeClient.ts b/src/cutter/CutterBridgeClient.ts index e3bca91b11e..abc2e51ae13 100644 --- a/src/cutter/CutterBridgeClient.ts +++ b/src/cutter/CutterBridgeClient.ts @@ -11,21 +11,21 @@ import { assertArtifactReadActive, } from "../artifacts/ArtifactFileOperation.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { randomUUID } from "node:crypto"; -import { createHmac, randomBytes, timingSafeEqual } from "node:crypto"; -import { createConnection } from "node:net"; -import { lstat, opendir } from "node:fs/promises"; -import { join } from "node:path"; -import { z } from "zod"; - import { + AnalysisCancelledError, AnalysisCapabilityUnavailableError, AnalysisInputError, AnalysisOutputError, AnalysisResourceConstraintError, resourceConstraintRecovery, } from "../domain/analysisErrorCore.js"; +import { randomUUID } from "node:crypto"; +import { createHmac, randomBytes, timingSafeEqual } from "node:crypto"; +import { createConnection } from "node:net"; +import { lstat, opendir } from "node:fs/promises"; +import { join } from "node:path"; +import { z } from "zod"; + import { AnalysisError } from "../domain/analysisErrorBase.js"; import { jsonValueByteLength } from "../domain/jsonValueByteLength.js"; import type { JsonValue } from "../domain/jsonValue.js"; diff --git a/src/cutter/CutterBridgeService.ts b/src/cutter/CutterBridgeService.ts index 8df1e6f9a2a..5fac87d6b45 100644 --- a/src/cutter/CutterBridgeService.ts +++ b/src/cutter/CutterBridgeService.ts @@ -16,8 +16,8 @@ import { CutterBridgeClient, type CutterBridgeExecution, type CutterDiscoveryOptions, + CUTTER_PROVIDER_IDENTITY, } from "./CutterBridgeClient.js"; -import { CUTTER_PROVIDER_IDENTITY } from "./CutterBridgeClient.js"; interface CutterBridgePort { listSessions( diff --git a/src/domain/analysisSnapshot.ts b/src/domain/analysisSnapshot.ts index 3d5d7df3953..5dbfffc3dfd 100644 --- a/src/domain/analysisSnapshot.ts +++ b/src/domain/analysisSnapshot.ts @@ -38,8 +38,7 @@ import { jsonValueSchema, type JsonValue, } from "./jsonValue.js"; -import { digestSchema } from "./../domain/digests.js"; -import { prefixedDigestSchema } from "./../domain/digests.js"; +import { digestSchema, prefixedDigestSchema } from "./../domain/digests.js"; import { canonicalJsonDigestSteps } from "./canonicalJsonDigestSteps.js"; import { freezeJsonSnapshot } from "./immutableJson.js"; import { diff --git a/src/domain/evidence.ts b/src/domain/evidence.ts index 789537f564e..344ccb9bb1d 100644 --- a/src/domain/evidence.ts +++ b/src/domain/evidence.ts @@ -29,8 +29,7 @@ import { immutableJsonSnapshotMember, isImmutableJsonSnapshot, } from "./immutableJson.js"; -import { digestSchema } from "./../domain/digests.js"; -import { prefixedDigestSchema } from "./../domain/digests.js"; +import { digestSchema, prefixedDigestSchema } from "./../domain/digests.js"; import { relationshipCoverageSchema, type RelationshipCoverage, diff --git a/src/domain/javascript/javascriptSemanticRequireOrigin.ts b/src/domain/javascript/javascriptSemanticRequireOrigin.ts index e87a91178d6..5386568620b 100644 --- a/src/domain/javascript/javascriptSemanticRequireOrigin.ts +++ b/src/domain/javascript/javascriptSemanticRequireOrigin.ts @@ -39,7 +39,10 @@ import { import { createSemanticModuleInterop } from "./javascriptModuleInterop.js"; import { createSemanticReturnedReferences } from "./javascriptSemanticReturnedReferences.js"; import { semanticIterationSources } from "./javascriptSemanticIterationSources.js"; -import { semanticCommonJsRequireOwnEnumerableAt } from "./javascriptSemanticReferenceSources.js"; +import { + semanticCommonJsRequireOwnEnumerableAt, + semanticReferenceSourcesInactive, +} from "./javascriptSemanticReferenceSources.js"; import { semanticArrayPropertyReferences, semanticObjectPropertyReferences, @@ -54,7 +57,6 @@ import { isUnmodifiedGlobalReference, isUnmodifiedImportMetaUrl, } from "./javascriptSemanticAmbientWrites.js"; -import { semanticReferenceSourcesInactive } from "./javascriptSemanticReferenceSources.js"; export interface JavaScriptRequireOrigin { readonly origin: JavaScriptModuleOrigin; diff --git a/src/dotnet/ManagedCilDecoding.test.ts b/src/dotnet/ManagedCilDecoding.test.ts index eb2e283170f..1356229b262 100644 --- a/src/dotnet/ManagedCilDecoding.test.ts +++ b/src/dotnet/ManagedCilDecoding.test.ts @@ -461,7 +461,9 @@ describe("managed complete operand decoding", () => { }); }, ); +}); +describe("managed operand extent diagnostics for switch and partial bodies", () => { it("reports a switch whose target table is missing", () => { expect( fatBody(Buffer.from([0x00, 0x45, 0x02, 0x00, 0x00, 0x00])), diff --git a/src/flutter/FlutterBuildProvider.ts b/src/flutter/FlutterBuildProvider.ts index 6cecca4028b..fe9226e43c0 100644 --- a/src/flutter/FlutterBuildProvider.ts +++ b/src/flutter/FlutterBuildProvider.ts @@ -6,11 +6,9 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { setImmediate as yieldToEventLoop } from "node:timers/promises"; -import type { - ExecutionOptions, - ProviderAvailability, -} from "../application/AnalysisProvider.js"; import { + type ExecutionOptions, + type ProviderAvailability, createAnalysisExecution, type AnalysisExecution, } from "../application/AnalysisProvider.js"; @@ -26,8 +24,8 @@ import { AnalysisInputError, AnalysisResourceConstraintError, AnalysisUnsupportedTargetError, + AnalysisProtocolError, } from "../domain/analysisErrorCore.js"; -import { AnalysisProtocolError } from "../domain/analysisErrorCore.js"; import { compareUnicodeCodePoints } from "../domain/unicodeCodePointOrder.js"; import { fixedAllowanceOptions } from "../domain/fixedAllowanceRemediation.js"; import { AnalysisError } from "../domain/analysisErrorBase.js"; diff --git a/src/ghidra/GhidraDolLoadImage.test.ts b/src/ghidra/GhidraDolLoadImage.test.ts index 3a496ae6ce3..8d074cfa786 100644 --- a/src/ghidra/GhidraDolLoadImage.test.ts +++ b/src/ghidra/GhidraDolLoadImage.test.ts @@ -8,9 +8,11 @@ import { createTestTempDirectory } from "../../tests/fixtures/temporaryDirectory import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { buildGamecubeDol } from "../domain/gamecubeDol.fixture.js"; import type { DolHeader } from "../domain/gamecubeDol.js"; -import type { NativeLoadImageObservation } from "../domain/native/nativeLoadImage.js"; +import type { + NativeLoadImageObservation, + NativeLoadImage, +} from "../domain/native/nativeLoadImage.js"; import { attestGhidraDolLoadImage } from "./GhidraDolLoadImage.js"; -import type { NativeLoadImage } from "../domain/native/nativeLoadImage.js"; import type { Result } from "../domain/result.js"; type DolTarget = Extract; diff --git a/src/ghidra/GhidraInstallationProperties.ts b/src/ghidra/GhidraInstallationProperties.ts index 830dd7c5760..c4598029697 100644 --- a/src/ghidra/GhidraInstallationProperties.ts +++ b/src/ghidra/GhidraInstallationProperties.ts @@ -8,11 +8,13 @@ import { withArtifactRegularFile, } from "../artifacts/ArtifactFileOperation.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import { RegularFileCapacityError } from "../filesystem/readStableFileBytes.js"; +import { + RegularFileCapacityError, + readStableFileBytes, +} from "../filesystem/readStableFileBytes.js"; import { AnalysisResourceConstraintError } from "../domain/analysisErrorCore.js"; import { fixedProducerInputAllowance } from "../domain/fixedAllowanceRemediation.js"; import { NonRegularFileReadError } from "../filesystem/RegularFile.js"; -import { readStableFileBytes } from "../filesystem/readStableFileBytes.js"; import { ghidraApplicationProperties } from "./GhidraInstallationPolicy.js"; import { ghidraFileFailure } from "./GhidraFileArtifacts.js"; diff --git a/src/ghidra/GhidraProvider.behavior.test.ts b/src/ghidra/GhidraProvider.behavior.test.ts index 2214ef49976..b5fae213c13 100644 --- a/src/ghidra/GhidraProvider.behavior.test.ts +++ b/src/ghidra/GhidraProvider.behavior.test.ts @@ -4,7 +4,7 @@ import { AnalysisCleanupLease } from "../artifacts/AnalysisCleanupLease.js"; import { resolvedAnalysisError } from "../domain/analysisErrorBase.js"; import { createDeferred } from "../../tests/fixtures/binarySession.js"; import { ProviderInspectionScope } from "../providers/ProviderInspectionScope.js"; -import { ok as javaProbeOk } from "../domain/result.js"; +import { ok as javaProbeOk, err, ok } from "../domain/result.js"; import type { GhidraJavaObservation } from "./GhidraJavaProbe.js"; import type { GhidraSeedReport } from "./GhidraAnalysisSeeds.js"; import type { GhidraDisabledAnalyzerReport } from "./GhidraDisabledAnalyzers.js"; @@ -43,7 +43,6 @@ import type { GhidraProviderClientFactory } from "./GhidraProviderClient.js"; import type { GhidraHeadlessLauncher } from "./GhidraLauncher.js"; import type { GhidraInstallationHost } from "./GhidraInstallation.js"; import { GHIDRA_SESSION_CAPABILITIES } from "./GhidraSessionValues.js"; -import { err, ok } from "../domain/result.js"; import type { Result } from "../domain/result.js"; import { GhidraSessionError } from "./GhidraSessionError.js"; import { silentLogger } from "../logger.js"; diff --git a/src/ghidra/GhidraProviderClient.ts b/src/ghidra/GhidraProviderClient.ts index f001a881db3..86a874a2e0d 100644 --- a/src/ghidra/GhidraProviderClient.ts +++ b/src/ghidra/GhidraProviderClient.ts @@ -32,6 +32,13 @@ import { import { ghidraMipsProfileMismatchReason, ghidraPinnedMipsLanguage, + GHIDRA_MIPS_SOFT_FLOAT_STORAGE, + ghidraMips1Limitations, + ghidraMipsSoftFloatFailure, + ghidraMipsRelocatableLimitations, + ghidraMipsSharedLimitations, + ghidraMipsSoftFloatLimitations, + isGhidraMipsSoftFloatTarget, } from "./GhidraMipsProfile.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; @@ -77,15 +84,6 @@ import { GHIDRA_PSP_LIMITATIONS, } from "./GhidraPspProfile.js"; import { ghidraPspExtensionSchema } from "./GhidraPspExtension.js"; -import { - GHIDRA_MIPS_SOFT_FLOAT_STORAGE, - ghidraMips1Limitations, - ghidraMipsSoftFloatFailure, - ghidraMipsRelocatableLimitations, - ghidraMipsSharedLimitations, - ghidraMipsSoftFloatLimitations, - isGhidraMipsSoftFloatTarget, -} from "./GhidraMipsProfile.js"; import { ghidraRiscvLimitations } from "./GhidraRiscvProfile.js"; import { ghidraPePdbLimitations } from "./GhidraPeProfile.js"; import { unverifiedGhidraBuildLimitation } from "./GhidraReleasePolicy.js"; diff --git a/src/hopper/HopperProvider.ts b/src/hopper/HopperProvider.ts index 069a2741a26..eb8352ee245 100644 --- a/src/hopper/HopperProvider.ts +++ b/src/hopper/HopperProvider.ts @@ -13,6 +13,7 @@ import type { ProviderAvailability, ProviderIdentity, ProviderTargetSupport, + RetainedResourceScope, } from "../application/AnalysisProvider.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; import type { AppConfig } from "../config/types.js"; @@ -23,9 +24,10 @@ import { analysisErrorWithCleanupFailure } from "../domain/analysisErrorCleanup. import type { AnalysisError } from "../domain/analysisErrorBase.js"; import { AnalysisCapabilityUnavailableError } from "../domain/analysisErrorCore.js"; import { err, ok } from "../domain/result.js"; -import type { RetainedResourceScope } from "../application/AnalysisProvider.js"; -import { AnalysisCleanupLease } from "../artifacts/AnalysisCleanupLease.js"; -import { AnalysisCleanupLeaseGroup } from "../artifacts/AnalysisCleanupLease.js"; +import { + AnalysisCleanupLease, + AnalysisCleanupLeaseGroup, +} from "../artifacts/AnalysisCleanupLease.js"; import { ArtifactReaderFailure } from "../artifacts/ArtifactReader.js"; import { ArtifactResourceRetryFailure, diff --git a/src/ida/IdaProvider.ts b/src/ida/IdaProvider.ts index e099b0ef4ac..d4cec0b8cef 100644 --- a/src/ida/IdaProvider.ts +++ b/src/ida/IdaProvider.ts @@ -1,6 +1,9 @@ import { launchRegexMatchingLimitation } from "../process/RegexMatcher.js"; import { snapshotEnvironment } from "../process/snapshotEnvironment.js"; -import { createAnalysisProfile } from "../domain/analysisProfile.js"; +import { + createAnalysisProfile, + analysisProfilesEqual, +} from "../domain/analysisProfile.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; import { isElfMetadataArchitecture, @@ -24,7 +27,6 @@ import type { AppConfig } from "../config/types.js"; import type { ConfigurationError } from "../domain/configurationErrors.js"; import { idaRegistrationDigest } from "./IdaRegistrationIdentity.js"; import { isDeepStrictEqual } from "node:util"; -import { analysisProfilesEqual } from "../domain/analysisProfile.js"; import type { Result } from "../domain/result.js"; import { readIdaConfiguration, @@ -41,10 +43,12 @@ import { } from "./IdaProviderCapabilities.js"; import { IdaSessionClient } from "./IdaSessionClient.js"; import { privateRuntimeRootCapability } from "../process/PrivateRuntimeRoot.js"; -import { ArtifactResourceScope } from "../artifacts/ArtifactResourceScope.js"; +import { + ArtifactResourceScope, + ArtifactResourceRetryFailure, +} from "../artifacts/ArtifactResourceScope.js"; import { AnalysisCleanupLease } from "../artifacts/AnalysisCleanupLease.js"; import { AnalysisCleanupLeaseGroup } from "../artifacts/AnalysisCleanupLease.js"; -import { ArtifactResourceRetryFailure } from "../artifacts/ArtifactResourceScope.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; import type { RetainedResourceScope } from "../application/AnalysisProvider.js"; import type { ProviderInspectionScope } from "../providers/ProviderInspectionScope.js"; diff --git a/src/javascript/analysis/JavaScriptAnalysisWorker.ts b/src/javascript/analysis/JavaScriptAnalysisWorker.ts index ed371deb783..2efa87f1772 100644 --- a/src/javascript/analysis/JavaScriptAnalysisWorker.ts +++ b/src/javascript/analysis/JavaScriptAnalysisWorker.ts @@ -1,6 +1,9 @@ import { analysisSettingLimit } from "../../domain/analysisSettingDefinitions.js"; import { WorkerFrameSignal } from "../../process/WorkerFrameSignal.js"; -import type { JavaScriptSemanticProjectionCapacity } from "../../domain/javascript/javascriptSemanticFileProjection.js"; +import type { + JavaScriptSemanticProjectionCapacity, + JavaScriptSemanticFileProjection, +} from "../../domain/javascript/javascriptSemanticFileProjection.js"; import { createHash, randomUUID } from "node:crypto"; import { readFile, rm, stat, writeFile } from "node:fs/promises"; import { join } from "node:path"; @@ -12,7 +15,6 @@ import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptA import type { JavaScriptStaticAnalysis } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; import { estimateJavaScriptStaticApplicationProjection } from "../../domain/javascript/javascriptApplicationProjectionResources.js"; import type { JavaScriptModuleSemanticIr } from "../../domain/javascript/javascriptModuleSemanticIr.js"; -import type { JavaScriptSemanticFileProjection } from "../../domain/javascript/javascriptSemanticFileProjection.js"; import type { JavaScriptAnalyzedSource, JavaScriptSourceAnalysisFailure, diff --git a/src/native/LldbCallTracer.ts b/src/native/LldbCallTracer.ts index 85f6d774a70..c9b508f421a 100644 --- a/src/native/LldbCallTracer.ts +++ b/src/native/LldbCallTracer.ts @@ -14,9 +14,11 @@ import { AnalysisTimeoutError, } from "../domain/analysisErrorCore.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; -import type { AnalysisError } from "../domain/analysisErrorBase.js"; +import type { + AnalysisError, + AnalysisCleanupObservation, +} from "../domain/analysisErrorBase.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { AnalysisCleanupObservation } from "../domain/analysisErrorBase.js"; import type { NativeCallPartialObservation } from "../domain/native/nativeCallPartialObservation.js"; import { nativeCallEventSchema, diff --git a/src/process/ArtifactAnalysisResources.test.ts b/src/process/ArtifactAnalysisResources.test.ts index 4a1648577b3..bca2754e3d4 100644 --- a/src/process/ArtifactAnalysisResources.test.ts +++ b/src/process/ArtifactAnalysisResources.test.ts @@ -1,6 +1,8 @@ import { AnalysisCleanupLease } from "../artifacts/AnalysisCleanupLease.js"; -import { ArtifactResourceRetryFailure } from "../artifacts/ArtifactResourceScope.js"; -import { ArtifactResourceScope } from "../artifacts/ArtifactResourceScope.js"; +import { + ArtifactResourceRetryFailure, + ArtifactResourceScope, +} from "../artifacts/ArtifactResourceScope.js"; import { withArtifactRegularFile } from "../artifacts/ArtifactFileOperation.js"; import { writeFile } from "node:fs/promises"; import { join } from "node:path"; diff --git a/src/server/registerElectronTools.ts b/src/server/registerElectronTools.ts index ed5641e03fa..dbbd37c08a1 100644 --- a/src/server/registerElectronTools.ts +++ b/src/server/registerElectronTools.ts @@ -39,8 +39,10 @@ import { } from "./toolRegistrationOptions.js"; import type { WithAdmittedAnalysis } from "./analysisAdmission.js"; import { runAdmittedToolOperation } from "./admittedToolOperation.js"; -import { createEvidenceToolHandler } from "./contractToolHandler.js"; -import { deliverEvidenceResult } from "./contractToolHandler.js"; +import { + createEvidenceToolHandler, + deliverEvidenceResult, +} from "./contractToolHandler.js"; interface ElectronToolRegistration { readonly artifactResources: ArtifactResourceScope; diff --git a/src/server/registerFridaTools.ts b/src/server/registerFridaTools.ts index 80db3d7e165..4c2503b247e 100644 --- a/src/server/registerFridaTools.ts +++ b/src/server/registerFridaTools.ts @@ -4,8 +4,10 @@ import type { Logger } from "pino"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import type { EvidenceLookup } from "../application/EvidenceInputResolver.js"; import { FridaInstrumentationService } from "../application/frida/FridaInstrumentationService.js"; -import type { FridaInstrumentationPort } from "../application/frida/FridaInstrumentationPort.js"; -import type { FridaRemoteConnection } from "../application/frida/FridaInstrumentationPort.js"; +import type { + FridaInstrumentationPort, + FridaRemoteConnection, +} from "../application/frida/FridaInstrumentationPort.js"; import { toolContract } from "../contracts/toolContracts.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; diff --git a/src/wasm/WabtArtifactProvider.ts b/src/wasm/WabtArtifactProvider.ts index 56c645d6bed..e555444816d 100644 --- a/src/wasm/WabtArtifactProvider.ts +++ b/src/wasm/WabtArtifactProvider.ts @@ -2,12 +2,12 @@ import { randomUUID, createHash } from "node:crypto"; import { access, realpath, writeFile } from "node:fs/promises"; import { constants } from "node:fs"; import { isAbsolute, join } from "node:path"; -import type { WasmArtifactExecutionOptions } from "../application/wasm/WasmArtifactPort.js"; -import { createAnalysisExecution } from "../application/AnalysisProvider.js"; import type { + WasmArtifactExecutionOptions, WasmArtifactExecution, WasmArtifactPort, } from "../application/wasm/WasmArtifactPort.js"; +import { createAnalysisExecution } from "../application/AnalysisProvider.js"; import { completedStableArtifact, readStableArtifact, diff --git a/tests/acceptance/tools/nativeFunctionMatching.test.ts b/tests/acceptance/tools/nativeFunctionMatching.test.ts index 8c083945ff7..20405c47466 100644 --- a/tests/acceptance/tools/nativeFunctionMatching.test.ts +++ b/tests/acceptance/tools/nativeFunctionMatching.test.ts @@ -9,9 +9,9 @@ import { nativeMatchingNamedInventory as nativeMatchingInventory, nativeMatchingDetails, nativeMatchingTarget, + nativeMatchingProvider, } from "../../fixtures/nativeFunctionMatching.js"; import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js"; -import { nativeMatchingProvider } from "../../fixtures/nativeFunctionMatching.js"; import { procedureInfoSchema } from "../../../src/domain/native/procedureInfo.js"; import { createEvidenceBundle, diff --git a/tests/boundary/filesystem/flutterBuildProvider.test.ts b/tests/boundary/filesystem/flutterBuildProvider.test.ts index 9d7176f0ca0..421b27717f6 100644 --- a/tests/boundary/filesystem/flutterBuildProvider.test.ts +++ b/tests/boundary/filesystem/flutterBuildProvider.test.ts @@ -11,8 +11,8 @@ import { engineFixtureImage, buildElf64Image, REFERENCE_HASH, + snapshotSection, } from "../../../src/flutter/FlutterBuild.fixture.js"; -import { snapshotSection } from "../../../src/flutter/FlutterBuild.fixture.js"; import { FlutterBuildProvider } from "../../../src/flutter/FlutterBuildProvider.js"; import { FlutterBuildAnalysisService } from "../../../src/application/flutter/FlutterBuildAnalysisService.js"; import { finishAnalysisCommand } from "../../../src/cli/finishAnalysisCommand.js"; diff --git a/tests/boundary/filesystem/ghidraProfileArtifactOwnership.test.ts b/tests/boundary/filesystem/ghidraProfileArtifactOwnership.test.ts index 98874971afc..676a8fe062f 100644 --- a/tests/boundary/filesystem/ghidraProfileArtifactOwnership.test.ts +++ b/tests/boundary/filesystem/ghidraProfileArtifactOwnership.test.ts @@ -1,6 +1,6 @@ import * as extensionModule from "../../../src/ghidra/extensions/GhidraExtensions.js"; import { createHash } from "node:crypto"; -import { basename } from "node:path"; +import { basename, join } from "node:path"; import { GhidraClient } from "../../../src/ghidra/GhidraClient.js"; import { GhidraHeadlessLauncher } from "../../../src/ghidra/GhidraLauncher.js"; import { GhidraProvider } from "../../../src/ghidra/GhidraProvider.js"; @@ -15,7 +15,6 @@ import { writeFile, type FileHandle, } from "node:fs/promises"; -import { join } from "node:path"; import { afterEach, expect, it, vi } from "vitest"; import { ArtifactResourceScope } from "../../../src/artifacts/ArtifactResourceScope.js"; import { parseConfig } from "../../../src/config/parseConfig.js"; diff --git a/tests/boundary/mcp/devicetreeMcp.test.ts b/tests/boundary/mcp/devicetreeMcp.test.ts index 506107164a1..71806dd0e5e 100644 --- a/tests/boundary/mcp/devicetreeMcp.test.ts +++ b/tests/boundary/mcp/devicetreeMcp.test.ts @@ -1,7 +1,7 @@ import { advertisedMcpToolSchemas } from "../../fixtures/advertisedMcpTool.js"; import { unlink, writeFile } from "node:fs/promises"; import { join } from "node:path"; -import { expect } from "vitest"; +import { expect, onTestFinished } from "vitest"; import { z } from "zod"; import { toolContract } from "../../../src/contracts/toolContracts.js"; import { EvidenceMcpServer } from "../../../src/server/EvidenceMcpServer.js"; @@ -12,7 +12,6 @@ import { DevicetreeProvider } from "../../../src/firmware/devicetree/DevicetreeP import { DevicetreeService } from "../../../src/application/binaryDiagnostics/DevicetreeService.js"; import { silentLogger } from "../../../src/logger.js"; import type { Evidence } from "../../../src/domain/evidence.js"; -import { onTestFinished } from "vitest"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { parseMcpToolError } from "../../fixtures/mcpToolError.js"; import { diff --git a/tests/boundary/mcp/ghidraReopen.test.ts b/tests/boundary/mcp/ghidraReopen.test.ts index ac2dbcce7c1..fc2bdc7232d 100644 --- a/tests/boundary/mcp/ghidraReopen.test.ts +++ b/tests/boundary/mcp/ghidraReopen.test.ts @@ -1,4 +1,4 @@ -import { ok as javaProbeOk } from "../../../src/domain/result.js"; +import { ok as javaProbeOk, ok } from "../../../src/domain/result.js"; import type { GhidraJavaObservation } from "../../../src/ghidra/GhidraJavaProbe.js"; import { spawn, type ChildProcess } from "node:child_process"; import { access, mkdir, readFile, writeFile } from "node:fs/promises"; @@ -13,7 +13,6 @@ import { composeBinarySession } from "../../../src/application/binary/BinarySess import { LazyAnalysisProvider } from "../../../src/application/binary/LazyAnalysisProvider.js"; import { parseConfig } from "../../../src/config/parseConfig.js"; import { elf } from "../../../src/domain/binaryTarget.fixture.js"; -import { ok } from "../../../src/domain/result.js"; import { GhidraClient } from "../../../src/ghidra/GhidraClient.js"; import type { GhidraInstallationHost } from "../../../src/ghidra/GhidraInstallation.js"; import type { diff --git a/tests/boundary/mcp/largeToolResult.test.ts b/tests/boundary/mcp/largeToolResult.test.ts index 6acaf5aad3e..1c886e50908 100644 --- a/tests/boundary/mcp/largeToolResult.test.ts +++ b/tests/boundary/mcp/largeToolResult.test.ts @@ -28,9 +28,9 @@ import { MINIMUM_RESPONSE_BYTES } from "../../../src/config/mcpResponseBudget.js import { MCP_RESULT_STRING_LIMIT, NODE_MAX_STRING_LENGTH, + encodeToolResult, } from "../../../src/server/toolResultEncoding.js"; import { EvidenceMcpServer } from "../../../src/server/EvidenceMcpServer.js"; -import { encodeToolResult } from "../../../src/server/toolResultEncoding.js"; import { parseMcpToolError } from "../../fixtures/mcpToolError.js"; const delivery = createToolResultDelivery(STDIO_DEFAULT_MAX_BUFFER_SIZE); diff --git a/tests/boundary/mcp/promptMcp.test.ts b/tests/boundary/mcp/promptMcp.test.ts index ef4469dcd34..cbc1e527c43 100644 --- a/tests/boundary/mcp/promptMcp.test.ts +++ b/tests/boundary/mcp/promptMcp.test.ts @@ -1,4 +1,4 @@ -import { ok as resultOk } from "../../../src/domain/result.js"; +import { ok as resultOk, err, ok } from "../../../src/domain/result.js"; import { readFile, rm, writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; @@ -31,7 +31,6 @@ import { AnalysisProviderRegistry } from "../../../src/application/binary/Analys import { composeBinarySession } from "../../../src/application/binary/BinarySessionComposition.js"; import { createAnalysisProfile } from "../../../src/domain/analysisProfile.js"; import { AnalysisCancelledError } from "../../../src/domain/analysisErrorCore.js"; -import { err, ok } from "../../../src/domain/result.js"; import { createCacheProvider, createTestBinarySession, diff --git a/tests/boundary/providers/native/lldbCallTracerFailures.test.ts b/tests/boundary/providers/native/lldbCallTracerFailures.test.ts index 3ba872d9016..8cd5999666b 100644 --- a/tests/boundary/providers/native/lldbCallTracerFailures.test.ts +++ b/tests/boundary/providers/native/lldbCallTracerFailures.test.ts @@ -9,8 +9,7 @@ import { type FileHandle, } from "node:fs/promises"; import { ChildProcess } from "node:child_process"; -import { dirname } from "node:path"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; import { tmpdir } from "node:os"; import { describe, expect, it, onTestFinished, vi } from "vitest"; diff --git a/tests/boundary/providers/native/nativeSignatureTargetBinding.test.ts b/tests/boundary/providers/native/nativeSignatureTargetBinding.test.ts index 83368d9479a..816747dbf2c 100644 --- a/tests/boundary/providers/native/nativeSignatureTargetBinding.test.ts +++ b/tests/boundary/providers/native/nativeSignatureTargetBinding.test.ts @@ -14,7 +14,11 @@ import { } from "node:fs/promises"; import { dirname, join } from "node:path"; import { describe, expect, it, onTestFinished } from "vitest"; -import { signatureInspectionFixture } from "../../../fixtures/nativeCommands.js"; +import { + signatureInspectionFixture, + NativeFixtureRunner, + nativeMachoTargetForFile, +} from "../../../fixtures/nativeCommands.js"; import { resolvedAnalysisError } from "../../../../src/domain/analysisErrorBase.js"; import { parseBinaryTarget } from "../../../../src/application/BinaryTargetResolver.js"; import { NativeMacOSProvider } from "../../../../src/native/NativeMacOSProvider.js"; @@ -31,10 +35,6 @@ import { import { inspectSignatureSchema } from "../../../../src/domain/native/nativeInspection.js"; import { err, ok } from "../../../../src/domain/result.js"; import { projectAnalysisError } from "../../../../src/domain/analysisErrorProjection.js"; -import { - NativeFixtureRunner, - nativeMachoTargetForFile, -} from "../../../fixtures/nativeCommands.js"; import { createTestTempDirectory } from "../../../fixtures/temporaryDirectory.js"; const CONTENT = "registered executable bytes"; diff --git a/tests/fixtures/analysisView.ts b/tests/fixtures/analysisView.ts index 454526c1cee..af2e2435519 100644 --- a/tests/fixtures/analysisView.ts +++ b/tests/fixtures/analysisView.ts @@ -5,8 +5,10 @@ import { environmentStateHar, } from "./historicalHar.js"; import { webNetworkCaptureSchema } from "../../src/domain/webNetworkCapture.js"; -import { BINARY_LAYOUT_TEST_PROVIDER } from "./binaryDiagnostics/layout.js"; -import { binaryLayoutFixture } from "./binaryDiagnostics/layout.js"; +import { + BINARY_LAYOUT_TEST_PROVIDER, + binaryLayoutFixture, +} from "./binaryDiagnostics/layout.js"; import { JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE } from "../../src/contracts/javascript/javascriptRuntimeReconciliationExample.js"; import { createEvidence, type Evidence } from "../../src/domain/evidence.js"; import type { JavaScriptApplicationAnalysisResult } from "../../src/domain/javascript/javascriptApplicationAnalysis.js"; diff --git a/website/locales/README.md b/website/locales/README.md index 0779b50400d..100f5e47e95 100644 --- a/website/locales/README.md +++ b/website/locales/README.md @@ -139,6 +139,11 @@ Romanian (`ro`) has a complete translated README. Its website catalog is pending and uses the same labeled, nonindexable English fallback; the Romanian README does not establish website translation coverage. +Bangla (`bn`) has a translated README and a complete website catalog, including +setup guides, case studies, articles and Contributors. Like the other editions, +it uses the labeled English fallback when a future source change leaves a +required translation missing or pending review. + The first catalogs started with machine-assisted drafts. They include editorial corrections to navigation, prompts and technical terminology. Traditional Chinese started from the Simplified Chinese draft and is maintained independently. diff --git a/website/locales/ar/messages.po b/website/locales/ar/messages.po index 77b2988308e..874dd3d79d3 100644 --- a/website/locales/ar/messages.po +++ b/website/locales/ar/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}الرئيسية{ph1} / المدونة" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "مدونة." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "أفكار حول الهندسة العكسية." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "لعبة إعادة الإعمار{ph0}مقال" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "الثورة الصناعية في الهندسة العكسية" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "ما دليل إعادة تعمير TH08, TH095 و TH04 علمني عن وكلاء والتحقق المعرفة أن " "المركبات عبر المشاريع." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "اقرأ المقال" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "بواسطة N0zoM1z0 * 10 أكتوبر 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,160 +101,160 @@ msgstr "" "أفكار حول الهندسة العكسية ، بالاعتماد على الخبرة العملية مع REA وكلاء منظمة " "العفو الدولية." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "REA - اكتشف كيف يعمل البرنامج. الهندسة العكسية مع مساعدك البرمجي." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "الصفحة الرئيسية لـ REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "التنقل الرئيسي" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA على GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "انضم إلى REA على Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "تابع REA على X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -263,35 +263,35 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "مقال * إعادة إعمار توهو" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "الثورة الصناعية في الهندسة العكسية." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "بواسطة N0zoM1z0 * 10 أكتوبر 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "أهم الأفكار" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -303,7 +303,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -317,7 +317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -329,7 +329,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -341,7 +341,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -351,65 +351,65 @@ msgstr "" "{ph0}نحن في الأيام الأولى للثورة الصناعية في ري.{ph1} الأساليب لا تزال " "تتشكل. هناك الكثير من اليسار لاستكشاف." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "كيف تجربة المركبات" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "الاستقلالية" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "المساعد" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "التحقق" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "مرجع التحقق" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "مستودع الكود" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "ذاكرة العمل" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -418,7 +418,7 @@ msgstr "رمز ، دليل,{ph0}الشيكات والدروس." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -427,26 +427,26 @@ msgstr "عدم التطابق{ph0}{ph1}مراجعة الفرضية{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "إعادة الاستخدام" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -455,14 +455,14 @@ msgstr "" "كل مشروع يترك التالي مع نقطة انطلاق أفضل. يتضمن ذلك إصلاح الشيكات عندما " "نكتشف فجوة." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "في هذه المقالة" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -470,7 +470,7 @@ msgstr "{ph0}أغسطس 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -478,7 +478,7 @@ msgstr "{ph0}TH08: استمرار{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -486,7 +486,7 @@ msgstr "{ph0}نهجين{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -494,7 +494,7 @@ msgstr "{ph0}TH095: يضاعف{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -502,7 +502,7 @@ msgstr "{ph0}TH04: عبر البنى{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -510,7 +510,7 @@ msgstr "{ph0}من الدقيق للقراءة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -518,18 +518,18 @@ msgstr "{ph0}التحول الصناعي{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "ما الذي تغير في أغسطس 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -543,7 +543,7 @@ msgstr "" " مزيد من قضاء المزيد من وقتي في الوظيفة التالية. كان يعني أيضا الاحتفاظ " "بصورة كبيرة بشكل متزايد في رأسي." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -556,7 +556,7 @@ msgstr "" "تكون الطريقة مفيدة في مكان آخر ، ولكن يحتاج كل حقل إلى تحديد ما يمكنه التحقق" " منه مقابل مرجع موثوق." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -568,7 +568,7 @@ msgstr "" "إلى أي مدى يمكن للوكيل الوصول إلى البرنامج وأدوات التطوير العادية. أعطاني " "إعادة الإعمار توهو مشروع كبير لمعرفة ذلك." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -584,7 +584,7 @@ msgstr "" "ذلك. إن إعطائها تلك الحرية أحدثت فرقا: يمكنني أن أنفق المزيد من الاهتمام على" " اتجاه المشروع وعلى ما إذا كانت الشيكات جديرة بالثقة." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -594,7 +594,7 @@ msgstr "" "حصلت على وتيرة انتباهي أولا. ثم بدأت أتساءل ما الذي سيبقى بعد المشروع " "الحالي. هل ستستفيد اللعبة التالية من كل ما تعلمناه للتو?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: البناء على العمل البشري" @@ -603,7 +603,7 @@ msgstr "TH08: البناء على العمل البشري" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -616,7 +616,7 @@ msgstr "" "الإعمار{ph3}. أعطاني مصدرها العام أساسا كبيرا. جاء مع معرفة البناء وتاريخ " "المساهمات التي حافظت عليها في الاستمرار." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -627,7 +627,7 @@ msgstr "" "المستقل في 13 أغسطس. بحلول 19 أغسطس ، سجل دفتر الأستاذ مصدرا لجميع وظائف " "اللعبة المحددة البالغ عددها 1107 وظيفة." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -638,7 +638,7 @@ msgstr "" " من بدء الاستمرار. تبع ذلك إصدار ويب. الأم Linux وصل إصدار 64 بت في 30 " "أغسطس." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -653,7 +653,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -670,12 +670,12 @@ msgstr "" "المسار الذي تم ممارسته يصل إلى الحالة المتوقعة. يقترح الوكيل تفسيرا ويختبره " "؛ عدم التطابق يعطيها شيئا محددا للتحقيق فيه." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "تطابق تام مع ثابت خاطئ" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -686,7 +686,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -698,7 +698,7 @@ msgstr "" "التلقائي للعناصر. فحص المصدر المعاد بناؤه قوة اللاعب ضد {ph0}. الأصل " "المستخدم {ph1}، الحد الأقصى-عتبة الطاقة." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -712,13 +712,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -732,7 +732,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -748,7 +748,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -761,7 +761,7 @@ msgstr "" " الفعلية للثابت المشار إليه. A {ph2}مراجعة أوسع{ph3} ثم فحص 1548 نقطة عائمة " "المراجع الثابتة. وجدت اثني عشر مرجعا آخر غير صحيح عبر خمس وظائف مقبولة." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -774,7 +774,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -784,7 +784,7 @@ msgstr "" "{ph0}احتاج مرجع التحقق (أوراكل) إلى إعادة البناء أيضا.{ph1} كان إصلاحه جزءا " "من إصلاح اللعبة." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -801,7 +801,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -816,7 +816,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -825,7 +825,7 @@ msgid "" msgstr "" "{ph0}أعطتنا دفعة ناجحة كلا من الكود المسترد وبيئة أفضل للدفعة التالية.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "فكرتان مختلفتان لإعادة الإعمار" @@ -834,7 +834,7 @@ msgstr "فكرتان مختلفتان لإعادة الإعمار" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -846,7 +846,7 @@ msgstr "" "واضحا. يعلن الإشعار أن المزيد من التطوير سيحدث بشكل خاص حتى الانتهاء. مقطع " "واحد يقرأ:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -855,7 +855,7 @@ msgstr "" "إن صعود القواطع (عمليات فك التجميع والمنافذ بالذكاء الاصطناعي) في هذا الفضاء" " المأخوذ من عملنا يرسم صورة سيئة لجهود فك التجميع المستقبلية…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -871,7 +871,7 @@ msgstr "" "أحترم الجهد وراء ذلك. والخلاف الذي أريد مناقشته يتعلق بكيفية المضي قدما في " "إعادة الإعمار وكيف ينبغي الحكم على المساهمة." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -883,7 +883,7 @@ msgstr "" " نفس الشخص. اعتمد المشروع بشكل كبير على خبرة ذلك الشخص. كانت الثقة في " "المساهم مهمة لأن الكثير من المنطق حدث أثناء عملهم." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -894,7 +894,7 @@ msgstr "" "بالنسبة لي هو أن الوكيل يمكنه استخدام هذه المعرفة لمتابعة التحقيق التالي " "بمفرده." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -908,7 +908,7 @@ msgstr "" "أريد أن يكون شخص آخر قادرا على فحص سبب اختيارنا للتنفيذ ، حتى لو قام الوكيل " "بمعظم العمل." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -920,7 +920,7 @@ msgstr "" " يتحرك بشكل أسرع. هذا يثير أسئلة حقيقية حول الائتمان. كما أنه يغير ما يحتاج " "المشرفون إلى معرفته قبل قبول المساهمة." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -935,7 +935,7 @@ msgstr "" "إنتاجها خاطئا. يمكن للمجتمعات المختلفة اختيار مقدار هذا التغيير الذي تريد " "القيام به." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -959,7 +959,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -971,14 +971,14 @@ msgstr "" " و {ph2}سياسة المساهمة{ph3}. الاقتباس هو مقتطف مختصر. TH08في {ph4}الاعتمادات" " والمصدر{ph5} سجل حدود الاستمرارية." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: تبدأ التجربة بالتفاقم" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -992,7 +992,7 @@ msgstr "" "لا يزال يتعين علينا تعلم اللعبة. لكننا عرفنا بالفعل الكثير عن كيفية بدء " "إعادة الإعمار وكيفية الحفاظ عليها تتحرك." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1005,7 +1005,7 @@ msgstr "" "سبتمبر. ال Windows أنا 386 تم وضع علامة على إعادة الإعمار للعب في 10 سبتمبر " "، بعد حوالي اثني عشر يوما من التهيئة." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1016,7 +1016,7 @@ msgstr "" "العمل المنجز في لعبة أخرى. كانت التجربة موجودة بالفعل في الأدوات وفي طريقة " "تنظيم المشروع." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1030,7 +1030,7 @@ msgstr "" "المعزولة تترك سؤالا مهما مفتوحا. نحن بحاجة إلى رؤيتهم يعملون معا. ساعد هذا " "الدرس في تشكيل كيفية اقترابنا TH095بناء البرنامج بأكمله." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1042,7 +1042,7 @@ msgstr "" "جلسة أخرى يمكن تشغيلها ، يمكن أن تستمر في المساعدة بعد أن انتقلت. يمكن " "للوكيل التالي استخدام النتيجة دون تكرار التحقيق الذي أدى إليها." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1057,7 +1057,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1068,7 +1068,7 @@ msgstr "" "{ph0}تصبح الطريقة جزءا من مادة البداية للعبة التالية.{ph1} يمكننا إنفاق " "المزيد من جهد المشروع التالي على ما هو جديد بالفعل حول هدفه." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1080,7 +1080,7 @@ msgstr "" "تشغيله قبل مواصلة العمل. لا يتعين عليهم إعادة بناء تاريخ المشروع بأكمله " "لمعرفة سبب ظهور المصدر بالطريقة التي يعمل بها." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: سير العمل ينجو من بنية مختلفة" @@ -1089,7 +1089,7 @@ msgstr "TH04: سير العمل ينجو من بنية مختلفة" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1104,7 +1104,7 @@ msgstr "" "عن Windows ألعاب. القائمة {ph2}التوصية 98 العمل{ph3} قدم لنا معرفة قيمة " "ومصدر المواد هنا أيضا." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1116,7 +1116,7 @@ msgstr "" "كاملة من خلال نهاياتها وفحص يحفظ. العمل الحالي هو منفذ 64 بت الأصلي. إنشاء " "إصدار دوس العمل يعطي أولا أن ميناء الاتصالات مرجعا." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1128,7 +1128,7 @@ msgstr "" "ووقت التشغيل الذي تحققنا من عملنا. لكن لا يزال بإمكان الوكيل متابعة سؤال حتى" " النتيجة والسماح لهذه النتيجة بتوجيه التجربة التالية." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1142,7 +1142,7 @@ msgstr "" "التحقيق ضد المنتج دوس. مرة واحدة هي الأدلة والشيكات المتاحة ، وكيل يمكن أن " "تعمل من خلال السؤال بقدر ما فعلت على Windows العنوان." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1153,7 +1153,7 @@ msgstr "" "على البدء من جديد بطريقة جديدة للعمل. حددت البنية المشكلة ؛ لا يزال سير " "العمل يعطينا طريقة لحلها." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1170,7 +1170,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1180,19 +1180,19 @@ msgstr "" "حالة المشروع اعتبارا من 10 أكتوبر 2026: {ph0}إعادة بناء دوس والاختبار " "اليدوي{ph1} · {ph2}منفذ 64 بت{ph3}. الميناء لا يزال قيد التطوير." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "من الكود الدقيق إلى الكود المقروء" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1206,7 +1206,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1221,7 +1221,7 @@ msgstr "" "نتمكن من شرح دورها. ثم يمكننا أن نعطيها اسما ذا معنى ونوعا يناسب الأدلة. " "نحافظ على المنطق مع المصدر حتى يتمكن الشخص التالي من رؤية مصدر هذا التفسير." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1235,14 +1235,14 @@ msgstr "" "الكائن الذي يجب أن يمتلك تلك الحالة. لنقل السلوك بأمان ، نحتاج إلى استعادة " "العلاقة وراء الوصول إلى الذاكرة القديمة." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "الترتيب الذي أستخدمه الآن هو:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1257,7 +1257,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1273,7 +1273,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1288,7 +1288,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1302,7 +1302,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1318,7 +1318,7 @@ msgstr "" "الثاني من أن البرنامج الذي أعيد بناؤه لا يزال يبني ويتصرف بشكل صحيح على طول " "المسارات التي نمارسها." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1331,7 +1331,7 @@ msgstr "" "كل من الشيكات المتاحة يعطي وكيل فشل ملموس للتحقيق قبل أن يحمل ريفاكتور أبعد " "من ذلك." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1348,7 +1348,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1366,7 +1366,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1376,12 +1376,12 @@ msgstr "" "{ph0}إعادة الإعمار الدقيق يعطينا مرجعا. إعادة البناء الدلالي يجعل المعرفة " "المستردة قابلة للاستخدام.{ph1} يمكن للمنفذ بعد ذلك البناء على كليهما." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "ما الذي يجعل هذا التحول الصناعي" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1394,7 +1394,7 @@ msgstr "" "التي يمكنني القيام بها. يمكن أن تساعد الأداة الأفضل في كل وظيفة لاحقة " "تحتاجها." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1407,7 +1407,7 @@ msgstr "" "متوقع. إذا كان عليه أن ينتظر مني أن أصف كل خطوة ، فإن الكثير من العمل لا " "يزال مرتبطا باهتمامي." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1420,7 +1420,7 @@ msgstr "" "للمحاولة مرة أخرى. لا يزال يتعين علي أن أقرر ما إذا كانت الأدلة المتراكمة " "تدعم علامة فارقة في المشروع." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1434,7 +1434,7 @@ msgstr "" "والشيكات المرجعية الخاصة به. يمكن للوكيل استخدام تلك لاختبار المصدر الذي " "يقترحه ومعرفة أين يحمل تفسيره." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1451,7 +1451,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1470,7 +1470,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1486,7 +1486,7 @@ msgstr "" " مشتركة ، يتعين علينا إصلاحه وإعادة النظر في النتائج التي تأثرت بها. يمكن " "للمشروع التالي بعد ذلك أن يرث أداة أقوى." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1501,7 +1501,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1513,7 +1513,7 @@ msgstr "" "وسيلة مشتركة لتنفيذ الشيكات والدروس إلى الأمام. العمل على لعبة واحدة يمكن أن" " يحسن ظروف البداية لآخر." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1524,12 +1524,12 @@ msgstr "" "من الأدوات التي يمكن للآخرين استخدامها. يؤدي تحسين هذه الأدوات إلى تغيير " "مقدار ما يمكن للشخص التالي—أو الوكيل التالي—إنجازه." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "المشاريع التي يمكننا النظر فيها الآن" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1540,7 +1540,7 @@ msgstr "" "ولا تزال تتطلب المزيد من اهتمامي الخاص مما كنت يمكن أن تعطي واقعيا. العديد " "من المشاريع ستبقى الأفكار." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1556,7 +1556,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1566,7 +1566,7 @@ msgstr "" "أنا الآن ننظر إلى برنامج غير مألوف ونسأل: {ph0}ما هو الوصول, ردود الفعل " "والمعرفة المتراكمة ستسمح للوكيل بالعمل على هذا بشكل موثوق?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1577,12 +1577,12 @@ msgstr "" " واحد تحسين الطريقة التي نقترب بها من التالي. أريد أن أستمر في استكشاف إلى " "أي مدى يمكن أن يأخذنا ذلك." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "معالم المشروع ومصادره" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1615,7 +1615,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1649,7 +1649,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1667,7 +1667,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1690,7 +1690,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1711,7 +1711,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1727,7 +1727,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1748,7 +1748,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1762,7 +1762,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1782,27 +1782,27 @@ msgstr "" "N0zoM1z0 يعكس على دليل الهندسة العكسية, Touhou إعادة الإعمار مع منظمة العفو " "الدولية وكلاء, كيفية معرفة المركبات عبر TH08, TH095 و PC-98 TH04." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "الخبرة المنقولة بين المشاريع" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "مقال إعادة إعمار توهو" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -1811,18 +1811,18 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "تفقد rebuild إعادة بناء change تغيير" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "إعادة بناء قاعدة سرعة الديناصور." @@ -1831,7 +1831,7 @@ msgstr "إعادة بناء قاعدة سرعة الديناصور." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1843,15 +1843,15 @@ msgstr "" "عاد البرنامج النصي قيد التشغيل;{ph1} استخدمنا حكمها لبناء هذه اللعبة المصغرة" " مع {ph2}سرعة قابلة للتعديل.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "في هذه الصفحة" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1859,7 +1859,7 @@ msgstr "{ph0}اللعب وتغيير السرعة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1867,7 +1867,7 @@ msgstr "{ph0}اقرأ القاعدة المستردة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1875,18 +1875,18 @@ msgstr "{ph0}تحقق من إعادة الإعمار{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "اللعب وتغيير السرعة" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1897,47 +1897,47 @@ msgstr "" "أو أسرع ؛ يتحول إلى سرعة ثابتة. حدد القاعدة المستردة للبدء في 6 وتسريع " "تدريجيا مرة أخرى." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "جرّب اللعبة المعاد بناؤها" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "العب" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "اقفز ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "ابدأ من جديد" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "السرعة" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "استخدم قاعدة التسارع المستردة" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -1945,7 +1945,7 @@ msgid "" msgstr "" "تمكين JavaScript للعب إعادة الإعمار. يظل الرمز والشرح أعلاه قابلا للقراءة." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "قراءة السيناريو REA عاد" @@ -1953,7 +1953,7 @@ msgstr "قراءة السيناريو REA عاد" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1967,7 +1967,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1977,18 +1977,18 @@ msgstr "" "الإعدادات هي {ph0}, {ph1} و {ph2}. تدير اللعبة هذا الفرع على تحديث دون " "تصادم." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "استخدم نفس القاعدة في اللعبة الجديدة" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "نسخ" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2005,18 +2005,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "تحقق من إعادة الإعمار" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2026,27 +2026,27 @@ msgstr "" "اتصلنا بوظيفة تحديث اللعبة الأصلية مع تعطيل العقبات والجدولة التلقائية. قارن" " تلك السرعات المسجلة مع إعادة تشغيل القاعدة المستردة." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "التحديثات" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "اللعبة الأصلية" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "قاعدة أعيد بناؤها" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "قم بتشغيل فحص السرعة" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2055,14 +2055,14 @@ msgstr "" "تقريب القيم إلى ثلاثة كسور عشرية. يتحقق الفرع قبل الإضافة ، لذلك يمكن أن " "تأخذ الزيادة النهائية سرعة أعلى بقليل من 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "جرب التحليل بنفسك" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2071,14 +2071,14 @@ msgstr "{ph0}إعداد REA{ph1} مع مساعدك البرمجي." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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} كما رابط الصفحة." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2095,7 +2095,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2107,7 +2107,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مساعدك البرمجي" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2121,7 +2121,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2136,7 +2136,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2161,12 +2161,12 @@ msgstr "" "اقرأ قاعدة سرعة لعبة الديناصورات باستخدام REA، إعادة بنائه ، ثم تغيير السرعة" " واللعب." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "إعادة بناء سرعة الديناصورات" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2174,52 +2174,52 @@ msgid "" msgstr "" "ديناصور لعبة صغيرة. استخدم زر القفز أو اضغط على الفضاء أثناء تركيز اللعبة." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "نسخ قاعدة السرعة المعاد بناؤها" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "نسخة ديناصور تحليل موجه" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}الرئيسية{ph1} / أسئلة وأجوبة" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA التعليمات." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "الإعداد والتحديثات والتحليل واستكشاف الأخطاء وإصلاحها." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "المواضيع" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2227,7 +2227,7 @@ msgstr "{ph0}الإعداد والتحديثات{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2235,7 +2235,7 @@ msgstr "{ph0}التحليل{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2243,31 +2243,31 @@ msgstr "{ph0}استكشاف الأخطاء وإصلاحها{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}البيانات والمشاركة{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "الإعداد والتحديثات" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "كيف أثبّت REA؟" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "محطة * وكيل الإعداد" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "نسخ" @@ -2275,7 +2275,7 @@ msgstr "نسخ" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2288,13 +2288,13 @@ msgstr "" "اكتماله، أعد تشغيل مساعدك وأعطه مسار الملف وسؤالك. يوضّح {ph0}دليل " "الإعداد{ph1} المتطلبات وخطوات التحليل الأول." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "ما هي عوامل الترميز التي يمكن استخدامها REA?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2309,18 +2309,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}قم بتوصيل مساعدك البرمجي{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "كيف أحدّث REA؟" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2329,14 +2329,14 @@ msgstr "" "REA الإصدارات بشكل متكرر ، بما في ذلك إصلاحات الأخطاء. إذا قمت بتثبيت CLI مع" " npm:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "المحطة الطرفية * مثبتة CLI" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2346,14 +2346,14 @@ msgstr "" "اتبع أمر تحديث الإعداد الذي يظهر بعد التحديث. إذا أعددت مساعدك باستخدام " "{ph0}، فنفّذ:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "محطة * تحديث وكيل الإعداد" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2365,7 +2365,7 @@ msgstr "" " لذلك أعد تشغيل الإعداد لاستخدام الإصدار الجديد. لتنفيذ أمر CLI مرة واحدة، " "أضف الأمر بعد {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "يتم تثبيت المهارة من skills.sh كفى?" @@ -2373,7 +2373,7 @@ msgstr "يتم تثبيت المهارة من skills.sh كفى?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2384,17 +2384,17 @@ msgstr "" "تزوّد المهارة مساعدك بتعليمات التحليل. شغّل {ph0}إعداد REA{ph1} لتوصيل خادم " "MCP وتثبيت المهارة المناسبة، ثم أعد تشغيل مساعدك ليتمكّن من استخدام الأدوات." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "التحليل" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "ماذا يمكنني تحليل مع REA?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "تبدأ مع هذا النوع من البرامج لديك:" @@ -2402,7 +2402,7 @@ msgstr "تبدأ مع هذا النوع من البرامج لديك:" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2414,7 +2414,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2426,7 +2426,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2436,7 +2436,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2448,13 +2448,13 @@ msgstr "" "Android APK والبرامج الثابتة والموارد المعبأة. تعرض {ph0}دراسات الحالة{ph1} " "أمثلة عملية." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "هل أحتاج Hopper, Ghidra أو IDA?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2467,7 +2467,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2479,13 +2479,13 @@ msgstr "" "تثبيته. تعتمد الأداة المتاحة على نظام التشغيل والهدف. {ph0}إعداد التحليل " "الأصلي{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "هل يمكنني استخدام REA بدون المساعد البرمجي?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2494,7 +2494,7 @@ msgstr "" "نعم. تستخدم CLI عمليات التحليل نفسها. لتحليل تطبيق JavaScript أو Electron " "محلي:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "محطة * تحليل التطبيق الثابت" @@ -2502,7 +2502,7 @@ msgstr "محطة * تحليل التطبيق الثابت" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2513,13 +2513,13 @@ msgstr "" " لخيارات التثبيت." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2535,7 +2535,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2546,13 +2546,13 @@ msgstr "" "يستخدم مساعدك النتائج لشرح السلوك أو كتابة تنفيذ واختباره. توضح {ph0}حسابات " "DX-Ball{ph1} و{ph2}أداة التحقق من flag في CTF{ph3} هذه العملية." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "ماذا أسأل مساعدي؟" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2569,7 +2569,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2578,7 +2578,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مساعدك البرمجي" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2588,19 +2588,19 @@ msgstr "" "استبدل المسار بهدفك. تحتوي {ph0}الأدلة{ph1} على طلبات نموذجية للبرامج " "الأصلية وElectron والمتصفح." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "استكشاف الأخطاء وإصلاحها" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "لماذا لا يستطيع وكيل أعمالي رؤية REA أدوات?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2610,7 +2610,7 @@ msgstr "" "أعد تشغيل مساعدك أو اتصاله بعد الإعداد. افحص تسجيل REA باستخدام {ph0}؛ مثال " "لـ Codex:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "محطة * تحقق عميل واحد" @@ -2619,7 +2619,7 @@ msgstr "محطة * تحقق عميل واحد" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2629,7 +2629,7 @@ msgstr "" "استبدل {ph0} بمعرّف العميل، مثل {ph1} أو {ph2}. إذا أظهر التقرير تسجيلًا " "مفقودًا أو قديمًا، فأعد الإعداد لذلك العميل:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "محطة * إصلاح إعداد عميل واحد" @@ -2637,7 +2637,7 @@ msgstr "محطة * إصلاح إعداد عميل واحد" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2648,7 +2648,7 @@ msgstr "" "راجع الخطة وأعد تشغيل العميل. إذا كان التسجيل سليمًا لكن الأدوات لا تظهر، " "فافحص خطأ اتصال MCP لدى العميل. {ph0}تشخيصات إعداد إضافية{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "هل أحتاج إلى البدء Hopper أولا?" @@ -2656,7 +2656,7 @@ msgstr "هل أحتاج إلى البدء Hopper أولا?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2668,7 +2668,7 @@ msgstr "" "التجريبي أو فعّل الترخيص في شاشة التشغيل الأول قبل بدء التحليل دون تدخل. " "{ph0}إعداد أدوات التحليل الأصلية{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "ماذا أفعل إذا واجهت خطأ؟" @@ -2676,7 +2676,7 @@ msgstr "ماذا أفعل إذا واجهت خطأ؟" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2689,7 +2689,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2701,18 +2701,18 @@ msgstr "" "الهدف وخطوات إعادة إنتاج المشكلة ومخرجات الخطأ. أضف اسم أداة التحليل إذا " "كانت المشكلة تتعلق بالتحليل الأصلي." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "البيانات والمشاركة" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "هل REA تحميل تطبيقي?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2721,7 +2721,7 @@ msgstr "" "يحلّل REA الأهداف على جهازك. يستقبل مساعدك النتائج، وتخضع هذه النتائج لسياسة" " البيانات الخاصة بمزوّد نموذجه." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "كيف يمكنني مشاركة مثال أو المساهمة?" @@ -2731,7 +2731,7 @@ msgstr "كيف يمكنني مشاركة مثال أو المساهمة?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2747,7 +2747,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2772,77 +2772,77 @@ msgstr "" "إجابات عن أسئلة REA الشائعة: التثبيت والتحديث وأدوات التحليل والمساعدون " "البرمجيون وحل المشكلات ومشاركة الأمثلة." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "الأسئلة المتداولة حول REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "نسخ REA أمر الإعداد" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "نسخ REA أمر التحديث" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "أمر تحديث إعداد وكيل النسخ" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "نسخ REA CLI أمر التحليل" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "نسخ مثال تحليل موجه" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "نسخ أمر تشخيص العميل" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "نسخ أمر إعداد النطاق" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}الرئيسية{ph1} / تحقيقك الأول" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2851,14 +2851,14 @@ msgstr "" "استخدام REA لتفقد تطبيق صغير ، اتبع زر ملاحظات التصدير الخاص به وتحقق من أحد" " التفاصيل بنفسك." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "في هذا التمرين" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2866,7 +2866,7 @@ msgstr "{ph0}1. إعداد{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2874,7 +2874,7 @@ msgstr "{ph0}2. اسأل عن التصدير{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2882,7 +2882,7 @@ msgstr "{ph0}3. اتبع الجواب{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2890,13 +2890,13 @@ msgstr "{ph0}4. تحقق من التنبؤ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. ربط وكيلك إلى REA" @@ -2909,30 +2909,30 @@ msgstr "1. ربط وكيلك إلى REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "نسخ" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "أو قم بتشغيل هذا الأمر في جهازك الطرفي:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -2941,14 +2941,14 @@ msgstr "" "راجع الخطة ، ووافق على الإعداد ، ثم أعد تشغيل وكيلك. متصل بالفعل? تابع " "أدناه." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. اسأل أين CSV هو مكتوب" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2959,7 +2959,7 @@ msgstr "" "المثال هو ملف ستة Electron التطبيق مع {ph0}ملاحظات التصدير{ph1} زر. وكيلك " "يمكن فحص التعليمات البرمجية الخاصة به دون تثبيت أو إطلاق Electron." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2969,14 +2969,14 @@ msgstr "وكيلك بتحميل الملفات ويعطي المجلد تفكي #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}تحميل مثال الرمز البريدي{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2986,12 +2986,12 @@ msgstr "" "إذا لم يتمكن وكيلك من تنزيل الملفات ، فقم بفك ضغط هذا الأرشيف بنفسك. تعطيه " "الطريق إلى {ph0} المجلد ونفس سؤال التصدير." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. اتبع الجواب مرة أخرى إلى التعليمات البرمجية" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ابحث عن شرح قصير مع مراجع الملفات والخط:" @@ -3000,7 +3000,7 @@ msgstr "ابحث عن شرح قصير مع مراجع الملفات والخط: #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3011,12 +3011,12 @@ msgstr "" "يرسل الزر رسالة {ph0}. تحوّل العملية الرئيسية الملاحظات إلى CSV وتحفظ ملف " "{ph1} في مجلد التنزيلات الخاص بالمستخدم. أسماء الأعمدة هي {ph2} و{ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "من الزر إلى كاتب الملف" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3025,7 +3025,7 @@ msgstr "" "REAالصورة تحليل ثابت أزواج الرسالة مع معالج لها. تتم قراءة الوجهة من " "التعليمات البرمجية." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3036,18 +3036,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. تحقق من التنبؤ" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3056,36 +3056,36 @@ msgstr "" "فاصلة تفصل CSV الأعمدة. ماذا يحدث عندما يحتوي عنوان الملاحظة نفسه على فاصلة " "أو علامات اقتباس?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "قم بتشغيل الشيك بنفسك" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. اطرح سؤالا آخر" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "جرب المتابعة في نفس المحادثة:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3096,7 +3096,7 @@ msgstr "أو امنح وكيلك تطبيقا خاصا بك واسأل عن زر #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3110,7 +3110,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3124,7 +3124,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3148,116 +3148,116 @@ msgstr "" "حاول REA على تطبيق ملاحظات صغير. قم بإعداد وكيلك ، واسأل أين تذهب الملاحظات " "المصدرة ، وتحقق من CSV المنسق مع عنوان عينة." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "الخاص بك أولا REA التحقيق" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "نسخ REA موجه التثبيت" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "نسخ أمر الإعداد" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "نسخة ملاحظات التحقيق الفوري" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "نسخ CSV تحقق موجه" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "نسخ أمر التحقق من المنسق" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}الرئيسية{ph1} / ابدأ" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "إعداد REA." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "افتح طرفية وتحقق:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "الطرفية" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "نسخ" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3269,19 +3269,19 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." msgstr "" -"التوزيع الخاص بك {ph0} غالبا ما تكون الحزمة أقدم من 22.23.4 ، لذا تحقق {ph1} " -"إذا كنت تستخدم بدلا من ذلك." +"التوزيع الخاص بك {ph0} غالبا ما تكون الحزمة أقدم من 22.23.4 ، لذا تحقق {ph1}" +" إذا كنت تستخدم بدلا من ذلك." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3291,7 +3291,7 @@ msgstr "تفضل المثبت العادي? تحميل النسخة لتس من #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3299,7 +3299,7 @@ msgstr "{ph0}استخدام CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3313,18 +3313,18 @@ msgstr "{ph0}الحصول على المساعدة{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "أو قم بتشغيل الإعداد بنفسك" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "كيف أفتح الطرفية؟" @@ -3333,7 +3333,7 @@ msgstr "كيف أفتح الطرفية؟" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3349,7 +3349,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3362,7 +3362,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3375,7 +3375,7 @@ msgstr "{ph0}Linux:{ph1} اضغط {ph2} {ph3} {ph4} في معظم بيئات س #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3385,7 +3385,7 @@ msgstr "" "لصق أمر مع {ph0} {ph1} (macOS: {ph2} {ph3}; Linux المحطات: {ph4} {ph5} " "{ph6}) ، ثم اضغط أدخل." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3396,7 +3396,7 @@ msgstr "" "المناسبة، مع الاحتفاظ بنسخة احتياطية من الإعداد الحالي. يطلب موافقتك قبل " "تطبيق التغييرات." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "كيف أعيد تشغيل تطبيق المساعد؟" @@ -3405,7 +3405,7 @@ msgstr "كيف أعيد تشغيل تطبيق المساعد؟" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3420,7 +3420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3430,7 +3430,7 @@ msgstr "" "{ph0}وكلاء المحطة الطرفية{ph1} (Claude Code, Codex, Gemini CLI): الخروج من " "الدورة وبدء تشغيله مرة أخرى." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "كيف يمكنني الحصول على المسار الكامل للمجلد?" @@ -3439,7 +3439,7 @@ msgstr "كيف يمكنني الحصول على المسار الكامل للم #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3454,7 +3454,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3466,7 +3466,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3474,13 +3474,13 @@ msgid "" "appears." msgstr "{ph0}أي نظام:{ph1} اسحب المجلد إلى نافذة طرفية ويظهر مساره." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3488,14 +3488,14 @@ msgid "" msgstr "" "تحليل JavaScript أو Electron مجلد التطبيق أو ASAR الأرشيف دون تشغيل التطبيق:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "تحليل التطبيق الثابت" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3505,13 +3505,13 @@ msgstr "" "استبدل المسار بدليل التطبيق المستخرج أو {ph0} ملف. على Windows، مسار مثل " "{ph1} يعمل هنا." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "أين أجد ملف .asar للتطبيق؟" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3522,7 +3522,7 @@ msgstr "Electron تطبيقات عادة يبقيه في {ph0} المجلد:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3534,7 +3534,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3547,20 +3547,20 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} في كثير من الأحيان {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3571,36 +3571,36 @@ msgstr "" "اتصالات REA لا يمكن حل يتم وضع علامة في النتيجة." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "تثبيت CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "ربط الخاص بك Ghidra تركيب" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "الاتصال Ghidra على Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3611,13 +3611,13 @@ msgstr "" "الأصلية بمعمارية x86 وx64 على أقراص NTFS المحلية الثابتة. استخدم نسخة مثبتة " "من Ghidra 12.1.x وJDK بمعمارية 64 بت وإصدار 21 أو أحدث:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 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:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3626,18 +3626,18 @@ msgstr "" "الاتصال Hopper على macOS أو Linux. قم بتشغيل أمر الإعداد أعلاه ؛ يكتشف " "تثبيتا موجودا أو يقدم خطة تثبيت للموافقة عليها." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "الحصول على المساعدة" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "إذا كان وكيلك لا يرى REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3647,22 +3647,22 @@ msgstr "" "أعد تشغيل العميل أو أعد توصيله بعد الإعداد. تحقق لها REA اتصال مع {ph0}؛ إلى" " عن على Codex:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "إذا احتاج مقدم الخدمة إلى الاهتمام" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "تحقق من الموفر الذي تستخدمه. ل Ghidra:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "تحقق من مزود واحد" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "يعطي التقرير الاختيار الفاشل والخطوة التالية المقترحة." @@ -3671,7 +3671,7 @@ msgstr "يعطي التقرير الاختيار الفاشل والخطوة ا #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3684,7 +3684,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3698,7 +3698,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3710,7 +3710,7 @@ msgstr "{ph0}GitHub القضايا{ph1}{ph2}الإبلاغ عن مشكلة في #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3732,68 +3732,68 @@ msgstr "" "اربط REA بمساعد البرمجة أو افحص تطبيق JavaScript أو Electron محليًا من " "الطرفية. دليل الإعداد والأسئلة الأولى وأدوات التحليل الأصلي." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "نسخ Node.js فحص الإصدار" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "نسخ Node.js أمر التثبيت ل Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "نسخ Homebrew Node.js أمر التثبيت" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "نسخة فنم أمر التثبيت ل Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 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:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA دليل البدء" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "نسخ REA موجه التثبيت" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "نسخ JavaScript أمر التحليل" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "نسخ CLI أمر التثبيت" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "نسخ أمر تشخيص أداة التحليل" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -3802,20 +3802,20 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}الرئيسية{ph1} / {ph2}أدلة{ph3} / مراقبة المتصفح" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3824,14 +3824,14 @@ msgstr "" "استخدام التطبيق متصفح صغير لربط العمل ، طلب شبكتها و JavaScript أن يبني " "تحميل." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "في هذا الدليل" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3839,7 +3839,7 @@ msgstr "{ph0}المثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3847,7 +3847,7 @@ msgstr "{ph0}افتح المتصفح{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3855,7 +3855,7 @@ msgstr "{ph0}اسأل وكيلك{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3863,13 +3863,13 @@ msgstr "{ph0}التقاط من CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "ماذا يحدث عند النقر فوق تصدير?" @@ -3879,7 +3879,7 @@ msgstr "ماذا يحدث عند النقر فوق تصدير?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3891,7 +3891,7 @@ msgstr "" "النقر عليه الأحمال {ph4}، تنسيقات المذكرتين على النحو التالي CSV, ويبدأ " "التنزيل." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "من النقر إلى CSV تحميل" @@ -3902,7 +3902,7 @@ msgstr "من النقر إلى CSV تحميل" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3918,7 +3918,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3936,7 +3936,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3946,17 +3946,17 @@ msgstr "" "{ph0}03 * وكيلك{ph1}{ph2}اقرأ رمز التصدير{ph3}{ph4}قم بتوصيل الطلب المرصود " "بـ {ph5} في {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "ابدأ الالتقاط قبل النقر فوق تصدير الملاحظات." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "فتح Chrome مع التصحيح عن بعد" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -3965,21 +3965,21 @@ msgstr "" "افتح مثال الملاحظات المستضافة باستخدام ملف تعريف متصفح منفصل ومنفذ تصحيح " "أخطاء محلي. على Linux:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "ابدأ تشغيل متصفح المثال" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "نسخ" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -3988,7 +3988,7 @@ msgstr "" "استخدم المسار القابل للتنفيذ للمتصفح المثبت على macOS أو Windows. يمكنك " "استبدال رابط الصفحة بصفحة أخرى تريد فحصها." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -3997,7 +3997,7 @@ msgstr "" "REA يتصل بهذا المتصفح الحالي. يمكنك التحكم في الصفحة وتنفيذ الإجراء وإغلاق " "المتصفح عند الانتهاء." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "اطلب من وكيلك مشاهدة إجراء واحد" @@ -4010,7 +4010,7 @@ msgstr "اطلب من وكيلك مشاهدة إجراء واحد" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4022,7 +4022,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مساعدك البرمجي" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4033,7 +4033,7 @@ msgstr "" "الملاحظات. ما هو الطلب الذي يقدمه ، وكيف هو CSV بنيت?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4043,7 +4043,7 @@ msgstr "" "مثال موجه. إعطاء وكيلك نقطة النهاية التصحيح, {ph0}، وعنوان الصفحة. السماح " "لها بدء التقاط قبل النقر فوق." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4053,23 +4053,23 @@ msgstr "" "يكتشف وكيلك هدف الصفحة ، ويبدأ نافذة مراقبة ، ويقرأ الأدلة الناتجة. ويمكن " "بعد ذلك فحص البرنامج النصي وراء التصدير." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "أو التقاط من المحطة" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "ابحث عن معرف الهدف للصفحة:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "ابحث عن الصفحة" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4079,14 +4079,14 @@ msgstr "" "اختر الهدف مع عنوان ورل مثال الملاحظات. استبدال {ph0} أدناه مع معرفه ، ثم " "تشغيل:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "التقاط الثواني العشر القادمة" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4096,7 +4096,7 @@ msgstr "" "دع الأمر يتصل لبضع ثوان ، ثم انقر فوق {ph0}ملاحظات التصدير{ph1} في هذا " "المتصفح. تصل النتيجة بعد انتهاء نافذة المراقبة." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4106,49 +4106,49 @@ msgstr "" "تتضمن النتيجة الملتقطة الصفحة المحددة ونشاط الشبكة أثناء تلك النافذة وشكل " "استجابة جسون. الطلبات السابقة خارج هذا الالتقاط." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "قراءة الطلب وتصدير البرنامج النصي" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 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:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "حقيقة القبض" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "القيمة" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "الطلب" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "الرد" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "طلب البادئ" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * النصي" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "هيكل الاستجابة" @@ -4156,19 +4156,19 @@ msgstr "هيكل الاستجابة" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "قراءة البرامج النصية المحملة" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4179,7 +4179,7 @@ msgstr "" "البرنامج النصي الملتقط لمعرفة كيفية استخدام البيانات:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4191,7 +4191,7 @@ msgstr "" "من البرنامج النصي ؛ يثبت التقاط الشبكة أن هذه النقرة مطلوبة {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4203,7 +4203,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4227,65 +4227,65 @@ msgstr "" "مراقبة تصدير الملاحظات مع REA: حدد صفحة متصفح ، والتقاط نقرة ، وفحص الطلب " "واتبع البرنامج النصي للتصدير." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "مراقبة المتصفح" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "نسخ بدء متصفح المثال" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "نسخة مثال موجه" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "نسخ ابحث عن الصفحة" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "نسخ التقاط الثواني العشر القادمة" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "نسخ قراءة البرامج النصية المحملة" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}الرئيسية{ph1} / أدلة" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA أدلة." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4294,37 +4294,37 @@ msgstr "" "تحليل وظيفة الأم ، وهو Electron تصدير أو طلب متصفح. يتضمن كل دليل موجه ورمز " "ونتائج." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "التحقيق الأول" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "إعداد REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "ربط مساعدك البرمجي أو استخدام REA من المحطة." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "تبدأ مع REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "برامج كود الآلة" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "استعادة حساب يسار / يمين موقف الصوت" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4333,22 +4333,22 @@ msgstr "" "تبدأ مع Windows لعبة قابلة للتنفيذ. فحص التعليمات ، اتبع الدالة المستدعية ، " "وقراءة الثوابت الرقمية والتحقق من ج المستردة." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "تحليل دليل برامج كود الآلة" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "اتبع أ CSV تصدير" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4357,30 +4357,30 @@ msgstr "" "التطبيق ملاحظات صغيرة ينتشر ميزة واحدة عبر العارض ، التحميل المسبق والعملية " "الرئيسية. استخدام REA لتوصيل أبي ، قناة إيبك وكاتب الملف." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & Electron دليل" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "سلوك المتصفح" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "مراقبة نقرة" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4389,7 +4389,7 @@ msgstr "" "افتح مثال ملاحظات العمل ، والتقط طلب تصدير وابحث عن الكود الذي يحول استجابته" " إلى تنزيل." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "دليل مراقبة المتصفح" @@ -4408,12 +4408,12 @@ msgstr "" "تعلم REA من خلال أمثلة قصيرة العمل: حساب أصلي ، و Electron CSV تصدير وطلب " "المتصفح." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -4422,20 +4422,20 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4444,14 +4444,14 @@ msgstr "" "اتبع نقرة زر من واجهة برمجة تطبيقات الصفحة ، من خلال Electron التصنيف الدولي" " للبراءات ، إلى CSV كاتب ملف." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "في هذا الدليل" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4459,7 +4459,7 @@ msgstr "{ph0}المثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4467,7 +4467,7 @@ msgstr "{ph0}اسأل وكيلك{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4475,7 +4475,7 @@ msgstr "{ph0}تتبع رمز التصدير{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4483,20 +4483,20 @@ msgstr "{ph0}جرب المثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "أين تذهب\" ملاحظات التصدير\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4508,7 +4508,7 @@ msgstr "" " يدعو أبي في الصفحة ، يعبر إلى العملية الرئيسية ، ويكتب CSV. ينتشر السلوك " "عبر عدة ملفات." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "ال CSV تصدير عبر Electron العمليات" @@ -4522,7 +4522,7 @@ msgstr "ال CSV تصدير عبر Electron العمليات" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4539,7 +4539,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4556,7 +4556,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4569,13 +4569,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4586,14 +4586,14 @@ msgstr "" "المسار من التعليمات البرمجية ؛ يمكن لالتقاط وقت التشغيل التحقق مما يتم " "تنفيذه." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "اسأل عن CSV تصدير" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4609,14 +4609,14 @@ msgstr "{ph0}ربط وكيلك إلى REA{ph1} وإعطائها دليل الت #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "نسخ" @@ -4627,7 +4627,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4638,7 +4638,7 @@ msgstr "" "في هذا التطبيق. أين هو CSV خلق?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4646,7 +4646,7 @@ msgid "" "{ph0}." msgstr "مثال موجه. قم بتضمين المسار المطلق إلى مجلد التطبيق أو {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4656,17 +4656,17 @@ msgstr "" "REA يقرأ ملفات التطبيق ويبني خريطة نقاط الدخول والوحدات وحدود العملية. " "يستخدم وكيلك هذه الخريطة لتضييق التحقيق إلى ميزة التصدير." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "تتبع رمز التصدير" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "تستدعي الصفحة واجهة برمجة تطبيقات صغيرة" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4676,7 +4676,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4688,7 +4688,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4698,7 +4698,7 @@ msgstr "" "قراءة المعالج يجيب على السؤال الأصلي: {ph0} تنسيق الملاحظات ، والعملية " "الرئيسية يكتب {ph1} في مجلد التنزيلات الخاص بالمستخدم." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4707,7 +4707,7 @@ msgstr "" "سجلت بواسطة REA 4.1.0 في المثال القابل للتنزيل أدناه. تصاحب مواقع المصدر " "نتائج واجهة برمجة التطبيقات والقناة والمعالج." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "حلل المثال بنفسك" @@ -4715,25 +4715,25 @@ msgstr "حلل المثال بنفسك" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}تحميل مثال الرمز البريدي{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "تصفح ملفات المصدر الستة" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "تحليل التطبيق الثابت" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4743,7 +4743,7 @@ msgstr "" "استبدل المسار بالمجلد الذي قمت بفك ضغطه. يجب أن تجد قناة إيبك واحدة ومعالج " "واحد مطابقة في {ph0}. مواقع المصدر في {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4754,13 +4754,13 @@ msgstr "" "اتباع سلسلة حرفية أو اسم واجهة برمجة التطبيقات أو قناة إيبك مع REAأدوات تتبع" " الميزات." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "فحص CSV كاتب" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4770,7 +4770,7 @@ msgstr "" "اتبع {ph0} إلى معالجها. المدخلات التي تصل إلى CSV كاتب, وماذا يحدث إذا فشلت " "كتابة الملف?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4785,7 +4785,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4799,7 +4799,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4813,7 +4813,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4838,32 +4838,32 @@ msgstr "" "تتبع الملاحظات CSV تصدير من خلال أبي العارض ، التحميل المسبق ومعالج إيبك مع " "REA. يتضمن ملفات أمثلة قابلة للتنزيل ونتائج تحليل تم التحقق منها." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "نسخة مثال موجه" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "نسخ تحليل التطبيق الثابت" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -4872,20 +4872,20 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}الرئيسية{ph1} / {ph2}أدلة{ph3} / تحليل برامج كود الآلة" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -4893,14 +4893,14 @@ msgid "" msgstr "" "افحص التعليمات الأصلية ، وحدد المدخلات والثوابت ، ثم تحقق من ج المستردة." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "في هذا الدليل" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4908,7 +4908,7 @@ msgstr "{ph0}المثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4916,7 +4916,7 @@ msgstr "{ph0}اسأل وكيلك{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4924,7 +4924,7 @@ msgstr "{ph0}قراءة REA النتائج{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4932,18 +4932,18 @@ msgstr "{ph0}استرداد والتحقق{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "حساب اليسار / اليمين ستيريو الصوت لتحديد المواقع" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4954,7 +4954,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4966,7 +4966,7 @@ msgstr "" "يعود تعليماته والدوال المستدعية ، والتي تعطي وكيل وسيلة للتحقيق في الحساب " "المفقود." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "جديد على هذه الشروط?" @@ -4975,7 +4975,7 @@ msgstr "جديد على هذه الشروط?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4987,7 +4987,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5000,7 +5000,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5013,7 +5013,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5024,7 +5024,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5034,7 +5034,7 @@ msgstr "" "{ph0}الثوابت:{ph1} الأرقام الثابتة المخزنة في البرنامج ، وقراءة بايت الخام " "وفك الشفرة." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "ثلاث أدلة ، حساب واحد" @@ -5045,7 +5045,7 @@ msgstr "ثلاث أدلة ، حساب واحد" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5062,7 +5062,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5080,7 +5080,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5090,14 +5090,14 @@ msgstr "" "{ph0}03 * بايت البيانات{ph1}{ph2}الثوابت الرقمية{ph3}{ph4}بايت المشار إليها " "فك شفرة ل {ph5}, {ph6} وقيمة مقياس.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 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:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "اسأل عن السلوك" @@ -5106,7 +5106,7 @@ msgstr "اسأل عن السلوك" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5116,19 +5116,19 @@ msgstr "" "بعد {ph0}الاتصال REA إلى وكيلك{ph1} و {ph2}إعداد أداة تحليل أصلية{ph3}، قدم " "الملف التنفيذي المحلي وسؤال:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "ما هي أداة التحليل التي يجب أن أستخدمها?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA يحتاج إلى واحد من هؤلاء لقراءة البرامج الأصلية:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5142,7 +5142,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5154,7 +5154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5164,7 +5164,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5178,14 +5178,14 @@ msgstr "انظر {ph0}إعداد تحليل برامج رمز الجهاز{ph1} #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "نسخ" @@ -5196,7 +5196,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5206,7 +5206,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استخدام REA لمعرفة كيف DX-Ball يحسب بالغسل الصوت. شرح الحساب" " وإظهار التعليمات البرمجية.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5217,7 +5217,7 @@ msgstr "" "للتنفيذ. REA لا يشمل DX-Ball، لذا استخدم نسختك الخاصة ، أو اطرح نفس النوع من" " الأسئلة حول صغيرة أخرى Windows برنامج لديك." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "كيف يمكنني الحصول على المسار الكامل للملف?" @@ -5226,7 +5226,7 @@ msgstr "كيف يمكنني الحصول على المسار الكامل للم #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5241,7 +5241,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5253,7 +5253,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5261,17 +5261,17 @@ msgid "" "appears." msgstr "{ph0}أي نظام:{ph1} اسحب الملف إلى نافذة طرفية ويظهر مساره." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "قراءة REA النتائج" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "قراءة المدخلات" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5280,13 +5280,13 @@ msgstr "" "تقوم التعليمات بتحميل وسيطة عدد صحيح وتحويلها لحساب الفاصلة العائمة. هذا هو " "الإدخال الغائب عن عرض الكود الكاذب الأول." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "اتبع الدالة المستدعية" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5296,12 +5296,12 @@ msgstr "" "REA يحدد الدالة المستدعية ضرب الطوب. تعليماته السابقة تضاعف إحداثيات البلاط " "في 30 ؛ مضيفا {ph0} (20) يعطي موقف شاشة الطوب." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "قراءة الثوابت المشار إليها" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5310,12 +5310,12 @@ msgstr "" "يشير الحساب إلى هذه العناوين. قراءة وحدات البايت تزود القيم الفعلية ؛ يخبر " "ترتيب التعليمات الوكيل كيف يتم استخدامها." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "اكتب وتحقق من الوظيفة المستردة" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5325,7 +5325,7 @@ msgstr "" "بمقياس 1.0 ، مواضع الشاشة 0 و 320 و 640 خريطة إلى -500 و 0 و 500 قبل تحويل " "عدد صحيح. يضع الحساب وسط الشاشة في وسط حقل الاستريو." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5337,20 +5337,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}انظر التحقيق الكامل ومقارنة التجميع إلى ج{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "تحاول ذلك مع ثنائي الخاصة بك" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5363,7 +5363,7 @@ msgstr "" "مكتبة وميزة للتحقيق فيها. تتضمن أسئلة البداية المفيدة \"كيف يتم تحليل هذا " "الملف?\"أو\" ما هي الوظيفة التي تتعامل مع إجراء القائمة هذا?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5372,13 +5372,13 @@ msgstr "" "إذا كنت تعرف بالفعل اسم دالة أو عنوانا ، فيمكنك الاستعلام عنه من الجهاز. " "للحصول على تكوين Ghidra تركيب:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "تحليل الوظيفة" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5391,7 +5391,7 @@ msgstr "" "يستورد الاحتجاج ويحلل الثنائي ، ثم يغلق جلسته. وكيلك MCP استعلامات إعادة " "استخدام ثنائي المستوردة في حين أن الدورة مفتوحة." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5414,50 +5414,50 @@ msgstr "" "استعادة حساب الأصلي مع REA: فحص التعليمات ، اتبع الدالة المستدعية ، وقراءة " "الثوابت والتحقق من إعادة بنائها ج." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "تحليل برامج كود الآلة" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "نسخة مثال موجه" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "نسخ تحليل وظيفة" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "إعداد REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5465,7 +5465,7 @@ msgstr "{ph0}إعداد REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5473,7 +5473,7 @@ msgstr "{ph0}لعبة ديناصور{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5481,7 +5481,7 @@ msgstr "{ph0}آلة حاسبة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5489,25 +5489,25 @@ msgstr "{ph0}حاول REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}تعمّق أكثر{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "الهندسة العكسية ، مع مساعدك البرمجي" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "اكتشف كيف{ph0}تعمل البرامج." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "انسخ هذا الطلب إلى مساعد البرمجة لديك:" @@ -5520,33 +5520,33 @@ msgstr "انسخ هذا الطلب إلى مساعد البرمجة لديك:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "نسخ" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "أو نفّذ هذا الأمر في الطرفية:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "راجع خطة الإعداد ووافق عليها، ثم أعد تشغيل المساعد." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5554,7 +5554,7 @@ msgstr "{ph0}01{ph1} فك رموز الفروع" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5562,7 +5562,7 @@ msgstr "{ph0}02{ph1} تتبع المكالمات" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5572,20 +5572,20 @@ msgstr "{ph0}03{ph1} استعادة القاعدة" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}الأصل · 64 * تعليمات مختارة{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * أي فرع?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5594,29 +5594,29 @@ msgid "" msgstr "" "“{ph0}0/5 ب? 0 * 5 ج?{ph1} اثنين يقفز إلى نفس المكان. التي مشغلي هذه?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "ابحث عن معرفات الأوامر ، ثم قم بتسمية الفرع." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "تقسيم ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "ضرب ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · ماذا تفعل الدوال المستدعاة؟" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5626,24 +5626,24 @@ msgstr "" "\"100 واضح. المكالمات هي مجرد عناوين. {ph0}أي واحد يقسم? القيمة التي يذهب " "في?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "افحص وظائف المساعد وتتبع القيم المخزنة." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "تقسيم" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * ما هي القاعدة?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5653,19 +5653,19 @@ msgstr "" "\"يتضاعف هذا المسار من خلال المدخلات الأخرى. لذا {ph0}10 ٪ تعني 10 ٪ من " "200{ph1} بعد +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "قم بتسمية المعاملات وتحقق من كلا مساري المشغل." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "منطق الخبراء التوضيحي" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5682,87 +5682,87 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "مثال على الإجابة * بناء على النتائج" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "ما يوفّره REA" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "تعليمات المعالج ، رمز فك والمكالمات." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "ما يشرحه المساعد" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "أي فرع ينطبق ، ما يحسب وكيفية إعادة بنائه." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "مثال 01 · Chromeلعبة الديناصورات" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "لماذا يصبح الديناصور أسرع؟" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "العب" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "اقفز ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "ابدأ من جديد" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "السرعة" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "استخدم قاعدة التسارع المستردة" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "القاعدة الأصلية: ابدأ من 6 ، ثم زد نحو 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "حرك شريط التمرير لضبط السرعة الخاصة بك. الفضاء أو القفز يزيل الصبار." @@ -5773,7 +5773,7 @@ msgstr "حرك شريط التمرير لضبط السرعة الخاصة بك. #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5787,18 +5787,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "الهدف الذي تم فحصه: {ph0}وايو Chromium- مستمد متصفح الطبعة{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "افتح مختبر السرعة →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "ماذا يفعل كل جزء" @@ -5809,7 +5809,7 @@ msgstr "ماذا يفعل كل جزء" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5825,7 +5825,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5842,7 +5842,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5852,13 +5852,13 @@ msgstr "" "{ph0}03 * أنت{ph1}{ph2}تغيير السرعة واللعب{ph3}{ph4}جرب التسارع الأصلي ، ثم " "اختر وتيرتك الخاصة.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "راجع البرنامج النصي والشيكات وكيفية تجربة التحليل" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5868,7 +5868,7 @@ msgstr "" "REA تفقد إصدار متصفح هتب من خلال اتصال التصحيح المحلي وعاد تحميلها {ph0}، " "بما في ذلك مصدرها وهضمها." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5881,7 +5881,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5897,7 +5897,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5914,41 +5914,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "{ph0}فحص رمز السرعة{ph1} · {ph2}Chromium الكتاب * رخصة بسد{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "مثال 02 · Windows آلة حاسبة" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "أعد بناء زر % في الآلة الحاسبة." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "إعادة ضبط" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10 ٪ من 200 = 20. ثم 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "توضيح تفاعلي لقاعدة النسبة المئوية التي تم فحصها." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5960,7 +5960,7 @@ msgstr "لهذا المثال, {ph0} و {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5971,7 +5971,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استخدام REA لتفقد Windows زر ٪ آلة حاسبة. استعادة القواعد " "بعد + و × ، ثم بناء آلة حاسبة صغيرة تستخدم على حد سواء.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "مع +" @@ -5979,13 +5979,13 @@ msgstr "مع +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "مع ×" @@ -5993,13 +5993,13 @@ msgstr "مع ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "من التطبيق المثبت إلى زر ٪ العمل" @@ -6011,7 +6011,7 @@ msgstr "من التطبيق المثبت إلى زر ٪ العمل" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6028,7 +6028,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6039,12 +6039,12 @@ msgstr "" "{ph0}03 * وكيلك يفسر ذلك{ph1}{ph2}شرح وإعادة إنتاج القواعد{ph3}{ph4}تحقق من " "الفرع مع مصدر مايكروسوفت ، ثم حاول + و × أعلاه.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "انظر الرمز الحقيقي وكيف تم التحقق من الإجابة" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6064,7 +6064,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6074,17 +6074,17 @@ msgstr "" "{ph0}النسبة المئوية للتنفيذ{ph1} · {ph2}حالات اختبار مايكروسوفت{ph3} · " "{ph4}دليل الإعداد الأصلي{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "التحقيق الأول الخاص بك" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "حاول REA على تطبيق صغير." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6093,17 +6093,17 @@ msgstr "" "تحميل ملاحظاتنا سبيل المثال ، تتبع لها CSV تصدير ، وتحقق من إدخال واحد تم " "تغييره." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "جرب المثال الإرشادي" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "برامج كود الآلة" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6112,17 +6112,17 @@ msgstr "" "فحص الوظائف والسلاسل والمراجع وعلاقات استدعاء الوظائف في الملفات التنفيذية " "والمكتبات." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "تحليل دليل برامج كود الآلة" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6131,17 +6131,17 @@ msgstr "" "وحدات الخريطة ، والطرق ، والتصنيف الدولي للبراءات والتبعيات الأصلية من مجلد " "التطبيق أو ASAR أرشيف." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "سير عمل التطبيق" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "نشاط المتصفح ووقت التشغيل" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6149,12 +6149,12 @@ msgid "" msgstr "" "التقط المتصفح المحدد أو نشاط العملية ، ثم قارن النتائج عبر عمليات التشغيل." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "دليل مراقبة المتصفح" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "لديك أسئلة؟" @@ -6173,27 +6173,27 @@ msgstr "" "تطبيقات الهندسة العكسية والثنائيات وسلوك المتصفح مع مساعدك البرمجي. اتبع " "أدلة واضحة وجرب أمثلة تفاعلية مع REA." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "نسخ REA موجه التثبيت" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "نسخ أمر الإعداد" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "اتبع تحليل الآلة الحاسبة اليدوية" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "نسخة حاسبة النسبة المئوية السؤال" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6201,27 +6201,27 @@ msgid "" msgstr "" "ديناصور لعبة صغيرة. استخدم زر القفز أو اضغط على الفضاء أثناء تركيز اللعبة." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "نسخة ديناصور تحليل موجه" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "اختر الحساب" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "نسخ حاسبة تحليل موجه" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -6230,25 +6230,25 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "دراسة حالة · Aegis الموثق" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "كيف يمكن للمصادق{ph0}إنشاء رمز تسجيل الدخول?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6257,17 +6257,17 @@ msgstr "" "يتغير الرمز المكون من ستة أرقام كل 30 ثانية. استخدام REA للعثور على الحساب " "في Android APK، ثم إعادة بنائه مع ساعة يمكنك التحكم." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 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 ميغابايت" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "عرض Aegis على GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "من APK إلى رمز يمكنك إعادة إنتاجه" @@ -6278,7 +6278,7 @@ msgstr "من APK إلى رمز يمكنك إعادة إنتاجه" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6296,7 +6296,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6314,7 +6314,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6326,14 +6326,14 @@ msgstr "" "رمز.{ph3}{ph4}يستنسخ العرض التوضيحي الجديد للمتصفح القاعدة ويتحقق منها مقابل" " الحالات المرجعية العامة.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "في دراسة الحالة هذه" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6341,7 +6341,7 @@ msgstr "{ph0}اسأل وكيلك{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6349,7 +6349,7 @@ msgstr "{ph0}جرب مولد الكود{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6357,7 +6357,7 @@ msgstr "{ph0}العثور على رمز مع REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6365,7 +6365,7 @@ msgstr "{ph0}قراءة الحساب{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6373,20 +6373,20 @@ msgstr "{ph0}تحقق من إعادة الإعمار{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "اسأل وكيلك" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6404,14 +6404,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "نسخ" @@ -6419,7 +6419,7 @@ msgstr "نسخ" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6429,7 +6429,7 @@ msgstr "" "هذا طلب نموذجي لتحليل ملف APK الذي نزّلته. اضبط تحليل Android في REA أولًا. " "{ph0}تنزيل APK وإعداد التحليل ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "جرب مولد الكود" @@ -6437,7 +6437,7 @@ msgstr "جرب مولد الكود" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6448,33 +6448,33 @@ msgstr "" "يقسّم التطبيق الوقت إلى {ph0}فترات من 30 ثانية.{ph1} يجمع رقم الفترة مع " "مفتاح الحساب لإنشاء الرمز. يعطي المفتاح نفسه والفترة نفسها الرمز نفسه." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "حرك الساعة عبر 60 ثانية" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "الوقت" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "ثواني" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "لدينا مثال قابل للتعديل على مدار الساعة" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "كتلة 30 ثانية" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "بلوك" @@ -6483,35 +6483,35 @@ msgstr "بلوك" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "كود تم إنشاؤه" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "مفتاح الحساب + كتلة - ستة أرقام" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "مثال الوقت ، بالثواني" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 ثانية" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 ثانية" @@ -6520,7 +6520,7 @@ msgstr "60 ثانية" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6532,7 +6532,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6542,7 +6542,7 @@ msgstr "" "المفتاح ثابت ، عام {ph0}رك 6238 بيانات الاختبار{ph1}. يقوم العرض التوضيحي " "بتنفيذ الحساب المسترد من APK." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6550,18 +6550,18 @@ msgid "" msgstr "" "يوضح الرسم البياني النتيجة في 59 ثانية. تمكين JavaScript لتغيير الساعة." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "العثور على رمز مع REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "تضييق APK إلى ثلاث فئات" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6571,14 +6571,14 @@ msgstr "" "{ph0} هو مرشح الحساب ؛ يتعلق الاثنان الآخران بشريط التقدم والحسابات " "المستوردة. TOTP تعني كلمة مرور لمرة واحدة تستند إلى الوقت." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "قم بتوصيل المولد بشاشة التطبيق" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6589,7 +6589,7 @@ msgstr "" " التفتيش {ph0} ثم يظهر استدعاء العرض {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6598,14 +6598,14 @@ msgid "" msgstr "" "تظهر الطلبات مسار إدخال مختصر. أسماء فئة النتيجة حذف المشترك {ph0} بادئة." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "قراءة الحساب" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6619,7 +6619,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6627,7 +6627,7 @@ msgstr "{ph0}01{ph1} كتلة الوقت" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6635,7 +6635,7 @@ msgstr "{ph0}02{ph1} مفتاح + كتلة" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6643,7 +6643,7 @@ msgstr "{ph0}03{ph1} ستة أرقام" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6655,7 +6655,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6668,7 +6668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6682,7 +6682,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6692,7 +6692,7 @@ msgstr "" "مقتطفات من عدة طرق تفتيشها ، مع التفاف خط للعرض. اللوحة اليمنى هي ملخص " "توضيحي. {ph0}Aegis الرمز هو غل-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "داخل المولد" @@ -6701,7 +6701,7 @@ msgstr "داخل المولد" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6711,7 +6711,7 @@ msgstr "" "المفرج عنهم APK يضع {ph0} في {ph1}. REA يتبع الاستدعاء دالة من {ph2} ويعيد " "هذا الجسم ؛ المصدر الأصلي يدعو المساعد {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6727,20 +6727,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "تحقق من إعادة الإعمار" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6752,29 +6752,29 @@ msgstr "" " مع إعادة بناء مستقلة على {ph0}133 حالة اختبار{ph1}، بما في ذلك حدود كتلة " "الوقت والرموز التي تبدأ بالصفر." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "مثال الوقت" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "رمز مكون من ستة أرقام" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 ثانية" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 ثواني" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6784,17 +6784,17 @@ msgstr "" "يتطابق المولد أيضا مع الستة المنشورة SHA-1 الحالات المرجعية في {ph0}رك " "6238{ph1}. تحقق من تنفيذ المتصفح ضدهم:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "تشغيل الشيكات المرجعية" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "اقرأ حساب العرض التوضيحي" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6803,7 +6803,7 @@ msgstr "" "تستخدم الحالات المرجعية ثمانية أرقام. يتحقق الشيك أيضا من نتائجهم المكونة من" " ستة أرقام." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6812,14 +6812,14 @@ msgstr "" "يعمل التحقق استخراج أساليب جافا والتجريبي الجديد. Android APK تم تفتيشه بشكل" " ثابت." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "فحص APK نفسك" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6831,7 +6831,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6841,18 +6841,18 @@ msgstr "" "تحليل Android يحتاج جدك الكامل 17 أو في وقت لاحق. حدده مع {ph0} أو {ph1}. " "هذه الحالة تستخدم جدك 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6864,7 +6864,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6874,7 +6874,7 @@ msgstr "" "السؤال التالي: {ph0}ماذا يحدث عندما يستخدم الحساب ثمانية أرقام أو فاصل زمني " "مختلف?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "المصادر" @@ -6890,7 +6890,7 @@ msgstr "المصادر" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6904,14 +6904,14 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "" "{ph0}رك 6238 الحالات المرجعية{ph1} · {ph2}بيانات الاختبار التجريبي{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6936,37 +6936,37 @@ msgstr "" "فحص Aegis اندرويد APK مع REA، استعد حساب رمز تسجيل الدخول المكون من ستة " "أرقام وجرب إعادة الإعمار بساعة قابلة للتعديل." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK دراسة حالة" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "نسخ Aegis مثال موجه" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "اتبع حساب رمز تسجيل الدخول" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "نسخ APK قيادة التفتيش" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -6975,26 +6975,26 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}الرئيسية{ph1} / {ph2}يعرض{ph3} / فرقة العمل" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "دراسة حالة * أسفل 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "ابحث عن العلم في{ph0}ثنائي كتف." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7004,17 +7004,17 @@ msgstr "" "استخدام REA لفحص مدقق علم صغير ، حول قواعده إلى معادلات وابحث عن إدخال يجعل " "البرنامج الأصلي يطبع {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "مربعات ملثمين مدقق العلم * سهل · Linux إكس 86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "عرض التحدي الأصلي" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "من ثنائي إلى إجابة محددة" @@ -7025,7 +7025,7 @@ msgstr "من ثنائي إلى إجابة محددة" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7042,7 +7042,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7059,7 +7059,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7070,20 +7070,20 @@ msgstr "" "{ph0}03 * حل وتشغيل{ph1}{ph2}العلم المسترد-صحيح!{ph3}{ph4}نص بيثون يحل " "المعادلات. REA يلتقط البرنامج الأصلي قبول النتيجة.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "التحدي هو جوزيف ، الذي نشر في مستودع داوندركتف الرسمي." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "في دراسة الحالة هذه" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7091,7 +7091,7 @@ msgstr "{ph0}ابحث عن رمز التحقق{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7099,7 +7099,7 @@ msgstr "{ph0}قراءة قناع واحد{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7107,7 +7107,7 @@ msgstr "{ph0}الجمعية إلى رمز قابل للقراءة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7115,7 +7115,7 @@ msgstr "{ph0}حل المعادلات{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7123,20 +7123,20 @@ msgstr "{ph0}تحقق من الجواب{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}انها محاولة لنفسك{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "ابحث عن رمز التحقق" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7154,17 +7154,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "نسخ" @@ -7175,7 +7175,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7187,7 +7187,7 @@ msgstr "" "كيفية عمل الشيكات ، ثم تحقق من الإجابة باستخدام البرنامج " "الأصلي.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7196,12 +7196,12 @@ msgstr "" "مثال موجه ، مع التحدي الذي تم تنزيله متاح محليا وتحليل موفر برامج رمز الجهاز" " المتصل." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "اتبع موجه الإدخال إلى وظيفته" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7210,14 +7210,14 @@ msgstr "" "يعطي المرجع الوكيل مكانا للتحقيق ، على الرغم من إزالة أسماء الوظائف الأصلية " "القابلة للتنفيذ." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "قراءة المدقق واثنين من المساعدين" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7229,7 +7229,7 @@ msgstr "" "الرموز المحددة وتقارن النتيجة برقم مخزن. لها {ph0}- خطوات بايت عبر {ph1} " "بايت تعطي 26 أقنعة." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7238,12 +7238,12 @@ msgstr "" "يتم اختيار هذه النتائج من جديد REA تحليل. يتم تقصير مسار الهدف المحلي للعرض " "؛ تشير العناوين إلى REAالصورة المستوردة." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "شيك واحد يكشف عن حرف واحد" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7256,13 +7256,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "اقرأ القناع وهدفه من الثنائي" @@ -7271,7 +7271,7 @@ msgstr "اقرأ القناع وهدفه من الثنائي" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7283,12 +7283,12 @@ msgstr "" "الهدف هو عدد صحيح صغير. معا ، تخبر هذه البايتات الوكيل أن {ph2}، بحيث تكون " "هذه الشخصية {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "من التعليمات إلى فحص قابل للقراءة" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7298,7 +7298,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7306,7 +7306,7 @@ msgstr "{ph0}01{ph1} ابدأ" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7314,7 +7314,7 @@ msgstr "{ph0}02{ph1} اختر" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7322,7 +7322,7 @@ msgstr "{ph0}03{ph1} إضافة" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7330,18 +7330,18 @@ msgstr "{ph0}04{ph1} تقدم" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} قارن" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * تعليمات أصلية مختارة" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "قراءة ج * ملخص الاختيار واحد" @@ -7349,7 +7349,7 @@ msgstr "قراءة ج * ملخص الاختيار واحد" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7357,7 +7357,7 @@ msgstr "{ph0}01 * ابدأ من الصفر.{ph1} {ph2} يحمل المبلغ ا #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7369,7 +7369,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7381,7 +7381,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7395,7 +7395,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7405,7 +7405,7 @@ msgstr "" "{ph0}05 * مقارنة مع الهدف المخزن.{ph1} تتلقى وظيفة الاستدعاء المبلغ في " "{ph2}. عدم تطابق يقفز إلى {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7414,12 +7414,12 @@ msgstr "" "تأتي التعليمات من مساعد التلخيص ووظيفة الاتصال الخاصة به. ال ج هو ملخص " "توضيحي بأسماء وصفية وحلقة مسطحة من 36 خلية." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "حل المعادلات 26" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7430,13 +7430,13 @@ msgstr "" "للأحرف ويتطلب إجمالي 1441. تعطي التحديدات المتداخلة معادلات يمكن أن يحلها نص" " بايثون صغير معا." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "بيثون * حلالا مقتطفات" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7449,19 +7449,19 @@ msgstr "" "المستخرجة ويفترض أ {ph0} العلم مع الحروف والأرقام والشرطات السفلية والأقواس." " يشمل التنزيل الكامل جميع الأقنعة والأهداف الـ 26." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "تحميل حلالا كاملة" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "تحقق من الإجابة مع البرنامج الأصلي" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7473,47 +7473,47 @@ msgstr "" "محدد من {ph0} إلى {ph1} يجعل المبلغ الأول 1440 بدلا من 1441, والبرنامج يرفض " "ذلك." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "المدخلات" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "الإخراج المرصود" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "رمز الخروج" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "علم حلالا" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "تم تغيير حرف واحد" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "إظهار العلم المسترد والإخراج الملتقط" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * إخراج البرنامج الأصلي" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "نسخ العلم" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7522,12 +7522,12 @@ msgstr "" "تتطابق القيمة المستردة أيضا مع العلم في البيانات الوصفية للتحدي المنشورة " "للمنظمين ، والتي تم فحصها بعد حل الثنائي." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "المصدر والهوية المستهدفة وتفاصيل التحليل" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7537,7 +7537,7 @@ msgstr "" "تحليل جديد واثنين من عمليات الالتقاط في 8 أكتوبر 2026 ، باستخدام REA 4.1.0 " "مع Ghidra 12.1.4 على Linux 64. ثنائي هو جردت س 86-64 قزم ، 15 ، 248 بايت." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7559,7 +7559,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7569,12 +7569,12 @@ msgstr "" "{ph0}قارن مع مصدر المنظمين{ph1} · {ph2}تحدي البيانات الوصفية والعلم{ph3} · " "{ph4}REA ملاحظات الأدلة{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "انها محاولة لنفسك" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7583,13 +7583,13 @@ msgstr "" "تحميل التحدي الأصلي وحلالا في مجلد واحد. استخدم المطالبة أعلاه للتحقيق مع " "وكيلك ، أو قم بتشغيل البرنامج النصي المضمن." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "محطة * حل وتشغيل" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7600,7 +7600,7 @@ msgstr "" "يقوم البرنامج النصي بطباعة علامة مرشح ؛ الصقه في موجه البرنامج. حل يحتاج " "بيثون و {ph0}. تشغيل الاحتياجات القابلة للتنفيذ الأصلي Linux س86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "إعداد REA مع مساعدك البرمجي" @@ -7620,27 +7620,27 @@ msgstr "" "استخدام REA لحل المربعات ملثمين مدقق العلم. ابحث عن وظائف الفحص واستخرج " "الأقنعة وقارن العلم المسترد بالبرنامج الأصلي." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "دراسة حالة مدقق العلم" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "نسخة كتف مثال موجه" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "معادلة قناع كتف ؛ التمرير أفقيا على شاشات أصغر" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7650,42 +7650,42 @@ msgstr "" "يتخطى القناع السابع 21 خلية ، ويختار الموضع 21 ، ثم يتخطى 14. فقط تلك الخلية" " تساهم في المجموع. رمز الحرف المطلوب هو 55 ، مما يعني أن الحرف هو 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "اتبع الاختيار كتف" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "نسخ الجمعية كتف" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "نسخة قابلة للقراءة كتف الاختيار" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "نسخة كتف حلالا مقتطفات" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "نسخ العلم المسترد" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "نسخ كتف حلالا الأوامر" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -7694,26 +7694,26 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "دراسة حالة · DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "إعادة البناء DX-Ball{ph0}من قابل للتنفيذ." # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7722,14 +7722,14 @@ msgstr "" "الهدف هو إعادة بناء لعبة Windows الصادرة عام 1996 بكود C يمكن صيانته. يساعد " "REA المساعد البرمجي على فحص دوال البرنامج الأصلي، دالة بعد أخرى." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows ط386 * ج · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7741,14 +7741,14 @@ msgstr "" "وقراءة البيانات ؛ ينفذ مشروع إعادة الإعمار ويختبر النتيجة. {ph0}الشكل " "المفتوح{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "في دراسة الحالة هذه" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7756,7 +7756,7 @@ msgstr "{ph0}المشروع{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7764,7 +7764,7 @@ msgstr "{ph0}عموم الصوت{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7772,23 +7772,23 @@ msgstr "{ph0}التحقق من النتيجة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "وظائف جيم التي تمت صيانتها" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "مقارنات مع الكود الأصلي" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "وظائف مع مطابقة بايت المترجمة" @@ -7799,7 +7799,7 @@ msgstr "وظائف مع مطابقة بايت المترجمة" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7809,12 +7809,12 @@ msgstr "" "نقطة تفتيش المشروع: 7 أكتوبر 2026. {ph0}التقدم ليدجر{ph1} · {ph2}تغطية " "الاختبار{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "المشروع حتى الآن" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7828,12 +7828,12 @@ msgstr "" "يستمر العمل في اللعبة القابلة للعب مع فيزياء الكرة والمجداف ومعالجة الطاقة و" " Windows التكامل." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "العثور على حساب يسار / يمين موقف الصوت" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7851,17 +7851,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "نسخ" @@ -7872,7 +7872,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7882,7 +7882,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استخدام REA لمعرفة كيف DX-Ball يحسب بالغسل الصوت. شرح الحساب" " وإظهار التعليمات البرمجية.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7893,7 +7893,7 @@ msgstr "" "أدناه يوضح REA الاستفسارات والأدلة وراء الجواب." # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7907,7 +7907,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7920,12 +7920,12 @@ msgstr "" "والدعوة {ph2}. أظهر عرض التعليمات الخاص به إدخال مكدس وعمليات الفاصلة " "العائمة. أعطى هذا التناقض الوكيل سببا ملموسا لمواصلة التحقيق." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "عرض فك التحويل الأول" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -7934,18 +7934,18 @@ msgstr "" "يظهر الإخراج استدعاء دالة تحويل. قراءة التعليمات أدناه تكشف عن المدخلات " "والتغذية حساب تلك الدعوة." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "الإجابة على ثلاثة أسئلة من خلال REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "استعادة المدخلات المفقودة" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7956,14 +7956,14 @@ msgstr "" "هنا, {ph0} يعرض الإدخال الصحيح المفقود من طريقة عرض برنامج فك التحويل " "البرمجي." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "اتبع الدالة المستدعية لفهم المدخلات" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7973,12 +7973,12 @@ msgstr "" "REA حدد هذا الدالة المستدعية في النتيجة الأولى. مقياس التعليمات السابق {ph0}" " بواسطة 30 ؛ إضافة 20 يعطي تنسيق شاشة الطوب, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "قراءة القيم وراء عناوين الذاكرة" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -7987,12 +7987,12 @@ msgstr "" "البايتات التي تم إرجاعها تنشئ الثوابت الحسابية ومقياس عموم الأولي. يحتوي " "العامل الآن على القيم اللازمة للتعبير ج." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "من عند REAالنتائج إلى ج" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8003,7 +8003,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8011,7 +8011,7 @@ msgstr "{ph0}01{ph1} المدخلات" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8019,7 +8019,7 @@ msgstr "{ph0}02{ph1} اضرب" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8027,7 +8027,7 @@ msgstr "{ph0}03{ph1} طرح" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8035,18 +8035,18 @@ msgstr "{ph0}04{ph1} مقياس" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "الأصلي إكس 86 * مقتطفات" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "أعيد بناؤها ج" @@ -8056,7 +8056,7 @@ msgstr "أعيد بناؤها ج" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8075,7 +8075,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8091,7 +8091,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8108,7 +8108,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8125,7 +8125,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8137,7 +8137,7 @@ msgstr "" "REAنتائج المستدعي. ج يلقي النتيجة إلى {ph4} المقارنات الأصلية-86 تحقق من " "القيمة التي تم إرجاعها." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8147,23 +8147,23 @@ msgstr "" "يختار مقتطف التجميع تعليمات الإدخال والحساب والإرجاع. تتضمن القائمة الكاملة " "أدناه أيضا المتاجر المتداخلة وإعداد الوظائف وتنظيفها." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "التجميع الكامل والأدلة الداعمة" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA النتيجة * 0 * 406400-0 * 40643 هـ" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "ما لوازم الدالة المستدعية" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8173,54 +8173,54 @@ msgstr "" "وظيفة ضرب الطوب في {ph0} موازين تنسيق البلاط من قبل 30 ، ويضيف 20 ، ثم يدفع " "به قبل الاستدعاء دالة:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "ما تقرأ البيانات إنشاء" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "العنوان" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "القيمة" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "تستخدم ل" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "الضرب الأول" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "الطرح" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} في البداية" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "مقياس عموم المخزنة" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8236,7 +8236,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8244,12 +8244,12 @@ msgid "" "references{ph3}" msgstr "{ph0}المصدر المحفوظ{ph1} · {ph2}ملاحظات التحقيق ومراجع الأدلة{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "التحقق من الوظيفة المستردة" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8258,12 +8258,12 @@ msgstr "" "تمر الدالة المستردة بفحصين: تتطابق قيم الإرجاع الخاصة بها مع الأصل ، وتتطابق" " وحدات البايت المترجمة مع الملف القابل للتنفيذ." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205 حالات السلوك" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8273,12 +8273,12 @@ msgstr "" "الاختبارات تنفيذ وظيفة س 86 الأصلي ومقارنة قيمة عودتها مع الحفاظ على ج. أنها" " تغطي كل موقف صحيح من 0 إلى 640 في خمسة جداول عموم: 0 ، 0.5 ، 1 ، 20 و -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 بايت مطابقة" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8289,7 +8289,7 @@ msgstr "" "مع الوظيفة الكاملة بعد تطبيق عمليات الترحيل التي تمت مراجعتها والتحقق من " "الثوابت المشار إليها." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8304,18 +8304,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "مواصلة التحقيق" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8326,7 +8326,7 @@ msgstr "" "المكافآت: فحص الوظائف ذات الصلة ، واستعادة حالتها وتبعياتها ، ثم مقارنة " "التنفيذ بالأصل." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8335,7 +8335,7 @@ msgstr "" "لفحص وظيفة الصوت عموم نفسك ، اتبع DX-Ball تعليمات إعداد المشروع وتوفير الهدف" " الأصلي المطابق. ثم تشغيل:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "في ال DX-Ball الخروج" @@ -8344,7 +8344,7 @@ msgstr "في ال DX-Ball الخروج" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8357,7 +8357,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8373,7 +8373,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8397,13 +8397,13 @@ msgstr "" "اتبع أ DX-Ball إعادة الإعمار من التحليل الثنائي من خلال REA للحفاظ على ج ، " "الأصلي-س 86 الاختبارات ومطابقة بايت وظيفة المترجمة." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 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:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8418,70 +8418,70 @@ msgstr "" "بشكل مستقل ضد الأصلي 86 في 3 ، 205 الحالات و فك 4.0 مترجم إعادة مطابقة 63 " "بايت." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball دراسة حالة إعادة الإعمار" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "نسخة مثال موجه" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "اتبع حساب يسار / يمين موقف الصوت" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "نسخ مقتطفات الجمعية الأصلية" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "نسخ الصوت-وظيفة عموم" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "نسخ الصوت الكامل-تجميع عموم" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "نسخ DX-Ball أمر التحليل" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}الرئيسية{ph1} / المعارض" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA دراسات الحالة." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8490,17 +8490,17 @@ msgstr "" "Android, ألعاب, Electron وتحدي فرقة العمل المشتركة ، مع رمز والأرقام " "والنتائج فحص." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "اندرويد · APK التحليل" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "كيف يقوم المصدق بإنشاء رمز تسجيل الدخول" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8510,22 +8510,22 @@ msgstr "" "البحث Aegisحساب الرمز المكون من ستة أرقام في إصداره APK. تتبع طرق التوليد " "باستخدام REA، ثم انقل ساعة تجريبية لمعرفة سبب تغيير الرمز كل 30 ثانية." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "قراءة دراسة حالة Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "* تحليل برامج كود الآلة" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "حل مدقق العلم كتف" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8536,22 +8536,22 @@ msgstr "" " الأقنعة والمبالغ إلى معادلات ، ثم تحقق من العلم الذي تم حله باستخدام " "البرنامج الأصلي." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "اقرأ دراسة حالة لجنة مكافحة الإرهاب" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "مواطن * إعادة الإعمار" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballحساب عموم الصوت" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8562,22 +8562,22 @@ msgstr "" "الدالة المستدعية والثوابت الرقمية تؤدي إلى دالة C صغيرة ، فحص ضد السلوك " "الأصلي وجميع 63 بايت المترجمة." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "قراءة DX-Ball دراسة حالة" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * ميزة تتبع" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "كيف Notion نسخ النص و هتمل" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8588,22 +8588,22 @@ msgstr "" " أغلفة إيبك إلى حافظة النظام ، ثم انظر كيف تحافظ علامة هتمل الصغيرة على " "بيانات كتلة غنية متصلة بنسخة." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "قراءة Notion دراسة حالة" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 دوس * إعادة الإعمار" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "كيف TH04 يهدف حلقة من الرصاص" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8613,17 +8613,17 @@ msgstr "" "افحص مساعد الزاوية الأصلي 16 بت باستخدام REA. تطابق عمليات الضرب والقسمة " "والتنسيق مع ج readable المقروء ، ثم انظر كيف ينتجون حلقة تستهدف اللاعب." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "قراءة TH04 دراسة حالة" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "أدلة خطوة بخطوة" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8632,7 +8632,7 @@ msgstr "" "أدلة المشي من خلال حساب الأصلي ، وهو Electron تصدير وطلب المتصفح. كل يبدأ مع" " موجه وهدف ملموس." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "اقرأ الأدلة" @@ -8651,12 +8651,12 @@ msgstr "" "اتبع REA التحقيقات من خلال الكود والأرقام والعروض التوضيحية: مصادق أندرويد, " "DX-Ball, Notion, TH04 ومدقق العلم دوونديركتف." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -8665,25 +8665,25 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "دراسة حالة · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "كيف Notion نسخ{ph0}النص و هتمل." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8692,12 +8692,12 @@ msgstr "" "تتبع استدعاء دالة الحافظة من Notionواجهة برمجة تطبيقات الصفحة ، من خلال " "التحميل المسبق والعملية الرئيسية ، إلى Electronكاتب الحافظة." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "الجسر في الداخل Notionحزمة سطح المكتب" @@ -8709,7 +8709,7 @@ msgstr "الجسر في الداخل Notionحزمة سطح المكتب" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8726,7 +8726,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8743,7 +8743,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8760,7 +8760,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8771,13 +8771,13 @@ msgstr "" " هتمل.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8786,14 +8786,14 @@ msgstr "" "يستخدم الرمز المعبأ نفس القناة في التحميل المسبق والعملية الرئيسية. حل مغلفة" " يكشف عن Electron يدعو وراء تلك الأسماء." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "في دراسة الحالة هذه" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8801,7 +8801,7 @@ msgstr "{ph0}اتبع جسر الحافظة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8809,19 +8809,19 @@ msgstr "{ph0}الحفاظ على هيكل الكتلة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "أين تذهب عملية النسخ?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8840,17 +8840,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "نسخ" @@ -8861,7 +8861,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8871,19 +8871,19 @@ msgstr "" "{ph0}›{ph1}{ph2}استخدام REA لتتبع كيف Notion نسخ النص و هتمل إلى حافظة " "النظام. أظهر الرمز في كل خطوة.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA يجد من أين تبدأ القراءة" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8894,13 +8894,13 @@ msgstr "" "والاستدعاء دالة التي ترسل طلب إيبك. تأتي كلتا النتيجتين مع نطاقات المصدر في " "الحزمة المصغرة:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA النتائج places مكانين لفتح" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8913,7 +8913,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8926,12 +8926,12 @@ msgstr "" "، ويقرأ {ph0}. لوازم موقع الاتصال {ph1}. يعطي هذا الاسم الوكيل شيئا دقيقا " "للبحث عنه في الحزمة الرئيسية. تظهر المقتطفات الأربعة أدناه المسار الذي يربط." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "أربع قطع قصيرة من التعليمات البرمجية" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -8940,13 +8940,13 @@ msgstr "" "مبسطة من تعبئتها JavaScript، مع أسماء المتغيرات القابلة للقراءة. تم حذف " "الأعضاء غير المرتبطين." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "ابدأ من واجهة برمجة التطبيقات المكشوفة للصفحة" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8955,13 +8955,13 @@ msgid "" msgstr "" "يوفر هذا العضو اسم القناة. تنفيذ {ph0} يخبرنا كيف يترك الطلب عملية الصفحة." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "حل غلاف التحميل المسبق" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8972,14 +8972,14 @@ msgstr "" "واستجابة التصنيف الدولي للبراءات. يمكننا الآن البحث عن {ph0} على الجانب " "الرئيسي-العملية." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "تحقق من كيفية تسجيل المتلقي" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8989,12 +8989,12 @@ msgstr "" "تستخدم العملية الرئيسية غلاف آخر. لها {ph0} الطريقة تسجل {ph1} استقبال لتلك " "القناة." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "ابحث عن الكتابة والتحقق من المرسل" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9005,13 +9005,13 @@ msgstr "" "إلى Electronواجهة برمجة تطبيقات الحافظة. تقوم القناة والأغلفة التي تم حلها " "بتوصيل الطريقة المكشوفة بهذه الاستدعاء دالة." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "كيف تحافظ الكتلة المنسوخة على هيكلها?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9021,27 +9021,27 @@ msgstr "" "Notionمحرر الويب يرسل النص و هتمل من خلال {ph0}. فإنه يحتفظ البيانات كتلة " "محليا ويضع معرف في هتمل نسخها لربطها." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "وصلات أتش تي أم أل إلى بيانات الكتلة المحفوظة" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "قراءة معرف هتمل" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "ابحث عن نفس المعرف المحلي" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "استعادة Notion كتلة البيانات" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9050,7 +9050,7 @@ msgstr "" "نص توضيحي ومعرف. يستعيد اختبار الوحدة النمطية المسجلة بيانات الكتلة عند " "تطابق المعرفات ؛ يقوم إدخال قديم بإرجاع النص والأتش تي أم أل فقط." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9059,22 +9059,22 @@ msgstr "" "على لصق, Notion يبحث عن معرف هتمل ويتحقق من ذلك ضد النسخة المحفوظة. معرفات " "مطابقة استعادة البيانات كتلة." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "المزيد من الأمثلة والمصادر" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "مثال آخر: جداول تخفيض السعر" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9083,12 +9083,12 @@ msgstr "" "Notion يوزع تخفيض السعر في بيانات الكتلة. يوضح هذا المثال كيف يصبح الجدول " "رأس وصفوف البيانات." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "جدول من خلال Notionمحلل تخفيض السعر" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9096,13 +9096,13 @@ msgid "" msgstr "" "الإخراج المسجل من محلل تخفيض السعر المستخرج. يصبح الجدول الصفوف والخلايا." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "مسار آخر: اتصال سكليتي غير متصل" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9115,7 +9115,7 @@ msgstr "" "بإنشاء قناة رسالة ويعطي منفذ واحد إلى العارض والآخر إلى عملية فائدة سكليتي. " "دفعات البيان اللاحقة والنتائج تنتقل عبر هذا المنفذ." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9124,7 +9124,7 @@ msgstr "" "بعد هذا التحول يشرح أين يعمل عمل قاعدة البيانات ، ولماذا تتبع فقط طلب إيبك " "الأولي يفتقد المحادثة في وقت لاحق." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "المصادر وكيفية قراءة المقتطفات" @@ -9132,7 +9132,7 @@ msgstr "المصادر وكيفية قراءة المقتطفات" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9150,7 +9150,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9165,7 +9165,7 @@ msgstr "" "الأصول لها نسختها الخاصة. نفذت المجسات المحفوظة وحدات مستخرجة وأحزمة صغيرة ؛" " تصف مخرجاتها تلك المجسات بدلا من جلسة واجهة مستخدم سطح المكتب الملتقطة." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9179,7 +9179,7 @@ msgstr "" " الغلاف الخاصة بهم في الحزمة." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9197,7 +9197,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9211,7 +9211,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9237,52 +9237,52 @@ msgstr "" "مغلفة إيبك والعملية الرئيسية،مع مقتطفات رمز قصيرة ونظرة على شكل الحافظة " "الغنية." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron دراسة حالة" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "نسخ Notion موجه التحليل" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "نسخ Notion التحميل المسبق مقتطفات" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "نسخ Notion استدعاء مقتطفات المجمع" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "نسخ Notion معالج المجمع مقتطفات" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "نسخ Notion الحافظة استقبال مقتطفات" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "استعادة البيانات الحافظة الغنية على لصق" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "العودة للأعلى" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -9291,25 +9291,25 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "دراسة حالة * توهو 4: قصة لوتس لاند" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9318,17 +9318,17 @@ msgstr "" "تبدأ حلقة من الرصاص بحساب زاوية قصير. استخدام REA لتفقد وظيفة دوس الأصلية ، " "ثم اتبع تعليماتها في قراءة ج++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * 16 بت دوس * ج assembly والتجمع" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "عرض TH04 إعادة الإعمار" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "من التعليمات الأصلية إلى المصدر المحدد" @@ -9339,7 +9339,7 @@ msgstr "من التعليمات الأصلية إلى المصدر المحدد" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9355,7 +9355,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9372,7 +9372,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9388,7 +9388,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9399,7 +9399,7 @@ msgstr "" "{ph0}04 * تحقق من المصدر{ph1}{ph2}2,139 بايت مطابقة{ph3}{ph4}تغطي فحوصات " "المترجم المسجلة رمز إنشاء التعداد النقطي الذي يحتوي على هذا المساعد.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9408,14 +9408,14 @@ msgstr "" "REA إرجاع الرمز الأصلي وأدلة تحليله. ال TH04 يوفر المشروع شيكات المصدر " "والمترجم التي تم صيانتها." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "في دراسة الحالة هذه" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9423,7 +9423,7 @@ msgstr "{ph0}حلقة الرصاصة{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9431,7 +9431,7 @@ msgstr "{ph0}ماذا REA المرتجعات{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9439,7 +9439,7 @@ msgstr "{ph0}الجمعية إلى ج C{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9447,18 +9447,18 @@ msgstr "{ph0}التحقق من المصدر{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}المشروع الكامل{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "كيف تهدف الحلقة إلى اللاعب" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9476,16 +9476,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "نسخ" @@ -9496,7 +9496,7 @@ msgstr "نسخ" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9506,7 +9506,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استخدام REA لمعرفة كيف TH04 يخلق حلقة من الرصاص ويهدف إلى " "لاعب. شرح الحساب وإظهار التعليمات البرمجية.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9515,7 +9515,7 @@ msgstr "" "مثال موجه ، مع الخروج الأصلي القابل للتنفيذ وإعادة الإعمار متاح محليا." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9529,7 +9529,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9539,12 +9539,12 @@ msgstr "" "رسم توضيحي للرياضيات الزاوية المستردة للعد 16 واتجاه اللاعب 40 ودوران القالب" " 0. {ph0}الشكل المفتوح{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "قالب إطلاق النار في المصدر المسترد" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "هجوم حلقة اللي · مقتطفات المصدر" @@ -9553,7 +9553,7 @@ msgstr "هجوم حلقة اللي · مقتطفات المصدر" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9562,13 +9562,13 @@ msgid "" msgstr "" "تحدد هذه الخطوط النمط قبل ضبط الصعوبة والأداء. {ph0}اقرأ مصدر الهجوم{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "ماذا REA المرتجعات" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9579,12 +9579,12 @@ msgstr "" "نحن نفحص {ph0}، الوظيفة التي تحدد سرعة وزاوية كل رصاصة. REA إرجاع تعليماته ،" " بسيودوكود والمراجع. ثلاثة أجزاء من هذه النتيجة تشرح النمط." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "تحقق من صورة دوس قبل قراءة رمزها" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9593,7 +9593,7 @@ msgstr "" "يربط الشيك الكود المحمل وسجلات النقل إلى الملف القابل للتنفيذ المرفق. يتم " "تقصير المسار أعلاه للعرض." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "قراءة الحلبة ضرب وتقسيم" @@ -9601,7 +9601,7 @@ msgstr "قراءة الحلبة ضرب وتقسيم" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9613,12 +9613,12 @@ msgstr "" "من {ph1}. أسماء المصدر المحتفظ بها هذا الحقل {ph2}. يظهر التسلسل الكامل " "أدناه." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "ابحث عن المكان الذي يتحول فيه النمط نحو المشغل" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9630,12 +9630,12 @@ msgstr "" "الإرجاع إلى زاوية الحلقة النسبية. أسماء المصدر تجعل هذه العناوين قابلة " "للقراءة; REA يتيح للوكيل التحقق من العمليات الأصلية خلفهم." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "من التجميع إلى القراءة ج C" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9648,7 +9648,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9656,7 +9656,7 @@ msgstr "{ph0}01{ph1} الفهرس" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9664,7 +9664,7 @@ msgstr "{ph0}02{ph1} الفضاء" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9672,7 +9672,7 @@ msgstr "{ph0}03{ph1} الهدف" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9680,18 +9680,18 @@ msgstr "{ph0}04{ph1} تدوير" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} متجر" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * تعليمات 16 بت الأصلية" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "قراءة ج · * تهدف حلقة ملخص" @@ -9699,7 +9699,7 @@ msgstr "قراءة ج · * تهدف حلقة ملخص" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9713,7 +9713,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9728,7 +9728,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9742,7 +9742,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9756,7 +9756,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9769,7 +9769,7 @@ msgstr "" " حقل تفرخ الزاوية. القيم التفاف بعد 255 ، تماما كما يفعل يلقي بايت غير " "موقعة. يحول المصدر المحيط أيضا هذه الزاوية والسرعة إلى سرعة." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9780,7 +9780,7 @@ msgstr "" "أعلاه هو ملخص مقروء. تنطبق عمليات التحقق من المترجم أدناه على المصدر المحفوظ" " في المشروع المرتبط." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "قراءة حلقة الحفاظ ومصدر الهدف" @@ -9797,7 +9797,7 @@ msgstr "قراءة حلقة الحفاظ ومصدر الهدف" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9807,12 +9807,12 @@ msgstr "" "{ph0}حلقة ماكرو{ph1} · {ph2}الهدف ومصدر السرعة{ph3} · {ph4}تمثيل " "الزاوية{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "التحقق من المصدر الذي تم صيانته" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -9821,12 +9821,12 @@ msgstr "" "ال TH04 تقوم الشيكات المسجلة للمشروع بتجميع رمز إنشاء الرصاص ، بما في ذلك " "هذا المساعد ، مع سلسلة أدوات توربو سي J 4.0 ي." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 بايت مطابقة" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -9835,12 +9835,12 @@ msgstr "" "يتطابق رمز إنشاء التعداد النقطي المجمع مع قسم 2139 بايت من الملف التنفيذي " "الأصلي." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "اثنين نظيفة يبني" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9853,65 +9853,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, 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:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "تحديد الهدف ونطاق التحليل" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "الهدف الأصلي" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156 ، 258 بايت ، دوس ميجا هرتز" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "دخول المساعد" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} في REAالصورة المحملة" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "إزاحة الملف الأصلي" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}، عاد من قبل {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "فحص الكود المسجل" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 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:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9921,7 +9921,7 @@ msgstr "" "أنها تقارن مساهمة الخريطة وإعادة التوطين المتداخلة." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9935,7 +9935,7 @@ msgstr "" "بايت ؛ التعليمات المحددة أعلاه تكمن في تلك النطاقات المبلغ عنها." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9950,7 +9950,7 @@ msgstr "" "REA التفتيش على نفس الهدف الأصلي. يتم تثبيت هوية اللعبة الموردة من خلال بيان" " المستودع الخاص بها ، مع استمرار فتح مصدر التفريغ الأصلي المستقل." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9960,12 +9960,12 @@ msgstr "" "يوضح الشكل حساب الزاوية. ضوابط اللعبة الكاملة والتوقيت و PC-98 سلوك الأجهزة " "لديها الشيكات وقت التشغيل منفصلة في مشروع إعادة الإعمار." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "كامل TH04 إعادة الإعمار" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9978,7 +9978,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9990,7 +9990,7 @@ msgstr "{ph0}استكشاف TH04 مستودع{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10006,7 +10006,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10022,7 +10022,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10047,28 +10047,28 @@ msgstr "" "فحص TH04رمز دوس الأصلي 16 بت مع REA. اتبع التجمع وتعافى ج to لنرى كيف " "متباعدة حلقة من الرصاص وتهدف إلى لاعب." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 دراسة حالة نمط رصاصة" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "نسخ TH04 مثال موجه" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 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:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10080,27 +10080,27 @@ msgstr "" "إضافة اتجاه لاعب 40 تدور كل اتجاه بنفس المقدار; النقاط الأولى المميزة تجاه " "اللاعب. كلاهما يحتفظ بمسافة 16 وحدة زاوية ، أو 22.5 درجة." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "نسخ TH04 قالب إطلاق النار" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "اتبع TH04 تهدف-حساب الدائري" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "نسخ TH04 مقتطفات الجمعية" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "نسخ حساب الحلقة المستهدفة المقروءة" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "العودة للأعلى" @@ -10579,597 +10579,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "نفس التباعد: 256 1 16 = 16 وحدة زاوية = 22.5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "أمثلة عملية" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "المدونة" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "ابدأ هنا" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "الأدلة" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "الكود المصدري" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "رخصة MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "انضم إلى المجتمع" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "تابعنا على X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * مصدر البرنامج النصي المحدد" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "الكود المصدري" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "الناتج المنسق المتوقع" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "التعليمات" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "الدالة المستدعية" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "الثوابت" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "جيم وظيفة" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "زر" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "واجهة برمجة تطبيقات التحميل المسبق" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "التصنيف الدولي للبراءات" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV ملف" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "انقر فوق الخاص بك" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "طلب تم التقاطه" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "نص التصدير" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA النتيجة * ملخص.مقتطفات التصنيف الدولي للبراءات" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA مقتطفات التعليمات * 0 * 406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA مقتطف الدالة المستدعية · 0 * 411 أف 5 ب" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA نتائج البايت * تفسر على أنها زوجي صغير" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "تعافى ج * مقتطفات" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "يعرض →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "الإعدادات المحددة من البرنامج النصي الذي تم فحصه" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "ملخص مقروء لمعالج ٪" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * تعليمات أصلية مختارة" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "معرفات المشغل * مصدر مايكروسوفت" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "وكيل → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA - وكيل * نتائج مختارة" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA - وكيل * طرق والدوال المستدعية" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * جافا مفككة مختارة" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "ملخص مقروء * تفسير الوكيل" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * جينيراتوتب ، كامل الجسم" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "تحميل Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "تحميل مزود تحليل Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "وكيل → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA - وكيل * نتائج مختارة" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA - وكيل * تعليمات مختارة" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "وكيل → REA * قراءة _ بايت" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA agent الوكيل * الإدخالات السابعة" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "قابل للتنفيذ الأصلي · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "تحميل التحدي الأصلي" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "تحميل حلالا" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA النتيجة * مقتطفات من الكود الكاذب" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "وكيل → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA - وكيل * مقتطفات التعليمات" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA - وكيل * الدالة المستدعية مقتطفات" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA نتائج بايت * فك كما الزوجي" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "ابدأ بالهدف الخاص بك" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "توليد التعليمات البرمجية" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "القاعدة المستردة" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "ساعة قابلة للتعديل" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "ثنائي" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "التحقق من التعليمات البرمجية" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "المعادلات" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "صحيح!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "قابل للتنفيذ" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA النتائج" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "تعافى ج" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "التحقق من الصحة" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "التطبيق المعبأ" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "واجهة برمجة تطبيقات مكشوفة" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "مغلفة التصنيف الدولي للبراءات" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "الحافظة" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "كود دوس الأصلي" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA التعليمات" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "حساب الزاوية" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "حلقة رصاصة" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "واجهة برمجة تطبيقات الصفحة المكشوفة" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "دعوة العارض إيبك" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "إرسالها إلى حافظة النظام" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "محفوظ محليا بواسطة Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "إدخال تخفيض السعر" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "منظم محلل الإخراج * مقتطفات" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "تحليل التطبيق الخاص بك" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "وكيل → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA agent وكيل * الحقول المحددة" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "وكيل → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA - وكيل * مقتطفات التعليمات" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "نفس النتيجة وظيفة * تهدف مقتطفات" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "المقابلة الحفاظ ج C" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "حلقة ماكرو · TH04 فرع ، مقتطفات" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "الزاوية والسرعة * مقتطفات المصدر" @@ -11202,7 +11202,7 @@ msgstr "يتم تحديث الترجمة. اقرأ هذه الصفحة بالل #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11219,7 +11219,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11239,7 +11239,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11259,7 +11259,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11277,7 +11277,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11289,7 +11289,7 @@ msgstr "" "الإعداد أولاً وانتظر موافقتي، ثم تحقّق من التثبيت.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" @@ -11297,7 +11297,7 @@ msgstr "إعادة الإعمار · {ph0}" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11308,7 +11308,7 @@ msgstr "" "المقترحة." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11317,7 +11317,7 @@ msgstr "مثال مقدم · {ph0} و npm * مساعدك البرمجي" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11335,7 +11335,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11351,7 +11351,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11370,7 +11370,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11381,7 +11381,7 @@ msgstr "" "الملف.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11396,7 +11396,7 @@ msgstr "{ph0} * خطوط 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11409,7 +11409,7 @@ msgstr "" "الفعلي.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11421,15 +11421,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." -msgstr "سوف تحتاج {ph0} 22 (22.23.4+), 24 (24.22.1+) أو 26+ (>=26.12.1). npm يأتي مع {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"سوف تحتاج {ph0} 22 (22.23.4+), 24 (24.22.1+) أو 26+ (>=26.12.1). npm يأتي مع" +" {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11437,19 +11440,20 @@ msgstr "ليس لديك {ph0}, أو لست متأكدا?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"إذا عرض {ph0} ‏v22.23.4+ أو v24.22.1+ أو v26.12.1+، فأنت جاهز. إذا عرض إصدارًا أقدم " -"أو \"not recognized\" / \"command not found\"، فثبّت {ph1} 24 LTS:" +"إذا عرض {ph0} ‏v22.23.4+ أو v24.22.1+ أو v26.12.1+، فأنت جاهز. إذا عرض " +"إصدارًا أقدم أو \"not recognized\" / \"command not found\"، فثبّت {ph1} 24 " +"LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11463,7 +11467,7 @@ msgstr "{ph0} * مثال مقتطفات المصدر" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11472,9 +11476,9 @@ msgid "" msgstr "{ph0}افتح المثال{ph1} · {ph2}تحميل {ph3}{ph4} · {ph5}تحميل {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11482,7 +11486,7 @@ msgstr "{ph0} * مثال المصدر" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11496,7 +11500,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11513,7 +11517,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11524,7 +11528,7 @@ msgstr "" "220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11538,7 +11542,7 @@ msgstr "REA * تحميل {ph0} * خطوط مختارة" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11556,7 +11560,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11569,28 +11573,28 @@ msgstr "" "تغيير الوقت.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "علامة التبويب_المتصفح_عرض/{ph0} * عضو واجهة برمجة التطبيقات" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "علامة التبويب_المتصفح_عرض/{ph0} * إيبك مساعد" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "الرئيسية/{ph0} * معالج مساعد" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11609,7 +11613,7 @@ msgstr "التبديل إلى الوضع الداكن" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11624,18 +11628,18 @@ msgstr "" "المسجلة مع وكيلك." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "نماذج متخصصة{ph0}مقال" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "هل تحتاج الهندسة العكسية إلى نموذج أكبر؟" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11644,12 +11648,12 @@ msgstr "" "أفكار من إعادة بناء Touhou حول النماذج العامة والمتخصصة والتعلم من نتائج " "المُصرّف." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "بواسطة N0zoM1z0 · 13 أكتوبر 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" @@ -11658,38 +11662,38 @@ msgstr "تخطي إلى المحتوى" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}الصفحة الرئيسية{ph1} / {ph2}المدونة{ph3} / النماذج والهندسة العكسية" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "مقال" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "هل تحتاج الهندسة العكسية إلى نموذج أكبر؟" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "بواسطة N0zoM1z0 · 13 أكتوبر 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "أهم الأفكار" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11702,7 +11706,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11715,7 +11719,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11727,7 +11731,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11740,7 +11744,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11751,14 +11755,14 @@ msgstr "" " الوقت والتكلفة.{ph1} هذا ما أريد قياسه لسير عمل وكيل الذكاء الاصطناعي " "الكامل." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "في هذه المقالة" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11766,7 +11770,7 @@ msgstr "{ph0}ما الذي غيّرته النماذج الأقوى؟{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11774,7 +11778,7 @@ msgstr "{ph0}لماذا التخصص؟{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11782,7 +11786,7 @@ msgstr "{ph0}أين ينبغي تخزين هذه التجربة؟{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11790,7 +11794,7 @@ msgstr "{ph0}تعلم التجربة المفيدة التالية{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11798,7 +11802,7 @@ msgstr "{ph0}الهندسة العكسية والتعلم المعزز{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11806,7 +11810,7 @@ msgstr "{ph0}عندما يكون أداة التحقق خاطئًا{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11814,18 +11818,18 @@ msgstr "{ph0}مقارنة تستحق التشغيل{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}ما هو نوع وكيل الذكاء الاصطناعي الذي يشير إليه هذا؟{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "ما الذي غيّرته النماذج الأقوى؟" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11839,7 +11843,7 @@ msgstr "" "بناء الألعاب، وخاصة Touhou. وبما أنني قمت بتغيير النماذج، فقد احتفظت " "المستودعات بسجل لما تمكنت كل جلسة من استعادته." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11852,12 +11856,12 @@ msgstr "" " إنتاج الدالة المستهدفة. عندما يحل نموذج أحدث مشكلة تعثر عندها العمل السابق،" " تكشف تغييرات الشيفرة ما الذي أتاح هذا التقدم." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "تحتاج المتغيرات المؤقتة إلى عمر متداخل" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11878,7 +11882,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11891,7 +11895,7 @@ msgstr "" "ترتيبات كود المصدر العادية. عندما فحص {ph2}GPT-6.1-Sol المشكلة مرة " "أخرى{ph3}، اقترح فرضية مفيدة حول عمر هذه المتغيرات المؤقتة." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11907,7 +11911,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11921,7 +11925,7 @@ msgstr "" "التداخل المتبقي. وبعد عدة تجارب مستهدفة، {ph0}أكدت إعادة الترجمة النظيفة من " "المصدر أن الوظيفة الكاملة مطابقة{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11932,7 +11936,7 @@ msgstr "" "المتعلقة بعمر الكائنات المؤقتة لعامل الذكاء الاصطناعي اتجاهًا جديدًا. ساعدت " "تعليقات المترجم في تحسين هذه الفرضية إلى ترتيب كود المصدر المطابق." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "رسم بياني مختلف للتحكم في التدفق" @@ -11941,7 +11945,7 @@ msgstr "رسم بياني مختلف للتحكم في التدفق" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11963,7 +11967,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11980,7 +11984,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11994,7 +11998,7 @@ msgstr "" "الاستمرار في تجربة الاختلافات المحلية لفترة طويلة قبل العثور على طريقة أفضل " "للتعبير عن العمل المحيط." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12008,7 +12012,7 @@ msgstr "" " شأن المقارنة الخاضعة للرقابة أن تساعد في فصل تأثير النموذج عن الخبرة التي " "ورثها." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12022,12 +12026,12 @@ msgstr "" "مقابل مترجم مألوف. كم من هذا يتطلب قدرة تفكير واسعة النطاق؟ ما مقدار ما يمكن" " أن يتعلمه النموذج من خلال العمل المتكرر مع هذا المترجم والكود؟" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "لماذا قد يكون نموذج الذكاء الاصطناعي المتخصص ناجحًا؟" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12041,7 +12045,7 @@ msgstr "" "معقول. تدعم المستودعات ذلك بأمثلة مفيدة: الحلقات ذات الصلة والترتيبات " "المساعدة قدمت فرضيات عبر الألعاب." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12060,7 +12064,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12075,7 +12079,7 @@ msgstr "" "وظيفة خلفية سابقة عن نمط تسمية أثر على اختيار المترجم. وقد اقترح ذلك فرضية " "واعدة أكثر بشأن {ph2}إعادة بناء {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12084,7 +12088,7 @@ msgstr "" "أدت إعادة استخدام هذا النمط لمتغير حجم الملف إلى إنتاج التخطيط المطلوب دون " "إضافة مساحة تخزين. ثم تمت مطابقة الوظيفة الكاملة." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12096,7 +12100,7 @@ msgstr "" "العديد من هذه الحالات ويتعرف على اختلافات التعليمات البرمجية المصدر التي " "تستحق الاختبار أولاً." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12114,7 +12118,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12132,14 +12136,14 @@ msgstr "" "وكيفية ربطها في ملف تنفيذي. وحدة المؤلف تعطينا توقعًا أوليًا، لكن كل هدف " "يبين إن كان ينطبق. وعلى النموذج المتخصص تعلم هذه الفروق." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "أين ينبغي تخزين هذه التجربة؟" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12154,7 +12158,7 @@ msgstr "" "العاملة للمشروع. تتضمن هذه الذاكرة ما تعلمناه عن سلوك المترجم البرمجي، مع " "الشيفرة والتجارب الفاشلة التي جعلت تلك المعرفة مفيدة." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12170,7 +12174,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12188,7 +12192,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12204,7 +12208,7 @@ msgstr "" "المرشحة، فعلى النموذج أن يقرر ما تعنيه النتيجة لمحاولته التالية. معرفة النمط" " المناسب هي بداية العملية فقط." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12217,12 +12221,12 @@ msgstr "" "تحديد ما يضيفه التدريب: جيل أفضل للمرشحين، أو قرارات أفضل بعد التعليقات، أو " "كليهما." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "تعلم التجربة المفيدة التالية" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12235,7 +12239,7 @@ msgstr "" "المصدري المرشح، فإن النتيجة يمكن أن تضيق الاحتمالات المتبقية وتقترح تجربة " "تالية أكثر فائدة." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12247,43 +12251,43 @@ msgstr "" "الذي نجح، لكن المسار إلى هذا المصدر يحتوي على مزيد من المعلومات. ساعدت كل " "تجربة من التجارب التالية في تحديد ما لا يزال بحاجة إلى التغيير." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "تجربة" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "ماذا علمتنا نتيجته" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "جرب طريقة مختلفة لنسخ النتائج" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "يتغير رمز النسخ، لكن الوظيفة لا تزال مختلفة." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "استخدم القيم التي تم إرجاعها مباشرة" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "يتبع النسخ النمط الأصلي، لكن التخزين المؤقت لا يزال مختلفًا." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "إبقاء كافة المتغيرات المؤقتة صالحة في نفس الوقت" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12292,17 +12296,17 @@ msgstr "" "يحصلون على مساحة تخزين منفصلة، ولكن لا يزال هناك تداخل مع قيمة يتم استخدامها" " لاحقًا للتحقق من التصادم." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "احتفظ بقيمة التحقق من التصادم منفصلة" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "تؤكد إعادة الترجمة النظيفة من المصدر التطابق الكامل." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12310,7 +12314,7 @@ msgid "" msgstr "" "تجارب مختارة من إعادة بناء وظيفة الهجوم أعلاه، مجمعة حسب ما علمتنا إياه." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12325,7 +12329,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12339,7 +12343,7 @@ msgstr "" "تتوقف التعديلات المحلية عن تقديم المعلومات، يجب أن يكون الوكيل قادرًا على " "إعادة النظر في تمثيل المصدر أو فحص الأدلة مرة أخرى." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12351,12 +12355,12 @@ msgstr "" "أخرى تستدعي هذه الدالة بدل ترجمة تعديل جديد. فرض سلسلة جامدة من إعادة " "الكتابة يلغي هذا الاختيار ومعه جزءًا من السلوك الذي نريد أن يتعلمه النموذج." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "لماذا تعتبر الهندسة العكسية مثيرة للاهتمام للتعلم المعزز" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12369,7 +12373,7 @@ msgstr "" "سريعة وقابلة للتكرار. يستطيع الوكيل ترجمة شيفرة مرشحة وفحص الفروق ثم اختيار " "الخطوة التالية." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12385,7 +12389,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12406,7 +12410,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12422,7 +12426,7 @@ msgstr "" "البرنامج الأصلي مع حسابات الفاصلة العائمة{ph1}. قبل أن يتمكن الوكيل من " "اختبار تصحيح مفيد، كان عليه أن يحدد ما يجب قياسه." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12433,12 +12437,12 @@ msgstr "" "قابلة للتحقق في المقام الأول. بمجرد وجود هذا الفحص، يمكننا التحقيق في المدى " "الذي يمكن أن تصل إليه سياسة البحث المستفادة." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "عندما يكون أداة التحقق خاطئًا" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12449,7 +12453,7 @@ msgstr "" "المرجع أو أداة التحقق oracle. حتى الإجابة القابلة للتكرار يجب فهمها في حدود " "ما تتحقق منه فعلًا." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12471,7 +12475,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12485,7 +12489,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12501,7 +12505,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12517,7 +12521,7 @@ msgstr "" "الحالات التي يمارسها. وبالمثل، يجب فهم مطابقة التعليمات من حيث البايتات " "والبيانات التي تتحقق منها." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12534,7 +12538,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12546,12 +12550,12 @@ msgstr "" "البحث.{ph1} ومع تحسن المتعلم في تحسين التعليقات التي نقدمها له، يصبح فهم هذه" " التعليقات أكثر أهمية أيضًا." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "مقارنة تستحق التشغيل" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12566,7 +12570,7 @@ msgstr "" "الاسترجاع. ومن هنا، فإن التخصص الخاضع للإشراف والنسخة المدربة RL ستسمح لنا " "بفحص ما يضيفه التدريب." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12579,7 +12583,7 @@ msgstr "" "ثابتة أيضًا. من شأن التجارب المتكررة أن تساعد في التمييز بين استراتيجية " "البحث الموثوقة والحل المرشح الذي ينجح بالصدفة." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12594,7 +12598,7 @@ msgstr "" "بالكثير من العمل اللازم للوصول إليه. وقياسها بشكل منفصل من شأنه أن يكشف عن " "تقسيم العمل هذا." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12608,7 +12612,7 @@ msgstr "" "مجموعات كاملة من أكواد المصدر ذات الصلة وأحتفظ بإجاباتها التي تم التحقق منها" " خارج كل من بيانات التدريب ومكتبة الاسترجاع." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12623,7 +12627,7 @@ msgstr "" "سيُظهر ما إذا كانت هذه الجودة تنتج سير عمل فعالاً. وينبغي قياس تكاليف " "التدريب بشكل منفصل." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12640,7 +12644,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12660,7 +12664,7 @@ msgstr "" "المشكلة الأساسية. يمكن لمثل هذه التشخيصات أن توجه التجربة التالية، لكنني " "سأؤكد صحة أي مكافأة مقابل \"الاقتراب\" مقابل فحص القبول الكامل." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12675,12 +12679,12 @@ msgstr "" "الاسترجاع، ما مقدار التدريب الذي سيضيفه؟ ستساعدنا الإجابات في تحديد المكان " "الذي يكون فيه كل نوع من النماذج أكثر فائدة." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "ما هو نوع وكيل الذكاء الاصطناعي الذي يشير إليه هذا؟" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12695,7 +12699,7 @@ msgstr "" "المتخصص للمرشحين. إذا لم تعد النتائج منطقية، فيمكن للعامل الأوسع العودة إلى " "الدليل المستهدف أو التحقيق في القياس نفسه." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12705,7 +12709,7 @@ msgstr "" "وفي هذا الترتيب، يصبح التخصص أداة يمكن للعميل اختيارها مع تطور التحقيق. " "يحتفظ الوكيل بحرية تغيير الاتجاه الذي جعل الاختراقات السابقة ممكنة." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12718,7 +12722,7 @@ msgstr "" " يمنحنا سببًا للتساؤل عن القرارات التي تحتاج إلى حكم واسع النطاق وتلك التي " "تتحسن من خلال الخبرة المتكررة في حرفة معينة." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12733,7 +12737,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12743,12 +12747,12 @@ msgstr "" "{ph0}توفر لنا المستودعات طريقة لاختبار السؤال.{ph1} أود استخدام هذا السجل " "لإجراء المقارنة ومعرفة ما نتعلمه." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "الأدلة وإسناد النموذج" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -12761,7 +12765,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12786,7 +12790,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12811,7 +12815,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12836,7 +12840,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12862,7 +12866,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12874,7 +12878,7 @@ msgstr "" "العائمة{ph3}، و{ph4}TH08 التحقيق الرقمي{ph5} و{ph6}TH09 إعادة البناء مع " "توفير إعادة التشغيل{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -12898,22 +12902,22 @@ msgstr "" "ما تعلمته من إعادة بناء Touhou عن النماذج العامة والمتخصصة، وعن تعلم اقتراح " "فرضيات أفضل من ملاحظات المترجم البرمجي." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "في هذه الصفحة" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "النماذج والهندسة العكسية مقال" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "تجارب إعادة بناء الشيفرة المختارة" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "العودة للأعلى" @@ -12922,7 +12926,7 @@ msgstr "العودة للأعلى" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12933,68 +12937,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}أمثلة عملية{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA دراسات الحالة." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "اندرويد · APK التحليل" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "كيف يقوم المصدق بإنشاء رمز تسجيل الدخول" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "قراءة دراسة حالة Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * ميزة تتبع" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "كيف Notion نسخ النص و هتمل" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "قراءة Notion دراسة حالة" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "مواطن * إعادة الإعمار" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballحساب عموم الصوت" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "قراءة DX-Ball دراسة حالة" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "خيارات الإعداد" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13003,7 +13007,7 @@ msgstr "جهّز جهازك ومساعد البرمجة، واربط REA، ثم #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13015,7 +13019,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13023,7 +13027,7 @@ msgstr "{ph0}1. جهّز جهازك{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13031,7 +13035,7 @@ msgstr "{ph0}2. اختر مساعدًا{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13039,7 +13043,7 @@ msgstr "{ph0}3. اربط REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13047,18 +13051,18 @@ msgstr "{ph0}4. جرّب فحص برنامج{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}أهداف وأدوات تحليل أخرى{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. جهّز جهازك" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13067,7 +13071,7 @@ msgstr "" "استخدم الجهاز الذي توجد عليه ملفات البرنامج المراد فحصه. يستطيع مساعد " "البرمجة المحلي قراءة هذه الملفات وتشغيل الأدوات لك." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13078,7 +13082,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13089,7 +13093,7 @@ msgstr "{ph0}نزّل مثبت Node.js{ph1} إذا لم يتوفر winget." #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13100,17 +13104,17 @@ msgstr "" "this system\"{ph1} عند تشغيل {ph2}، فاستخدم {ph3} بدلًا منه. ولـ npm، استخدم" " {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "أنشئ مجلد عمل لمساعدك" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "في الطرفية، أنشئ مجلدًا لهذا التمرين ثم انتقل إليه:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13119,12 +13123,12 @@ msgstr "" "اترك هذه الطرفية مفتوحة للخطوة التالية. إذا كان لديك مجلد عمل بالفعل، فافتحه" " بدلًا من إنشاء مجلد جديد." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. اختر مساعد برمجة" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13133,12 +13137,12 @@ msgstr "" "مساعدك هو الذكاء الاصطناعي الذي تتحدث إليه. يزوّده REA بأدوات الفحص. اختر " "أحد التطبيقات أدناه؛ افتح تعليماته إذا لم تستخدمه من قبل." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · استخدم حساب ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13149,39 +13153,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}تثبيت Codex وتسجيل الدخول{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor أو Windsurf أو VS Code · استخدم محررًا" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "ثبّت المحرر المناسب لنظام تشغيلك وسجّل الدخول." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "افتح مجلد rea-work الذي أنشأته في الخطوة 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · استخدم حساب Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "ثبّته بالأمر المناسب لنظام تشغيلك:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13194,13 +13198,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}تثبيت Claude Code وخيارات الحساب{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · استخدم محادثة سطح المكتب" @@ -13210,7 +13214,7 @@ msgstr "Claude Desktop · استخدم محادثة سطح المكتب" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13220,7 +13224,7 @@ msgstr "{ph0}تنزيل Claude Desktop{ph1} · {ph2}تفاصيل ربط Claude D #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13232,19 +13236,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}تثبيت OpenCode وإعداد النموذج{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "جميع التطبيقات المدعومة ومعرّفات الإعداد" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13254,12 +13258,12 @@ msgstr "" "يدعم إصدار npm 6.4.0 التطبيقات أدناه. استخدم المعرّف مع {ph0} عند اختيار " "تطبيق محدد." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "التطبيق" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "معرّف الإعداد" @@ -13269,7 +13273,7 @@ msgstr "معرّف الإعداد" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13288,7 +13292,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13297,13 +13301,13 @@ msgid "" msgstr "" "{ph0}إعداد التطبيقات وحل المشكلات{ph1} · {ph2}التوفر في الإصدارات{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · اربطه على الجهاز المستضاف الذي يعمل عليه" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13316,29 +13320,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}تعليمات موصل Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. اربط REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "انسخ هذا الطلب إلى مساعد البرمجة لديك:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "لاختيار تطبيق محدد، أضف معرّف إعداده:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13349,7 +13353,7 @@ msgstr "" "إذا طلب npm تنزيل الحزمة، فاكتب {ph0} واضغط Enter. في قائمة تطبيقات REA، " "تنقّل بمفاتيح الأسهم، واضغط Space لتحديد تطبيقك وEnter للمتابعة." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13358,7 +13362,7 @@ msgstr "" "MCP هو الاتصال الذي يتيح لمساعدك استدعاء REA. وتزوّده المهارة بخطوات عمل " "لفحص البرامج." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13369,7 +13373,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13378,19 +13382,19 @@ msgid "" msgstr "" "استبدل {ph0} بمعرّف إعداد تطبيقك. يعرض الفحص الناجح {ph1}. ثم اسأل مساعدك:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "تحقق من اتصال REA واعرض أدوات REA التي يمكنك استخدامها." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. جرّب أول فحص لك" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13401,7 +13405,7 @@ msgstr "" "المثال هو ملف ستة Electron التطبيق مع {ph0}ملاحظات التصدير{ph1} زر. وكيلك " "يمكن فحص التعليمات البرمجية الخاصة به دون تثبيت أو إطلاق Electron." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "مساعد البرمجة" @@ -13415,7 +13419,7 @@ msgstr "مساعد البرمجة" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13428,7 +13432,7 @@ msgstr "" "على ما يحدث عند النقر فوق تصدير الملاحظات. أظهر أين {ph4} هو مكتوب ، والحقول" " التي يحتوي عليها ، والملفات والخطوط ذات الصلة.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ابحث عن شرح قصير مع مراجع الملفات والخط:" @@ -13437,7 +13441,7 @@ msgstr "ابحث عن شرح قصير مع مراجع الملفات والخط: #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13450,13 +13454,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}اختبر توقعًا في التمرين الموجّه ←{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "نزّل المثال بنفسك أو استخدم تطبيقك" @@ -13464,14 +13468,14 @@ msgstr "نزّل المثال بنفسك أو استخدم تطبيقك" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}نزّل ملف ZIP للمثال{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13482,7 +13486,7 @@ msgstr "" "الطريق إلى {ph0} المجلد ونفس سؤال التصدير." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13492,12 +13496,12 @@ msgstr "" "استخدم REA لفحص التطبيق الموجود في {ph0}. اعثر على طريقة تصديره للبيانات، " "واعرض الملفات والأسطر ذات الصلة." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "حلّل نوعًا آخر من البرامج" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13506,12 +13510,12 @@ msgstr "" "اختر القسم المناسب لما تريد فحصه. موفر التحليل هو الأداة المحلية التي " "يستخدمها REA لتحليل هذا النوع من البرامج." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "الملفات التنفيذية والمكتبات الأصلية · Hopper أو Ghidra أو IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13520,47 +13524,47 @@ msgstr "" "ثبّت أداة تحليل واحدة على الجهاز الذي يشغّل REA. المضيف هو نظام تشغيلك، " "والهدف هو البرنامج الذي تريد فحصه." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "أداة التحليل" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "غير متاح" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "التوزيعات المدعومة" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · تجريبي" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "أنماط التشغيل المتحقق منها" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "نمط تشغيل دون واجهة رسومية متحقق منه" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "راجع دليل أداة التحليل" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · دع الإعداد يثبّته أو يربطه" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13571,7 +13575,7 @@ msgstr "" "التجريبي أو فعّل ترخيصك عندما يفتح Hopper لأول مرة. على Linux، يجهّز الإعداد" " النسخة التجريبية المدعومة وشاشتها الخاصة." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13581,7 +13585,7 @@ msgstr "" "وCachyOS أو Omarchy. Hopper برنامج تجاري؛ للنسخة التجريبية حدود تحددها " "الشركة المنتجة." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13594,18 +13598,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}إعداد Hopper وحل المشكلات{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · ثبّت أداة التحليل المجانية وJava" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13615,7 +13619,7 @@ msgstr "" "المطابقة لمعمارية جهازك." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13628,7 +13632,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13644,7 +13648,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13652,7 +13656,7 @@ msgstr "{ph0}تنزيل JDK{ph1} · {ph2}تنزيل Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13662,7 +13666,7 @@ msgstr "" "تحقق من Java. يعرض الأمر الأول {ph0}؛ استخدم ذلك المجلد لـ {ph1}. ويتحقق " "الأمر الثاني من تثبيت المترجم:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13679,7 +13683,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13689,12 +13693,12 @@ msgstr "" "{ph0}إعداد Ghidra ومتطلبات المعمارية{ph1} · {ph2}دليل Ghidra على " "Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · اربط نسخة مثبتة لديك" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13705,7 +13709,7 @@ msgstr "" " يكون الملف الثنائي الأصلي مفتوحًا فيها، أو مشرفًا دون واجهة رسومية يفتح " "قاعدة بيانات خاصة." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13717,7 +13721,7 @@ msgstr "" "Professional 9.1. لجسر الواجهة الرسومية الأصلي الاختياري متطلبات إصدار ومنصة" " خاصة به." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13729,13 +13733,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}أنماط IDA وأمثلة التسجيل والمنصات المتحقق منها{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -13746,18 +13750,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}اتبع مثالًا للتحليل الأصلي{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "مواقع الويب وAndroid و.NET والبرامج الثابتة وغيرها" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -13766,110 +13770,110 @@ msgstr "" "افتح دليل النوع الذي تريد فحصه. يوضح كل دليل الأدوات الإضافية والأنظمة " "المضيفة المدعومة والأمر الأول." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "الهدف" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "أدوات ينبغي تجهيزها" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "الدليل" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}افتح الدليل{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "موقع ويب" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / الحزم" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "جهاز Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "موارد Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "مشروع JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "البرامج الثابتة" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / تعطل Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "الإشارات المنطقية" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "سلوك العمليات" @@ -13885,7 +13889,7 @@ msgstr "سلوك العمليات" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13895,18 +13899,18 @@ msgstr "" "{ph0}دليل Flutter{ph1} · {ph2}الحزم والموارد{ph3} · {ph4}بايت كود EVM{ph5} ·" " {ph6}جميع أدلة الفحص{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "استخدم REA من الطرفية" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "أوامر CLI والتثبيت العام وcurl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13916,14 +13920,14 @@ msgstr "" "استبدل {ph0} باسم دالة أو عنوانها من قائمة دوال الهدف. يجب إعداد Ghidra " "أولًا." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " "Node.js:" msgstr "على macOS أو Linux، يمكنك أيضًا استخدام مثبت curl بعد تجهيز Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -13932,12 +13936,12 @@ msgstr "" "استخدم فحص التطبيق في الخطوة 3 مع معرّف إعدادك. في المحررات، فعّل REA في " "إعدادات MCP واسمح باستخدام أدواته في محادثة المساعد." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows وWSL والمسارات التي تحتوي على مسافات" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -13948,17 +13952,17 @@ msgstr "" "يعمل داخل WSL، فثبّت Node.js وREA داخل بيئة Linux تلك واستخدم مسارات Linux " "فيها. تعمل موفرات التحليل دون واجهة رسومية على الجهاز نفسه الذي يشغّل REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "أمر إعداد Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "تحديث REA أو إزالته" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -13969,7 +13973,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13983,52 +13987,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}تفاصيل التحديث والإزالة{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "نسخ أمر إعداد REA على Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "نسخ الأمر" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "نسخة ملاحظات التحقيق الفوري" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14038,12 +14042,12 @@ msgstr "" "ثبّت curl وunzip أولًا إن لم يكونا موجودين. على Debian أو Ubuntu، شغّل " "{ph0}؛ وعلى التوزيعات الأخرى، استخدم مدير الحزم لديك." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "أغلق الطرفية، ثم افتحها مجددًا ونفّذ:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14058,7 +14062,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14068,19 +14072,19 @@ msgstr "" "{ph0}إعداد Cursor{ph1} · {ph2}إعداد Windsurf / Devin Desktop{ph3} · " "{ph4}إعداد VS Code وCopilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · اختر نموذج ذكاء اصطناعي" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "جهّز ملف تسجيل IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14095,7 +14099,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14108,7 +14112,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14120,22 +14124,22 @@ msgstr "" "و{ph2} الاختيارية من تسجيله العامل إلى الملف. افتح الملف الثنائي الأصلي في " "IDA وابدأ الملحق الأصلي قبل أن تطلب من REA فحصه." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "قاعدة بيانات SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "بايت كود EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "ثبّت Codex بالأمر المناسب لنظام تشغيلك:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14144,7 +14148,7 @@ msgstr "بعد التثبيت، أعد فتح الطرفية وعد إلى مج #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14154,12 +14158,12 @@ msgstr "" "للتثبيت لأول مرة، نزّل {ph0}مثبت Node.js 24 LTS لـ macOS ‏(.pkg){ph1}، " "وافتحه واتبع التعليمات. ثم أعد فتح Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "هل تستخدم Homebrew بالفعل؟" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14170,7 +14174,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14180,7 +14184,7 @@ msgstr "" "راجع الخطة ووافق عليها، ثم أعد فتح Claude و{ph0}تحقق من الاتصال في الخطوة " "3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14190,12 +14194,12 @@ msgstr "" "استبدل المسارين بمساري نسختيك المثبتتين. عند تثبيت نسخة جديدة على macOS أو " "Linux arm64، ابنِ أداة فك الترجمة الأصلية لجهازك قبل المتابعة." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "ابنِ أداة فك الترجمة الأصلية لـ Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14208,7 +14212,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14218,7 +14222,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14228,19 +14232,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · تعليمات البناء الأصلي{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "ثم افحص Ghidra واحفظ مساراته لتطبيق المساعد:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14248,13 +14252,13 @@ msgstr "لماذا تعطي الآلة الحاسبة 220 عند حساب {ph0} #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}كيف تعمل{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14263,22 +14267,22 @@ msgstr "" "اسأل وكيل البرمجة عن تطبيق أو لعبة أو موقع. تمنحه REA الأدوات لفحص الكود " "الذي يفسر الإجابة." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "ابدأ هنا" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "شاهد مثالًا ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "كيف تعمل" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14288,61 +14292,61 @@ msgstr "" "الهندسة العكسية هي فهم كيفية عمل البرمجيات عبر فحص البرنامج نفسه. مع REA، " "يستطيع وكيلك تتبّع الكود وشرح ميزة ومساعدتك على إعادة بنائها." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "اسأل عن ميزة واحدة" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "أعطِ وكيلك برنامجًا أو صفحة واطرح سؤالًا." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "افحص البرنامج" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "تعيد REA الكود والمراجع والملاحظات أثناء التشغيل." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "افهمها ثم جرّب تعديلًا" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "يستخدم وكيلك النتائج لشرح الميزة أو إعادة بنائها." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "تتبّع التعليمات خطوة بخطوة" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "اطرح السؤال نفسه على وكيلك" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "تبدأ في 6. إضافة 0.001 كل تحديث دون تصادم ، في حين أن السرعة أقل 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "" "استكشف ميزة في تطبيق أو لعبة منشورة، مع الكود والنتائج التي جرى التحقق منها." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14351,7 +14355,7 @@ msgstr "" "تتبّع رمز تسجيل الدخول المكوّن من ستة أرقام في ملف APK المنشور لتطبيق Aegis،" " ثم حرّك الساعة التجريبية لترى سبب تغيّره كل 30 ثانية." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14360,7 +14364,7 @@ msgstr "" "تتبّع JavaScript المضمّن في Notion وصولًا إلى حافظة النظام، وشاهد كيف يحافظ " "النسخ على بيانات الكتل الغنية." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14369,12 +14373,12 @@ msgstr "" "استخلص كيف يتحول موضع الكرة إلى صوت يمينًا أو يسارًا في لعبة Windows من عام " "1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "اختر هدفك." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14383,7 +14387,7 @@ msgstr "تغطي هذه الأدلة الإعداد وأول استقصاء لك #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14401,13 +14405,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مثال موجه * الموقع" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "نعم ، هذا واحد." @@ -14420,7 +14424,7 @@ msgstr "نعم ، هذا واحد." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14433,7 +14437,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مثال موجه * إعادة #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14446,18 +14450,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}انظر ال DX-Ball دراسة حالة case{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "نسخ موجه مشروع موقع الويب" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "نسخة لعبة إعادة الإعمار موجه" @@ -14469,7 +14473,7 @@ msgstr "نسخة لعبة إعادة الإعمار موجه" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14481,7 +14485,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14489,30 +14493,30 @@ msgstr "{ph0}دراسات الحالة →{ph1} — استقصاءات وعرو #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}المدوّنة →{ph1} — أساليب وملاحظات عن إعادة البناء." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "شاهد الاستقصاء الكامل للآلة الحاسبة" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "جرّب مشروعًا أكبر" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "لنجرب مثالين: تغيير سرعة لعبة، ثم إعادة بناء زر % في الحاسبة." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14521,7 +14525,7 @@ msgstr "" "تزداد سرعة اللعبة كلما واصلت الجري. لإعادة بنائها مع إمكانية ضبط السرعة، " "علينا أولًا معرفة كيف تتغير السرعة." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. اسأل عن السرعة" @@ -14534,7 +14538,7 @@ msgstr "1. اسأل عن السرعة" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14542,12 +14546,12 @@ msgid "" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مثال على سؤال · لعبة الديناصور" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. اعثر على قاعدة السرعة" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14556,12 +14560,12 @@ msgstr "" "يتيح REA للوكيل قراءة كود اللعبة أثناء تشغيلها. تبدأ السرعة من 6 وتزيد " "قليلًا مع كل تحديث ما دامت أقل من 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. العب النتيجة" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14570,7 +14574,7 @@ msgstr "" "أعدنا بناء هذه القاعدة في اللعبة المصغرة أدناه وأضفنا شريطًا لضبط السرعة. " "ابدأ اللعب، ثم اختر سرعتك." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14579,7 +14583,7 @@ msgstr "" "فعّل JavaScript للعب. لا يزال بإمكانك قراءة القاعدة وفتح الكود المصدري " "أدناه." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14587,7 +14591,7 @@ msgid "" msgstr "" "يعمل زر % بشكل مختلف بعد + و×. لنعثر على القاعدتين ونجربهما في حاسبة صغيرة." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. اسأل عن زر %" @@ -14600,18 +14604,18 @@ msgstr "1. اسأل عن زر %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مثال على سؤال · الحاسبة" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. اعثر على القاعدتين" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14619,19 +14623,19 @@ msgid "" msgstr "" "يساعد REA الوكيل على قراءة الكود وراء زر %. يطبق الكود قاعدتين مختلفتين:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. جرّب زر %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "أعدنا بناء القاعدتين أدناه. اختر + أو ×، واضغط %، ثم =." #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14639,7 +14643,7 @@ msgstr "{ph0}اقرأ الأسئلة الشائعة{ph1} — الإعداد وا #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14647,13 +14651,13 @@ msgstr "{ph0}انضم إلى Discord{ph1} — احصل على المساعدة #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — أبلغ عن خلل أو اطلب ميزة." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "الإعداد لمنصتك:" @@ -14661,14 +14665,14 @@ msgstr "الإعداد لمنصتك:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "خيارات تثبيت أخرى: {ph0}{ph1} ←{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14681,7 +14685,7 @@ msgstr "اتبع تعليمات الإعداد لربط وكيلك. إذا لم #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14695,7 +14699,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14706,7 +14710,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14717,7 +14721,7 @@ msgstr "" "Linux، أمر الإعداد الافتراضي هو {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14728,67 +14732,67 @@ msgstr "" "استخدم REA مع أداة التحليل التي أعددتها لفحص {ph0}. اعرض الدوال والنصوص، ثم " "اشرح الجزء الذي يعالج مدخلات المستخدم مع الإشارة إلى الكود." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "المساهمون" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "تخطي إلى المحتوى" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}الرئيسية{ph1} / المساهمون" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "نبنيه معًا." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "شكرًا لكل من يساعد في تحسين REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -14796,22 +14800,22 @@ msgid "" msgstr "" "البرمجة والتوثيق والاختبارات والترجمة والأفكار — هناك طرق كثيرة للمساهمة." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "كيفية المساهمة" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "انضم إلى النقاش →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "المساهمون" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "البحث عن مساهم" @@ -14819,13 +14823,13 @@ msgstr "البحث عن مساهم" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "من {ph0}قائمة المساهمين على GitHub{ph1} · آخر تحديث: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "لا يوجد مساهمون مطابقون. جرّب اسم مستخدم آخر." @@ -14841,12 +14845,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "تعرّف على من يساهمون في REA بالبرمجة والتوثيق والاختبارات والأفكار." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "اسم المستخدم على GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "العودة للأعلى" diff --git a/website/locales/bn/messages.po b/website/locales/bn/messages.po new file mode 100644 index 00000000000..4eefb43bf15 --- /dev/null +++ b/website/locales/bn/messages.po @@ -0,0 +1,15646 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: REA website\n" +"Language: bn\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:113 +msgctxt "page:blog/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 +msgctxt "shared" +msgid "Showcases" +msgstr "শোকেস" + +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 +msgctxt "shared" +msgid "Blog" +msgstr "ব্লগ" + +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 +msgctxt "shared" +msgid "Get started" +msgstr "শুরু করুন" + +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 +msgctxt "shared" +msgid "Guides" +msgstr "গাইড" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/index.html:205 +#, python-brace-format +msgctxt "page:blog/index.html" +msgid "{ph0}Home{ph1} / Blog" +msgstr "{ph0}হোম{ph1} / ব্লগ" + +#: website/public/blog/index.html:206 +msgctxt "page:blog/index.html" +msgid "Blog." +msgstr "ব্লগ।" + +#: website/public/blog/index.html:207 +msgctxt "page:blog/index.html" +msgid "Thoughts on reverse engineering." +msgstr "Reverse engineering নিয়ে ভাবনা।" + +#. {ph0}:
+#: website/public/blog/index.html:225 +#, python-brace-format +msgctxt "page:blog/index.html" +msgid "Game reconstruction{ph0}Essay" +msgstr "গেম পুনর্গঠন{ph0}প্রবন্ধ" + +#: website/public/blog/index.html:227 +msgctxt "page:blog/index.html" +msgid "The industrial revolution in reverse engineering" +msgstr "Reverse engineering-এ শিল্প বিপ্লব" + +#: website/public/blog/index.html:228 +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 "" +"ম্যানুয়াল RE এবং TH08, TH095 ও TH04 পুনর্গঠনের অভিজ্ঞতা আমাকে agent, যাচাই " +"এবং প্রজেক্ট থেকে প্রজেক্টে জমতে থাকা জ্ঞান সম্পর্কে যা শিখিয়েছে।" + +#: website/public/blog/index.html:218 website/public/blog/index.html:233 +msgctxt "page:blog/index.html" +msgid "Read the article" +msgstr "লেখাটি পড়ুন" + +#: website/public/blog/index.html:236 +msgctxt "page:blog/index.html" +msgid "By N0zoM1z0 · 10 October 2026" +msgstr "লিখেছেন N0zoM1z0 · 10 অক্টোবর 2026" + +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 +msgctxt "shared" +msgid "Source" +msgstr "সোর্স" + +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 +msgctxt "shared" +msgid "MIT license" +msgstr "MIT license" + +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 +msgctxt "shared" +msgid "Join the community" +msgstr "কমিউনিটিতে যোগ দিন" + +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 +msgctxt "shared" +msgid "Follow us on X" +msgstr "X-এ আমাদের ফলো করুন" + +#. {ph0}: +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 +#, 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 ব্লগ — Reverse Engineering নিয়ে ভাবনা" + +#: website/public/blog/index.html:7 +msgctxt "page:blog/index.html" +msgid "" +"Thoughts on reverse engineering, drawing on practical experience with REA " +"and AI agents." +msgstr "" +"REA ও AI agent নিয়ে হাতে-কলমে অভিজ্ঞতার আলোকে reverse engineering নিয়ে " +"ভাবনা।" + +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 +msgctxt "shared" +msgid "" +"REA — Find out how software works. Reverse engineering with your coding " +"agent." +msgstr "" +"REA — সফটওয়্যার কীভাবে কাজ করে তা জানুন। আপনার coding agent-এর সঙ্গে " +"reverse engineering।" + +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 +msgctxt "shared" +msgid "REA home" +msgstr "REA হোম" + +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 +msgctxt "shared" +msgid "Main navigation" +msgstr "প্রধান নেভিগেশন" + +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 +msgctxt "shared" +msgid "REA on GitHub" +msgstr "GitHub-এ REA" + +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 +msgctxt "shared" +msgid "Join REA on Discord" +msgstr "Discord-এ REA-তে যোগ দিন" + +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 +msgctxt "shared" +msgid "Follow REA on X" +msgstr "X-এ REA ফলো করুন" + +#: website/public/blog/index.html:256 +msgctxt "page:blog/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/blog/touhou-reconstruction/index.html:113 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:205 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" +msgstr "{ph0}হোম{ph1} / {ph2}ব্লগ{ph3} / Touhou পুনর্গঠন" + +#: website/public/blog/touhou-reconstruction/index.html:209 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Essay · Touhou reconstruction" +msgstr "প্রবন্ধ · Touhou পুনর্গঠন" + +#: website/public/blog/touhou-reconstruction/index.html:210 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "The industrial revolution in reverse engineering." +msgstr "Reverse engineering-এ শিল্প বিপ্লব।" + +#: website/public/blog/touhou-reconstruction/index.html:211 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "By N0zoM1z0 · 10 October 2026" +msgstr "লিখেছেন N0zoM1z0 · 10 অক্টোবর 2026" + +#: website/public/blog/touhou-reconstruction/index.html:213 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Takeaway" +msgstr "মূল কথা" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:215 +#, 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}অনুসন্ধানের স্বাধীনতা agent-কে দিন।{ph1} একটি স্পষ্ট লক্ষ্য ও " +"গ্রহণযোগ্যতার মানদণ্ড ঠিক করে দিন, তারপর পরের পদক্ষেপ কী হবে তা agent-কে ঠিক" +" করতে দিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:220 +#, 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}Repository ও Git-কে কাজের স্মৃতি হিসেবে ব্যবহার করুন।{ph1} যুক্তিগুলো " +"কোডের সঙ্গেই রাখুন। Git checkpoint থাকলে কথোপকথন শেষ হওয়ার পরও পরের session" +" কাজটি এগিয়ে নিতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:225 +#, 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}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:230 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}Test the oracle too.{ph1} Try cases it should reject. If it misses a " +"bug, revisit the earlier results that depended on it." +msgstr "" +"{ph0}Oracle-কেও পরীক্ষা করুন।{ph1} যে case-গুলো তার বাতিল করার কথা, সেগুলো " +"চালিয়ে দেখুন। সে কোনো bug ধরতে না পারলে, তার ওপর নির্ভর করা আগের ফলাফলগুলো " +"আবার দেখুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:235 +#, 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:247 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "How experience compounds" +msgstr "অভিজ্ঞতা কীভাবে জমে ওঠে" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:248 +#, 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:336 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Autonomy" +msgstr "স্বাধীনতা" + +#: website/public/blog/touhou-reconstruction/index.html:337 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Agent" +msgstr "Agent" + +#. {ph0}:
+#: website/public/blog/touhou-reconstruction/index.html:338 +#, 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:341 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Verification" +msgstr "যাচাই" + +#: website/public/blog/touhou-reconstruction/index.html:342 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Oracle" +msgstr "Oracle" + +#. {ph0}:
+#: website/public/blog/touhou-reconstruction/index.html:343 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Test against a{ph0}concrete reference." +msgstr "একটি সুনির্দিষ্ট reference-এর{ph0}সঙ্গে পরীক্ষা করুন।" + +#: website/public/blog/touhou-reconstruction/index.html:346 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Repository" +msgstr "Repository" + +#: website/public/blog/touhou-reconstruction/index.html:347 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Working memory" +msgstr "কাজের স্মৃতি" + +#. {ph0}:
+#: website/public/blog/touhou-reconstruction/index.html:348 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Code, evidence,{ph0}checks and lessons." +msgstr "কোড, প্রমাণ,{ph0}যাচাই ও শিক্ষা।" + +#. {ph0}:
+#. {ph1}: +#. {ph2}: +#: website/public/blog/touhou-reconstruction/index.html:350 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" +msgstr "অমিল{ph0}{ph1}অনুমান সংশোধন করুন{ph2}" + +#. {ph0}:
+#. {ph1}: +#. {ph2}: +#: website/public/blog/touhou-reconstruction/index.html:353 +#, 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:356 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Reuse" +msgstr "পুনর্ব্যবহার" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:357 +#, 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:369 +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:376 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "In this article" +msgstr "এই লেখায়" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:378 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}August 2026{ph1}" +msgstr "{ph0}আগস্ট 2026{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:379 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}TH08: the continuation{ph1}" +msgstr "{ph0}TH08: ধারাবাহিকতা{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:380 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}Two approaches{ph1}" +msgstr "{ph0}দুটো দৃষ্টিভঙ্গি{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:381 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}TH095: compounding{ph1}" +msgstr "{ph0}TH095: জমে ওঠা{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:382 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}TH04: across architectures{ph1}" +msgstr "{ph0}TH04: architecture পেরিয়ে{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:383 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}From exact to readable{ph1}" +msgstr "{ph0}হুবহু থেকে সহজপাঠ্য{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:386 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}The industrial shift{ph1}" +msgstr "{ph0}শিল্পের রূপান্তর{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:387 +#, 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:392 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "What changed in August 2026" +msgstr "আগস্ট 2026-এ কী বদলেছিল" + +#: website/public/blog/touhou-reconstruction/index.html:393 +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 "" +"এই কাজের আগে আমি প্রচুর ম্যানুয়াল reverse engineering করেছি। একটা function " +"ততক্ষণ খুঁটিয়ে দেখতাম যতক্ষণ না একটা ব্যাখ্যা পাই, তারপর সেই ব্যাখ্যা " +"প্রোগ্রামের সঙ্গে মিলিয়ে দেখতাম। আরও এগোতে হলে পরের function-এর পেছনে নিজের" +" আরও সময় দিতে হতো। আর মাথার ভেতরে ক্রমেই বড় হতে থাকা একটা ছবিও ধরে রাখতে " +"হতো।" + +#: website/public/blog/touhou-reconstruction/index.html:400 +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 "" +"আমার RE-এর বেশিরভাগ কাজ গেম নিয়ে। আমি গেমগুলো পুনর্গঠন করি যাতে তাদের আচরণ " +"বোঝা যায় এবং একসময় সেটি কোনো port বা mod-এ নিয়ে যাওয়া যায়। এই লেখার " +"পেছনে সেই অভিজ্ঞতাই। পদ্ধতিটি অন্য ক্ষেত্রেও কাজে লাগতে পারে, তবে প্রতিটি " +"ক্ষেত্রকে আগে ঠিক করতে হবে কোন নির্ভরযোগ্য reference-এর সঙ্গে সে মিলিয়ে " +"দেখতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:407 +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-এ আমি agent-চালিত RE নিয়ে গুরুত্বের সঙ্গে অন্বেষণ শুরু করি। " +"দেখতে চেয়েছিলাম, প্রোগ্রাম এবং সাধারণ development টুল হাতে পেলে একটি agent " +"কতদূর যেতে পারে। সেটা খুঁজে দেখার জন্য Touhou পুনর্গঠন আমাকে একটা বড়সড় " +"প্রজেক্ট দিল।" + +#: website/public/blog/touhou-reconstruction/index.html:413 +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 "" +"শুরুর অগ্রগতি ছিল চমকে দেওয়ার মতো। প্রতিটি পদক্ষেপ আমাকে বেছে না দিলেও একটি" +" অনুসন্ধান এগিয়ে চলতে পারত। একটি তুলনা ব্যর্থ হলে agent হয়তো অন্য একটি " +"caller-এর দিকে যেত। সে একটা ছোট diagnostic লিখে তার ফলাফল দেখে ঠিক করতে পারত" +" এরপর কী চেষ্টা করবে। সেই স্বাধীনতা দেওয়াটা পার্থক্য গড়ে দিয়েছিল: " +"প্রজেক্টের দিকনির্দেশনা এবং এর যাচাইগুলো বিশ্বাসযোগ্য কি না — এসবে আমি আরও " +"বেশি মনোযোগ দিতে পারছিলাম।" + +#: website/public/blog/touhou-reconstruction/index.html:422 +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:429 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "TH08: building on human work" +msgstr "TH08: মানুষের কাজের ওপর ভিত্তি করে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:430 +#, 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}, Imperishable Night, শুরু হয়েছিল {ph2}GensokyoClub-এর " +"পুনর্গঠনের{ph3} ধারাবাহিকতা হিসেবে। তাদের পাবলিক source আমাকে একটা মজবুত " +"ভিত্তি দিয়েছিল। সঙ্গে ছিল build-সংক্রান্ত জ্ঞান এবং অবদানের একটি ইতিহাস, যা" +" আমি ধারাবাহিক কাজটিতে সংরক্ষণ করেছি।" + +#: website/public/blog/touhou-reconstruction/index.html:439 +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 "" +"Import করা ইতিহাস শেষ হয় 10 আগস্টের পাবলিক checkpoint-এ। আমার স্বতন্ত্র " +"ধারাবাহিক কাজ শুরু হয় 13 আগস্ট। 19 আগস্টের মধ্যে খতিয়ানে শনাক্ত হওয়া " +"1,107টি game function-এর সবগুলোর source রেকর্ড হয়ে যায়।" + +#: website/public/blog/touhou-reconstruction/index.html:444 +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 পুনর্গঠন port commit হয় 24 আগস্ট — ধারাবাহিক কাজ " +"শুরুর মোটামুটি এগারো দিন পরে। এরপর আসে একটি Web সংস্করণ। Native Linux 64-bit" +" release আসে 30 আগস্ট।" + +#: website/public/blog/touhou-reconstruction/index.html:449 +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 "" +"আমাকে যা সবচেয়ে বেশি অবাক করেছিল তা হলো, কাজটি এমন একটি প্রোগ্রামে পৌঁছে " +"গিয়েছিল যা মানুষ চালাতে পারে। সেখানে পৌঁছাতে সমস্যাগুলোকে একটি একক " +"function-এর গণ্ডি পেরিয়ে অনুসরণ করতে হয়েছে। আলাদাভাবে দুটো function ঠিক " +"দেখালেও, যে state ভাগ করে নেওয়ার কথা, তার আলাদা আলাদা কপি তারা ভুলবশত " +"ব্যবহার করতে পারত।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:456 +#, 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 "" +"এর ফলে reference যাচাই কাজের কেন্দ্রে চলে আসে। আমি এগুলোকে বলি " +"{ph0}oracle{ph1}। একটি কোড তুলনা বলে দিতে পারে পুনর্গঠিত function মূল " +"instruction-গুলো পুনরুৎপাদন করছে কি না। একটি runtime যাচাই বলে দিতে পারে " +"চালানো কোনো পথ প্রত্যাশিত state-এ পৌঁছাচ্ছে কি না। Agent একটি ব্যাখ্যা " +"প্রস্তাব করে পরীক্ষা করে; অমিল হলে সে অনুসন্ধানের জন্য সুনির্দিষ্ট কিছু " +"পায়।" + +#: website/public/blog/touhou-reconstruction/index.html:464 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "An exact match with the wrong constant" +msgstr "ভুল constant-সহ হুবহু মিল" + +#: website/public/blog/touhou-reconstruction/index.html:465 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"An oracle is software someone wrote. TH08 gave me a clear reminder of how " +"much can depend on that software." +msgstr "" +"Oracle-ও কারও লেখা সফটওয়্যার। সেই সফটওয়্যারের ওপর কতকিছু নির্ভর করতে পারে," +" TH08 আমাকে তা স্পষ্টভাবে মনে করিয়ে দিয়েছিল।" + +#. {ph0}: 0.0 +#. {ph1}: 128.0 +#: website/public/blog/touhou-reconstruction/index.html:469 +#, 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 "" +"সেপ্টেম্বরে একটি downstream Switch port-এর রিপোর্ট করা bug আমাদের item auto-" +"collection-এ ফিরিয়ে নিয়ে যায়। পুনর্গঠিত source খেলোয়াড়ের power যাচাই " +"করছিল {ph0}-এর সঙ্গে। মূলটি ব্যবহার করত {ph1}, অর্থাৎ সর্বোচ্চ power-এর " +"সীমা।" + +#: website/public/blog/touhou-reconstruction/index.html:475 +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 "" +"স্বাভাবিক power ঋণাত্মক হয় না, তাই পুনর্গঠিত power যাচাইটি কার্যত সবসময়ই " +"পূরণ হয়ে যেত। Collection line-এর ওপরে গেম সর্বোচ্চ power ছাড়াই item টেনে " +"আনতে পারত। শর্তের অন্য ব্যতিক্রমগুলো ঠিক ছিল। শুধু এই একটি constant আচরণ " +"বদলে দিয়েছিল।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:482 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" +msgstr "{ph0}অথচ function-টি আগেই হুবহু তুলনায় উত্তীর্ণ হয়েছিল।{ph1}" + +#: website/public/blog/touhou-reconstruction/index.html:488 +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 "" +"নতুন build-এ একটি constant ভিন্ন address-এ বসতে পারে। তুলনার টুল তা সামলাত " +"মূলটির সঙ্গে মেলানোর আগে compile করা instruction-এর address সমন্বয় করে। " +"কিন্তু reference করা address-এ সংরক্ষিত floating-point মানটি সে কখনো যাচাই " +"করেনি।" + +#. {ph0}: 128.0 +#. {ph1}: 0.0 +#: website/public/blog/touhou-reconstruction/index.html:495 +#, 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 "" +"এতে যাচাইয়ে একটা ফাঁক থেকে গিয়েছিল। Source-এ {ph1} লেখা থাকলেও এটি " +"পুনর্গঠিত instruction-কে মূলটির {ph0}-এর দিকে নির্দেশ করাতে পারত। " +"Instruction byte মিলে যেত। কিন্তু source-এর অর্থ ছিল ভিন্ন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:501 +#, 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 সেপ্টেম্বরের fix{ph1} source সংশোধন করে এবং তুলনাকে reference করা " +"constant-এর আসল byte যাচাই করতে বাধ্য করে। এরপর একটি {ph2}বিস্তৃত audit{ph3}" +" 1,548টি floating-literal reference পরীক্ষা করে। এতে গৃহীত পাঁচটি function " +"জুড়ে আরও বারোটি ভুল reference ধরা পড়ে।" + +#: website/public/blog/touhou-reconstruction/index.html:512 +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 "" +"তুলনাটি এখন এমন প্রতিটি floating literal যাচাই করে। এর test-এ ইচ্ছাকৃতভাবে " +"ভুল মান রাখা হয়েছে, যাতে নিশ্চিত হওয়া যায় সেগুলো বাতিল হচ্ছে। দুর্বল " +"যাচাইয়ে উত্তীর্ণ হওয়া ফলাফলগুলোও আমাদের আবার দেখতে হয়েছে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:517 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}The oracle needed reconstructing too.{ph1} Repairing it was part of " +"repairing the game." +msgstr "" +"{ph0}Oracle-টিকেও পুনর্গঠন করতে হয়েছিল।{ph1} সেটি মেরামত করা ছিল গেমটি " +"মেরামতেরই অংশ।" + +#: website/public/blog/touhou-reconstruction/index.html:521 +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 "" +"দলটি যখন মূলত agent-দের সঙ্গে কাজ করা একজন মানুষ, তখন এটা গুরুত্বপূর্ণ। তারা" +" যে প্রতিটি লাইন লেখে তা আমি নিজে পরীক্ষা করতে পারি না, তাই আমার আস্থার বড় " +"অংশ নির্ভর করে তাদের যাচাইয়ের ওপর। একটি shared oracle-এর অন্ধ জায়গা আমার " +"চোখে পড়ার আগেই অনেক অনুসন্ধানকে প্রভাবিত করতে পারে। Checker আসলে কী যাচাই " +"করে তা আমাকে বুঝতে হয়, এবং যে case-গুলো ব্যর্থ হওয়া উচিত সেগুলো দিয়ে তাকে" +" পরীক্ষা করতে হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:529 +#, 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 "" +"কাজ এগোনোর সঙ্গে সঙ্গে সেই যাচাইগুলো repository-র অংশ হয়ে উঠল। Source " +"পরিবর্তনের কারণ, এবং এমন নোটও — যা দিয়ে পরের কোনো session আগেরটি যেখানে " +"থেমেছিল সেখান থেকে শুরু করতে পারে। {ph0}Repository হয়ে উঠছিল প্রজেক্টের " +"কাজের স্মৃতি।{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:538 +#, 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}একটি সফল batch আমাদের দিত উদ্ধার করা কোড, আর পরের batch-এর জন্য আরও " +"ভালো একটি পরিবেশ।{ph1}" + +#: website/public/blog/touhou-reconstruction/index.html:546 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Two different ideas of reconstruction" +msgstr "পুনর্গঠন নিয়ে দুটো ভিন্ন ধারণা" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:547 +#, 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} এ ধরনের কাজের সঙ্গে তাদের দ্বিমত " +"স্পষ্টভাবে জানায়। নোটিশে ঘোষণা করা হয়েছে যে কাজ শেষ না হওয়া পর্যন্ত " +"পরবর্তী development ব্যক্তিগতভাবে চলবে। একটি অংশে লেখা:" + +#: website/public/blog/touhou-reconstruction/index.html:558 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"The rise of grifters (AI decompilations and ports) in this space taking from" +" our work paints a bad image for future decompilation efforts…" +msgstr "" +"(অনূদিত উদ্ধৃতি) এই ক্ষেত্রে আমাদের কাজ থেকে নিয়ে যাওয়া প্রতারকদের (AI " +"decompilation ও port) উত্থান ভবিষ্যতের decompilation প্রচেষ্টার জন্য একটি " +"খারাপ ভাবমূর্তি তৈরি করছে…" + +#: website/public/blog/touhou-reconstruction/index.html:564 +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 "" +"নোটিশে maintainer-দের ওপর এর মানসিক চাপের কথাও বলা হয়েছে। তাদের " +"contribution policy মূলত AI দিয়ে তৈরি pull request গ্রহণ করে না। তারা কঠিন " +"একটি কাজে নিজেদের অবসর সময় দিয়েছেন, আর সেই কাজই আমার ধারাবাহিক কাজটিকে " +"সম্ভব করে তুলতে সাহায্য করেছে। এর পেছনের পরিশ্রমকে আমি শ্রদ্ধা করি। আমি যে " +"দ্বিমত নিয়ে আলোচনা করতে চাই তা হলো, পুনর্গঠন কীভাবে এগোনো উচিত এবং একটি " +"অবদানকে কীভাবে বিচার করা উচিত।" + +#: website/public/blog/touhou-reconstruction/index.html:573 +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 "" +"আমার চেনা ম্যানুয়াল workflow-এ একটি function বোঝা এবং তা পুনর্গঠন করার " +"দায়িত্ব সাধারণত একই মানুষের ওপর পড়ত। প্রজেক্ট অনেকটাই সেই মানুষের দক্ষতার " +"ওপর নির্ভর করত। অবদানকারীর ওপর আস্থা গুরুত্বপূর্ণ ছিল, কারণ যুক্তির বড় অংশই" +" তৈরি হতো তাঁর কাজের সময়।" + +#: website/public/blog/touhou-reconstruction/index.html:580 +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 "" +"বিদ্যমান প্রজেক্টগুলো আগে থেকেই তাদের source ও build টুলে জ্ঞান সংরক্ষণ করে।" +" আমার জন্য যা বদলেছিল তা হলো, একটি agent সেই জ্ঞান ব্যবহার করে নিজে থেকেই " +"পরের অনুসন্ধানে এগিয়ে যেতে পারত।" + +#: website/public/blog/touhou-reconstruction/index.html:585 +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 "" +"আমার ধারাবাহিক কাজে লক্ষ্য এবং একটি ফলাফল গ্রহণের মানদণ্ড আমি ঠিক করি। " +"অনুসন্ধানে agent-এর ব্যাপক স্বাধীনতা থাকে। এরপর তার প্রস্তাবিত পুনর্গঠনকে " +"প্রাসঙ্গিক যাচাইগুলোতে টিকে থাকতে হয়। আমি চাই, কাজের বেশিরভাগ agent করলেও " +"অন্য একজন মানুষ যেন পরীক্ষা করে দেখতে পারেন আমরা কেন একটি নির্দিষ্ট " +"implementation বেছে নিয়েছি।" + +#: website/public/blog/touhou-reconstruction/index.html:592 +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 "" +"এই রূপান্তর কঠিন হতে পারে। বছরের পর বছরের যত্নশীল কাজ হয়তো এমন একটি " +"ধারাবাহিক কাজের ভিত্তি হয়ে ওঠে, যা অনেক দ্রুত এগোয়। এতে কৃতিত্ব নিয়ে " +"সত্যিকারের প্রশ্ন ওঠে। একটি অবদান গ্রহণের আগে maintainer-দের কী জানা দরকার, " +"সেটিও বদলে যায়।" + +#: website/public/blog/touhou-reconstruction/index.html:598 +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 "" +"শিল্পের উপমাটি এ নিয়ে ভাবতে আমাকে সাহায্য করে। কারুশিল্পে প্রক্রিয়ার বড় " +"অংশ নির্ভর করে যিনি কাজটি করছেন তাঁর দক্ষতার ওপর। যন্ত্র বদলে দেয় সেই " +"দক্ষতা কোথায় দরকার। প্রক্রিয়াটি নকশা করতে এবং এর output কখন ভুল তা চিনতে " +"এখনো কাউকে লাগে। সেই পরিবর্তনের কতটা গ্রহণ করবে, তা বিভিন্ন কমিউনিটি নিজেরাই" +" বেছে নিতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:606 +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}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/blog/touhou-reconstruction/index.html:612 +#, 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}contribution policy{ph3}। উদ্ধৃতিটি সংক্ষিপ্ত অংশের অনুবাদ। " +"TH08-এর {ph4}কৃতিত্ব ও provenance{ph5}-এ ধারাবাহিক কাজের সীমারেখা রেকর্ড করা" +" আছে।" + +#: website/public/blog/touhou-reconstruction/index.html:630 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "TH095: experience starts compounding" +msgstr "TH095: অভিজ্ঞতা জমতে শুরু করে" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:631 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}TH095{ph1}, Shoot the Bullet, made the value of that experience much " +"easier to see. Its repository began on 29 August with zero confirmed game " +"functions in the ledger. We still had to learn the game. But we already knew" +" much more about how to begin a reconstruction and how to keep it moving." +msgstr "" +"{ph0}TH095{ph1}, Shoot the Bullet, সেই অভিজ্ঞতার মূল্য অনেক স্পষ্ট করে " +"দেখিয়েছিল। এর repository শুরু হয় 29 আগস্ট, খতিয়ানে তখন নিশ্চিত game " +"function শূন্য। গেমটি আমাদের তখনো শিখতে হতো। কিন্তু একটি পুনর্গঠন কীভাবে " +"শুরু করতে হয় এবং কীভাবে তাকে এগিয়ে নিতে হয়, তা আমরা আগে থেকেই অনেক বেশি " +"জানতাম।" + +#: website/public/blog/touhou-reconstruction/index.html:639 +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টি game function-এর সবগুলোর source তৈরি" +" হয়ে যায়। 8 সেপ্টেম্বরের মধ্যে 696টি হুবহু তুলনা হিসেবে গৃহীত হয়। 9 " +"সেপ্টেম্বর পুরো প্রোগ্রাম link হয়। 10 সেপ্টেম্বর, শুরুর প্রায় বারো দিন " +"পরে, Windows i386 পুনর্গঠনটিকে খেলার উপযোগী হিসেবে চিহ্নিত করা হয়।" + +#: website/public/blog/touhou-reconstruction/index.html:646 +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:652 +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 আমাদের শিখিয়েছিল জোড়া লাগানো প্রোগ্রামের দিকে শুরু থেকেই নজর " +"দিতে। উদ্ধার করা কয়েকটি function একই state-এর ওপর নির্ভর করলে তাদের আলাদা " +"আলাদা তুলনা একটি গুরুত্বপূর্ণ প্রশ্ন খোলা রেখে দেয়। সেগুলোকে একসঙ্গে কাজ " +"করতে দেখা দরকার। সেই শিক্ষাই TH095-এর whole-program build-এর পদ্ধতি গড়ে " +"তুলতে সাহায্য করেছিল।" + +#: website/public/blog/touhou-reconstruction/index.html:659 +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 "" +"যে শিক্ষা আমার মাথায় থাকে, তা কাজে লাগে যতক্ষণ আমি সেখানে আছি। কিন্তু সেটি " +"যখন এমন একটি যাচাই হয়ে ওঠে যা অন্য session-ও চালাতে পারে, তখন আমি অন্য কাজে" +" চলে যাওয়ার পরও তা সাহায্য করে যেতে পারে। পরের agent সেই ফলাফলে পৌঁছানোর " +"অনুসন্ধান আবার না করেই তা ব্যবহার করতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:665 +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 "" +"Floating-literal bug-টিও সেই স্মৃতির অংশ। এটি ব্যাখ্যা করে কেন একটি " +"reference যাচাই করতে হলে তার পেছনের ডেটাও যাচাই করতে হয়। সংশোধনটি কোডের " +"সঙ্গে রাখলে পরের প্রজেক্টগুলো পুরোনো যাচাইয়ের অন্ধ জায়গাটি " +"উত্তরাধিকারসূত্রে পাওয়া থেকে রক্ষা পায়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:671 +#, 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:679 +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 "" +"একই সুবিধা পান পরে যোগ দেওয়া মানুষেরাও। কাজ এগিয়ে নেওয়ার আগে তাঁরা একটি " +"সিদ্ধান্ত পরীক্ষা করে তার যাচাই আবার চালাতে পারেন। Source কেন এমন দেখায় তা " +"জানতে তাঁদের পুরো প্রজেক্টের ইতিহাস নতুন করে গড়তে হয় না।" + +#: website/public/blog/touhou-reconstruction/index.html:687 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "TH04: the workflow survives a different architecture" +msgstr "TH04: ভিন্ন architecture-এও workflow টিকে থাকে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:688 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}TH04{ph1}, Lotus Land Story, took this work into the PC-98 DOS era. The" +" target was now a 16-bit environment with four cooperating programs. " +"Understanding its hardware behavior required different evidence from the " +"Windows games. Existing {ph2}ReC98 work{ph3} gave us valuable knowledge and " +"source material here too." +msgstr "" +"{ph0}TH04{ph1}, Lotus Land Story, এই কাজকে নিয়ে গেল PC-98 DOS যুগে। টার্গেট" +" এবার চারটি সহযোগী প্রোগ্রামসহ একটি 16-bit environment। এর হার্ডওয়্যারের " +"আচরণ বুঝতে Windows গেমগুলোর চেয়ে ভিন্ন প্রমাণ দরকার ছিল। এখানেও বিদ্যমান " +"{ph2}ReC98-এর কাজ{ph3} আমাদের মূল্যবান জ্ঞান ও source উপকরণ দিয়েছে।" + +#: website/public/blog/touhou-reconstruction/index.html:697 +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 পুনর্গঠন এখন কাজ করছে। আমার ম্যানুয়াল testing-এ আমি সম্পূর্ণ Normal " +"route-গুলো তাদের ending পর্যন্ত খেলেছি এবং save যাচাই করেছি। বর্তমান কাজ হলো" +" একটি native 64-bit port। আগে একটি কার্যকর DOS সংস্করণ দাঁড় করানো সেই " +"port-কে একটি reference দেয়।" + +#: website/public/blog/touhou-reconstruction/index.html:703 +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 "" +"Architecture বদলে দিয়েছিল আমাদের কী অনুসন্ধান করতে হবে। যে compiler ও " +"runtime-এর সঙ্গে আমরা কাজ যাচাই করতাম, সেগুলোও বদলে গিয়েছিল। কিন্তু agent " +"তখনো একটি প্রশ্নকে ফলাফল পর্যন্ত অনুসরণ করতে পারত, এবং সেই ফলাফল দিয়ে পরের " +"পরীক্ষা ঠিক করতে পারত।" + +#: website/public/blog/touhou-reconstruction/index.html:709 +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 "" +"Gameplay থেকে ending-এ যাওয়ার মুহূর্তটির কথা ভাবুন। আমাদের জানতে হবে কোন " +"state সেই সীমানা পেরিয়ে যায় এবং কোন প্রোগ্রাম তার দায়িত্বে। DOS product-" +"এর সঙ্গে মিলিয়ে এটা আমরা অনুসন্ধান করতে পারি। প্রমাণ ও যাচাই হাতে থাকলে " +"একটি agent প্রশ্নটি নিয়ে প্রায় Windows গেমের মতো করেই কাজ করতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:717 +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 গুরুত্বপূর্ণ। প্ল্যাটফর্মের বড় একটি পরিবর্তনও" +" আমাদের নতুন কাজের ধরন নিয়ে শূন্য থেকে শুরু করতে বাধ্য করেনি। Architecture " +"সমস্যাটি নির্ধারণ করেছে; workflow তবুও সমাধানের একটি পথ দিয়েছে।" + +#: website/public/blog/touhou-reconstruction/index.html:723 +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-bit port-এর জন্য আমরা এখন নতুন implementation-কে DOS-এ আগেই উদ্ধার করা " +"আচরণের সঙ্গে মিলিয়ে দেখতে পারি। পুনর্গঠন থেকে পাওয়া জ্ঞান port-কে " +"দাঁড়ানোর একটি ভিত্তি দেয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:728 +#, 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 পুনর্গঠন ও ম্যানুয়াল " +"testing{ph1} · {ph2}64-bit port{ph3}। Port-টি এখনো development-এ আছে।" + +#: website/public/blog/touhou-reconstruction/index.html:741 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "From exact code to readable code" +msgstr "হুবহু কোড থেকে সহজপাঠ্য কোড" + +#: website/public/blog/touhou-reconstruction/index.html:742 +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:746 +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 "" +"আমার কাছে assembly আর raw offset পুরোনো বন্ধুর মতো লাগতে পারে। বুঝি, " +"“সহজপাঠ্য”-র এটা একটু অদ্ভুত সংজ্ঞা। বেশিরভাগ মানুষ executable-এর memory " +"layout মাথায় না রেখেই গেমের logic অনুসরণ করতে চাইবেন।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:752 +#, 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}semantic reconstruction{ph1}। উদ্ধার করা একটি field হয়তো " +"তখনো মূলত তার offset দিয়েই পরিচিত। গেম সেটি কীভাবে ব্যবহার করে তা আমরা " +"অনুসরণ করি, যতক্ষণ না তার ভূমিকা ব্যাখ্যা করতে পারি। তারপর তাকে একটি অর্থবহ " +"নাম এবং প্রমাণের সঙ্গে মানানসই একটি type দিতে পারি। যুক্তিটি আমরা source-এর " +"সঙ্গেই রাখি, যাতে পরের জন দেখতে পান ব্যাখ্যাটি কোথা থেকে এসেছে।" + +#: website/public/blog/touhou-reconstruction/index.html:760 +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 "" +"Port-এর ক্ষেত্রে এটা বিশেষভাবে গুরুত্বপূর্ণ হয়ে ওঠে। একটি absolute address " +"আমাকে বলে পুরোনো executable-এ কোনো কিছু কোথায় ছিল। কিন্তু কোন object-এর সেই" +" state-এর মালিক হওয়া উচিত, তা ঠিক করতে একটি 64-bit implementation-কে এটি " +"সামান্যই সাহায্য করে। আচরণটি নিরাপদে সরাতে হলে পুরোনো memory access-এর " +"পেছনের সম্পর্কটি উদ্ধার করতে হবে।" + +#: website/public/blog/touhou-reconstruction/index.html:767 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "The order I now use is:" +msgstr "এখন আমি যে ক্রম ব্যবহার করি:" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:769 +#, 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} পুনর্গঠিত অংশগুলো ঐতিহাসিক compiler " +"দিয়ে compile করুন। প্রাসঙ্গিক কোড ও ডেটা মূল executable-এর সঙ্গে তুলনা " +"করুন। অমীমাংসিত পার্থক্যগুলো রেকর্ড করুন, যাতে পরের ধাপের একটি স্পষ্ট শুরুর " +"জায়গা থাকে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:776 +#, 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}মূল প্ল্যাটফর্মে build করে খেলা।{ph1} মূল architecture ও compiler " +"ব্যবহার করে অংশগুলোকে আসল প্রোগ্রামে link করুন। গুরুত্বপূর্ণ gameplay পথগুলো" +" চালিয়ে দেখুন। এখানেই shared state বা initialization-এর এমন সমস্যা ধরা " +"পড়ে, যা আলাদা function-এর তুলনায় চোখ এড়িয়ে গিয়েছিল।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:783 +#, 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}দুটো reference-এর সঙ্গে মিলিয়ে semantics পুনর্গঠন।{ph1} একবারে গেমের " +"একটি সুসংগত অংশ নিন এবং তার উদ্ধার করা source-এর অর্থ নিশ্চিত করুন। হুবহু " +"তুলনা এবং খেলার উপযোগী ঐতিহাসিক build অক্ষুণ্ণ রেখে তার উপস্থাপন উন্নত করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:792 +#, 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}আধুনিক port তৈরি।{ph1} প্রতিষ্ঠিত আচরণটি নতুন environment-এ নিয়ে যান, " +"যেমন একটি native 64-bit build। Port কেমন আচরণ করে তা তুলনার জন্য মূল " +"প্ল্যাটফর্মের পুনর্গঠিত গেমটি reference হিসেবে থেকে যায়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:799 +#, 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 "" +"দ্বিতীয় ধাপের খেলার উপযোগী build তৃতীয় ধাপে হয়ে ওঠে একটি {ph0}দ্বিতীয় " +"oracle{ph1}। প্রথম oracle যাচাই করে আমাদের পরিবর্তিত source এখনো প্রাসঙ্গিক " +"মূল কোড ও ডেটা পুনরুৎপাদন করে কি না। দ্বিতীয়টি যাচাই করে পুনর্গঠিত " +"প্রোগ্রাম এখনো build হয় এবং আমরা যে পথগুলো চালাই সেগুলোতে সঠিক আচরণ করে কি " +"না।" + +#: website/public/blog/touhou-reconstruction/index.html:807 +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 "" +"এরা ভিন্ন ভিন্ন ভুল ধরে। Type বদলালে তৈরি হওয়া instruction বদলে যেতে পারে। " +"Ownership বদলালে গেমের দুটো অংশ state-এর আলাদা কপি ব্যবহার করতে পারে। দুটো " +"যাচাই হাতে রাখলে refactor আরও এগোনোর আগেই agent অনুসন্ধানের জন্য একটি " +"সুনির্দিষ্ট ব্যর্থতা পায়।" + +#: website/public/blog/touhou-reconstruction/index.html:814 +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 "" +"একটি নামেরও নিজস্ব প্রমাণ দরকার। হুবহু তুলনা আমাদের বলতে পারে না একটি field " +"সত্যিই “invulnerability time” বোঝায় কি না। গেম সেটি কীভাবে লেখে ও ব্যবহার " +"করে, তা থেকেই আমাদের তা নিশ্চিত করতে হয়। অর্থ অনিশ্চিত থাকলে আত্মবিশ্বাসী " +"অনুমানের চেয়ে একটি নিরপেক্ষ নাম পরের পাঠকের কাছে বেশি সহায়ক।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:821 +#, 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-এর ঐতিহাসিক " +"প্ল্যাটফর্মের কিছু audit-এর আগেই তার খেলার উপযোগী port ছিল। তাতে কিছু ত্রুটি" +" দেখা কঠিন হয়ে গিয়েছিল। {ph0}Factory-র বর্তমান workflow{ph1} মূল " +"প্ল্যাটফর্মের build-কে আগে রাখে, যাতে porting শুরুর আগেই semantic কাজ সেটিকে" +" reference হিসেবে ব্যবহার করতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:832 +#, 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}হুবহু পুনর্গঠন আমাদের একটি reference দেয়। Semantic reconstruction " +"উদ্ধার করা জ্ঞানকে ব্যবহারযোগ্য করে।{ph1} এরপর একটি port দুটোর ওপরই গড়ে " +"উঠতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:841 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "What makes this an industrial shift" +msgstr "কী একে শিল্প-রূপান্তরে পরিণত করে" + +#: website/public/blog/touhou-reconstruction/index.html:842 +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 "" +"এই প্রজেক্টগুলো বদলে দিয়েছে আমি কোথায় মনোযোগ দিই। Agent যখন অনুসন্ধানের " +"বড় অংশ এগিয়ে নিতে পারল, তখন তাদের কাজের পরিবেশ উন্নত করাই হয়ে উঠল আমার " +"করা সবচেয়ে কাজের বিষয়গুলোর একটি। একটি ভালো টুল পরের প্রতিটি function-এ " +"সাহায্য করতে পারত, যেখানে তার দরকার।" + +#: website/public/blog/touhou-reconstruction/index.html:849 +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 "" +"এখানে স্বাধীনতা গুরুত্বপূর্ণ। কাজের পরের পদক্ষেপটি প্রায়ই স্পষ্ট হয় একটি " +"ব্যর্থ পরীক্ষার পরেই। সেই ফলাফলকে অপ্রত্যাশিত কোনো দিকে অনুসরণ করার মতো " +"যথেষ্ট স্বাধীনতা agent-এর দরকার। প্রতিটি পদক্ষেপের জন্য তাকে যদি আমার " +"নির্দেশের অপেক্ষায় থাকতে হয়, তাহলে কাজের বড় অংশ আমার মনোযোগের সঙ্গেই " +"বাঁধা থেকে যায়।" + +#: website/public/blog/touhou-reconstruction/index.html:856 +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 "" +"আমি আশা করি agent ভুল অনুমান করবে। আসল ব্যাপার হলো আমরা সেগুলো পরীক্ষা করে " +"ফলাফল থেকে শিখতে পারি কি না। একটি ব্যর্থ যাচাই তাকে ভুলটা এতটা ভালোভাবে " +"বুঝতে সাহায্য করা উচিত, যাতে সে আবার চেষ্টা করতে পারে। জমে ওঠা প্রমাণ " +"প্রজেক্টের কোনো milestone সমর্থন করে কি না, তা এখনো আমাকেই ঠিক করতে হয়।" + +#: website/public/blog/touhou-reconstruction/index.html:863 +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 agent-কে analysis টুলের নাগাল দেয়। একটি function-এর caller নিয়ে প্রশ্ন" +" সরাসরি সেই caller পরীক্ষায় নিয়ে যেতে পারে। পুনর্গঠন প্রজেক্ট দেয় " +"compiler ও তার নিজস্ব reference যাচাই। সেগুলো দিয়ে agent তার প্রস্তাবিত " +"source পরীক্ষা করতে পারে এবং দেখতে পারে তার ব্যাখ্যা কোথায় টেকে।" + +#: website/public/blog/touhou-reconstruction/index.html:870 +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-এর bug দেখায় কেন এই যাচাইগুলোর নিজস্ব engineering মনোযোগ প্রাপ্য। একই " +"তুলনা যখন শত শত function-এ ব্যবহৃত হয়, তখন তার একটি ফাঁক একটি " +"implementation-এর ভুলের চেয়ে অনেক বেশি দূর ছড়াতে পারে। Checker পরীক্ষা " +"করলে পরের সব কাজের জন্য পাওয়া feedback উন্নত হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:877 +#, 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 "" +"শিল্পের উপমার একটি কাজের ঐতিহাসিক উদাহরণ আছে। Boulton ও Watt engine-এর valve" +" সমন্বয়ে সাহায্যের জন্য {ph0}1796 সালে steam-engine indicator{ph1} চালু " +"করেন। এর রেকর্ড করার একটি সংস্করণ piston stroke জুড়ে চাপ এঁকে রাখত। এতে " +"engine-এর ভেতরের আচরণ পরীক্ষার জন্য উন্মুক্ত হয়ে যেত। আমাদের তুলনার " +"টুলগুলোও একই ধরনের কাজ করে: যন্ত্রটিকে উন্নত করার সময় তা আসলে কী করছে, সেটা" +" পরীক্ষা করতে দেয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:890 +#, 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} অবকাঠামোর বড় অংশ " +"এখনো অপরিণত। আমাদের যাচাইগুলো যে গতির জন্য নকশা করা, agent তার চেয়ে দ্রুত " +"চলতে পারে, তাই প্রক্রিয়াটিকে তাদের সঙ্গে তাল মিলিয়ে বিকশিত হতে হবে। কোনো " +"shared টুলে ত্রুটি পেলে তা মেরামত করতে হবে এবং এর প্রভাব পড়া ফলাফলগুলো আবার" +" দেখতে হবে। তখন পরের প্রজেক্ট আরও শক্তিশালী একটি টুল উত্তরাধিকারসূত্রে পায়।" + +#: website/public/blog/touhou-reconstruction/index.html:900 +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 "" +"যেকোনো একটি কথোপকথনের একটা ব্যবহারিক সীমাও আছে। একটি বড় পুনর্গঠন শেষ হওয়ার" +" আগেই সেটি শেষ হয়ে যাবে। Repository-কে এমনভাবে রাখতে হবে যাতে আগের " +"সিদ্ধান্তের কারণ না হারিয়েই অন্য একটি session কাজ চালিয়ে যেতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:906 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"The {ph0}Touhou Reconstruction Factory{ph1} grew out of that need. It gives " +"projects a shared way to carry their checks and lessons forward. Work on one" +" game can improve the starting conditions for another." +msgstr "" +"{ph0}Touhou Reconstruction Factory{ph1} সেই প্রয়োজন থেকেই গড়ে উঠেছে। এটি " +"প্রজেক্টগুলোকে তাদের যাচাই ও শিক্ষা এগিয়ে নেওয়ার একটি shared উপায় দেয়। " +"একটি গেমের কাজ আরেকটির শুরুর অবস্থা উন্নত করতে পারে।" + +#: website/public/blog/touhou-reconstruction/index.html:916 +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 "" +"এ কারণেই শিল্পের উপমাটি আমার কাছে অর্থবহ। অভিজ্ঞতা এমন টুলের অংশ হতে শুরু " +"করে, যা অন্যরাও ব্যবহার করতে পারেন। সেই টুলগুলো উন্নত করলে পরের মানুষটি — বা" +" পরের agent — কতটা কাজ করতে পারবে, তা বদলে যায়।" + +#: website/public/blog/touhou-reconstruction/index.html:924 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "The projects we can now consider" +msgstr "যে প্রজেক্টগুলোর কথা এখন ভাবা যায়" + +#: website/public/blog/touhou-reconstruction/index.html:925 +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 "" +"গতি গুরুত্বপূর্ণ, কারণ এটি কাজ শুরুর সিদ্ধান্তকে বদলে দেয়। একটি গেম reverse" +" engineer করার জন্য দারুণ আকর্ষণীয় হতে পারে, তবু হয়তো আমি বাস্তবে যতটা " +"মনোযোগ দিতে পারি তার চেয়ে বেশি দাবি করে। অনেক প্রজেক্ট শুধু ভাবনা হয়েই " +"থেকে যেত।" + +#: website/public/blog/touhou-reconstruction/index.html:931 +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 "" +"এখন আমি দেখতে পাই বারবার অনুসন্ধানের মধ্য দিয়ে এমন একটি প্রজেক্টকে কীভাবে " +"এগিয়ে নেওয়া যায়। একটি কার্যকর পুনর্গঠন পেলে port করা বাস্তবসম্মত হয়ে " +"ওঠে। সহজপাঠ্য semantics উদ্ধার করলে অন্য কারও পক্ষে mod নিয়ে অন্বেষণ সহজ " +"হয়। গেমটি বোঝার পরিশ্রম প্রথম সংস্করণ চলার পরও সুফল দিয়ে যেতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/touhou-reconstruction/index.html:938 +#, 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}কী ধরনের নাগাল, " +"feedback ও জমে ওঠা জ্ঞান পেলে একটি agent এতে নির্ভরযোগ্যভাবে কাজ করতে " +"পারবে?{ph1}" + +#: website/public/blog/touhou-reconstruction/index.html:945 +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:953 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Project milestones and sources" +msgstr "প্রজেক্টের milestone ও সূত্র" + +#: website/public/blog/touhou-reconstruction/index.html:954 +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 "" +"তারিখগুলো রেকর্ড করা প্রজেক্ট checkpoint বোঝায়, 10 অক্টোবর 2026-এ পাবলিক " +"GitHub ইতিহাসের সঙ্গে মিলিয়ে দেখা। অতিবাহিত সময় হলো commit-গুলোর মধ্যকার " +"ক্যালেন্ডার সময়। Source-এর উপস্থিতি, হুবহু তুলনা, একটি build এবং একটি " +"runtime ফলাফল — প্রতিটি আলাদা একটি milestone নির্দেশ করে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#. {ph8}: +#. {ph9}: +#. {ph10}: +#. {ph11}: +#: website/public/blog/touhou-reconstruction/index.html:962 +#, 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 আগস্টের source " +"খতিয়ান{ph5}, {ph6}24 আগস্টের Linux port{ph7}, {ph8}26 আগস্টের Web " +"সংস্করণ{ph9} এবং {ph10}30 আগস্টের 64-bit Linux release{ph11}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#. {ph8}: +#. {ph9}: +#. {ph10}: +#. {ph11}: +#: website/public/blog/touhou-reconstruction/index.html:985 +#, 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 সেপ্টেম্বরের " +"source খতিয়ান{ph5}, {ph6}8 সেপ্টেম্বরের তুলনা{ph7}, {ph8}9 সেপ্টেম্বরের " +"linkage{ph9} এবং {ph10}10 সেপ্টেম্বরের খেলার উপযোগী build-এর রেকর্ড{ph11}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:1008 +#, 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 " +"পুনর্গঠন, maintainer-এর সম্পূর্ণ Normal-route testing এবং বর্তমান 64-bit " +"পর্যায়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/blog/touhou-reconstruction/index.html:1017 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}TH08 oracle correction:{ph1} {ph2}the reported auto-collection " +"bug{ph3}, {ph4}the source and comparison fix{ph5}, and {ph6}the full " +"floating-literal audit{ph7}." +msgstr "" +"{ph0}TH08 oracle সংশোধন:{ph1} {ph2}রিপোর্ট করা auto-collection bug{ph3}, " +"{ph4}source ও তুলনার fix{ph5} এবং {ph6}পূর্ণ floating-literal audit{ph7}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/blog/touhou-reconstruction/index.html:1031 +#, 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}Semantic reconstruction:{ph1} {ph2}TH08-এর readability playbook{ph3} " +"এবং {ph4}Factory-র ধাপের ক্রম ও দুটো যাচাইয়ের পথ{ph5}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:1043 +#, 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}Science Museum Group-এর steam-engine " +"indicator রেকর্ডে{ph3} 1796 সালে এর প্রবর্তন এবং চাপ রেকর্ড করার কৌশলের " +"বর্ণনা আছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/blog/touhou-reconstruction/index.html:1052 +#, python-brace-format +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "" +"{ph0}Method:{ph1} the Factory's {ph2}agent autonomy{ph3} and {ph4}cross-game" +" knowledge{ph5} documents retain the working principles and lessons." +msgstr "" +"{ph0}পদ্ধতি:{ph1} Factory-র {ph2}agent autonomy{ph3} এবং {ph4}cross-game " +"knowledge{ph5} ডকুমেন্টে কাজের নীতি ও শিক্ষাগুলো সংরক্ষিত আছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/touhou-reconstruction/index.html:1067 +#, 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 "Reverse Engineering-এর শিল্প বিপ্লব — 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 লিখেছেন ম্যানুয়াল reverse engineering, AI agent দিয়ে Touhou " +"পুনর্গঠন, এবং TH08, TH095 ও PC-98 TH04 জুড়ে জ্ঞান কীভাবে জমে ওঠে তা নিয়ে।" + +#: website/public/blog/touhou-reconstruction/index.html:361 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Experience carried between projects" +msgstr "প্রজেক্ট থেকে প্রজেক্টে বয়ে চলা অভিজ্ঞতা" + +#: website/public/blog/touhou-reconstruction/index.html:375 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/blog/touhou-reconstruction/index.html:390 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Touhou reconstruction essay" +msgstr "Touhou পুনর্গঠন প্রবন্ধ" + +#: website/public/blog/touhou-reconstruction/index.html:1092 +msgctxt "page:blog/touhou-reconstruction/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/examples/dino-lab/index.html:114 +msgctxt "page:examples/dino-lab/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/examples/dino-lab/index.html:206 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" +msgstr "{ph0}হোম{ph1}{ph2}/{ph3}ডাইনোসর speed lab" + +#: website/public/examples/dino-lab/index.html:209 +msgctxt "page:examples/dino-lab/index.html" +msgid "Inspect → rebuild → change" +msgstr "পরীক্ষা → পুনর্গঠন → পরিবর্তন" + +#: website/public/examples/dino-lab/index.html:210 +msgctxt "page:examples/dino-lab/index.html" +msgid "Rebuild the dinosaur’s speed rule." +msgstr "ডাইনোসরের গতির নিয়মটি নতুন করে তৈরি করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/examples/dino-lab/index.html:211 +#, 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 চলমান script-টি ফেরত দিয়েছে;{ph1} আমরা তার নিয়ম " +"ব্যবহার করে এই mini-game তৈরি করেছি, যাতে আছে {ph2}নিয়ন্ত্রণযোগ্য গতি।{ph3}" + +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 +msgctxt "page:examples/dino-lab/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#. {ph0}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:222 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "{ph0}Play and change the speed{ph1}" +msgstr "{ph0}খেলুন ও গতি বদলান{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:223 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "{ph0}Read the recovered rule{ph1}" +msgstr "{ph0}উদ্ধার করা নিয়মটি পড়ুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:224 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "{ph0}Check the reconstruction{ph1}" +msgstr "{ph0}পুনর্গঠন যাচাই করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:225 +#, 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:230 +msgctxt "page:examples/dino-lab/index.html" +msgid "Play and change the speed" +msgstr "খেলুন ও গতি বদলান" + +#: website/public/examples/dino-lab/index.html:231 +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 "" +"খেলুন চাপুন, তারপর ক্যাকটাসের ওপর দিয়ে লাফ দিন। ধীর বা দ্রুত গেম খেলতে " +"speed slider সরান; এতে গতি নির্দিষ্ট হয়ে যায়। আবার 6 থেকে শুরু করে ধীরে " +"ধীরে ত্বরণ পেতে উদ্ধার করা নিয়মটি বেছে নিন।" + +#: website/public/examples/dino-lab/index.html:237 +msgctxt "page:examples/dino-lab/index.html" +msgid "Play the reconstruction" +msgstr "পুনর্গঠিত গেমটি খেলুন" + +#: website/public/examples/dino-lab/index.html:269 +msgctxt "page:examples/dino-lab/index.html" +msgid "Play" +msgstr "খেলুন" + +#: website/public/examples/dino-lab/index.html:272 +msgctxt "page:examples/dino-lab/index.html" +msgid "Jump ↑" +msgstr "লাফ ↑" + +#: website/public/examples/dino-lab/index.html:273 +msgctxt "page:examples/dino-lab/index.html" +msgid "Restart" +msgstr "আবার শুরু" + +#: website/public/examples/dino-lab/index.html:276 +msgctxt "page:examples/dino-lab/index.html" +msgid "Speed" +msgstr "গতি" + +#: website/public/examples/dino-lab/index.html:286 +msgctxt "page:examples/dino-lab/index.html" +msgid "Use the recovered acceleration rule" +msgstr "উদ্ধার করা ত্বরণের নিয়ম ব্যবহার করুন" + +#: website/public/examples/dino-lab/index.html:290 +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:293 +msgctxt "page:examples/dino-lab/index.html" +msgid "Move the slider to set your own speed. Space or Jump clears a cactus." +msgstr "" +"নিজের গতি ঠিক করতে slider সরান। Space বা লাফ বাটনে ক্যাকটাস পার হওয়া যায়।" + +#: website/public/examples/dino-lab/index.html:298 +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:306 +msgctxt "page:examples/dino-lab/index.html" +msgid "Read the script REA returned" +msgstr "REA-এর ফেরত দেওয়া script পড়ুন" + +#. {ph0}: +#. {ph1}: +#. {ph2}: index.js +#: website/public/examples/dino-lab/index.html:307 +#, 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 "" +"আমরা REA দিয়ে {ph0}wayou-এর Chromium-ভিত্তিক ব্রাউজার সংস্করণ{ph1} পরীক্ষা " +"করেছি। এটি লোড হওয়া {ph2} ফেরত দিয়েছে, যার মধ্যে গেমের update function-এর " +"এই branch-টি আছে:" + +#: website/public/examples/dino-lab/index.html:317 +msgctxt "page:examples/dino-lab/index.html" +msgid "REA · selected script source" +msgstr "REA · নির্বাচিত script source" + +#. {ph0}: SPEED: 6 +#. {ph1}: ACCELERATION: 0.001 +#. {ph2}: MAX_SPEED: 13 +#: website/public/examples/dino-lab/index.html:323 +#, 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 "" +"Setting-গুলো হলো {ph0}, {ph1} ও {ph2}। সংঘর্ষ ছাড়া প্রতিটি update-এ গেমটি " +"এই branch চালায়।" + +#: website/public/examples/dino-lab/index.html:328 +msgctxt "page:examples/dino-lab/index.html" +msgid "Use the same rule in the new game" +msgstr "নতুন গেমে একই নিয়ম ব্যবহার করুন" + +#. {ph0}: dino-speed.js +#: website/public/examples/dino-lab/index.html:331 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "Reconstruction · {ph0}" +msgstr "পুনর্গঠন · {ph0}" + +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 +msgctxt "page:examples/dino-lab/index.html" +msgid "Copy" +msgstr "কপি" + +#: website/public/examples/dino-lab/index.html:347 +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 "" +"Mini-game-টি স্বয়ংক্রিয় ত্বরণের জন্য এই function ব্যবহার করে। Slider সরালে" +" তার বদলে একটি নির্দিষ্ট গতি দেওয়া হয়। আঁকা, লাফের physics এবং " +"আয়তক্ষেত্রভিত্তিক সংঘর্ষ যাচাই এই শেখানোর গেমের জন্য নতুন লেখা কোড; এর " +"simulation প্রতি সেকেন্ডে 60টি update-এ এগোয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/examples/dino-lab/index.html:353 +#, 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:361 +msgctxt "page:examples/dino-lab/index.html" +msgid "Check the reconstruction" +msgstr "পুনর্গঠন যাচাই করুন" + +#: website/public/examples/dino-lab/index.html:362 +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 "" +"আমরা বাধা ও স্বয়ংক্রিয় scheduling বন্ধ রেখে মূল গেমের update function call" +" করেছি। সেই রেকর্ড করা গতিগুলোকে উদ্ধার করা নিয়মের replay-এর সঙ্গে মিলিয়ে " +"দেখুন।" + +#: website/public/examples/dino-lab/index.html:371 +msgctxt "page:examples/dino-lab/index.html" +msgid "Updates" +msgstr "Update" + +#: website/public/examples/dino-lab/index.html:372 +msgctxt "page:examples/dino-lab/index.html" +msgid "Original game" +msgstr "মূল গেম" + +#: website/public/examples/dino-lab/index.html:373 +msgctxt "page:examples/dino-lab/index.html" +msgid "Reconstructed rule" +msgstr "পুনর্গঠিত নিয়ম" + +#: website/public/examples/dino-lab/index.html:400 +msgctxt "page:examples/dino-lab/index.html" +msgid "Run the speed check" +msgstr "গতির যাচাই চালান" + +#: website/public/examples/dino-lab/index.html:403 +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 "" +"মানগুলো তিন দশমিক ঘর পর্যন্ত রাউন্ড করা। Branch-টি যোগ করার আগে যাচাই করে, " +"তাই শেষ বৃদ্ধিতে গতি 13-এর সামান্য ওপরে যেতে পারে।" + +#: website/public/examples/dino-lab/index.html:409 +msgctxt "page:examples/dino-lab/index.html" +msgid "Try the analysis yourself" +msgstr "বিশ্লেষণটি নিজে চালিয়ে দেখুন" + +#. {ph0}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:411 +#, python-brace-format +msgctxt "page:examples/dino-lab/index.html" +msgid "{ph0}Set up REA{ph1} with your coding agent." +msgstr "আপনার coding agent-এর সঙ্গে {ph0}REA সেট আপ করুন{ph1}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: https://wayou.github.io/t-rex-runner/ +#: website/public/examples/dino-lab/index.html:415 +#, 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 "" +"{ph2}-কে পেজের URL হিসেবে ব্যবহার করে {ph0}ব্রাউজার সংযোগের ধাপগুলো{ph1} " +"অনুসরণ করুন।" + +#: website/public/examples/dino-lab/index.html:422 +msgctxt "page:examples/dino-lab/index.html" +msgid "" +"Give your agent the page URL and local debugging endpoint, then copy this " +"prompt." +msgstr "" +"আপনার agent-কে পেজের URL ও local debugging endpoint দিন, তারপর এই prompt-টি " +"কপি করুন।" + +#. {ph0}: +#: website/public/examples/dino-lab/index.html:429 +#, 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}আপনার coding agent" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/examples/dino-lab/index.html:442 +#, 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}: +#. {ph1}: +#: website/public/examples/dino-lab/index.html:451 +#, 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}“লাফের উচ্চতা কোথায় হিসাব করা হয়? নতুন সংস্করণে " +"লাফের উচ্চতা নিয়ন্ত্রণের একটি control যোগ করো।”{ph1}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/examples/dino-lab/index.html:458 +#, 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 Authors। {ph2}Copyright ও BSD " +"license{ph3}। REA 4.1.0 Chrome 150-এ চলমান HTTP সংস্করণটি পরীক্ষা করেছে।" + +#: website/public/examples/dino-lab/index.html:6 +msgctxt "page:examples/dino-lab/index.html" +msgid "Chrome Dinosaur Game: Rebuild Its Speed Rule — REA" +msgstr "Chrome-এর ডাইনোসর গেম: এর গতির নিয়ম নতুন করে তৈরি — REA" + +#: website/public/examples/dino-lab/index.html:7 +msgctxt "page:examples/dino-lab/index.html" +msgid "" +"Read the dinosaur game’s speed rule with REA, rebuild it, then change the " +"speed and play." +msgstr "" +"REA দিয়ে ডাইনোসর গেমের গতির নিয়ম পড়ুন, সেটি নতুন করে তৈরি করুন, তারপর গতি" +" বদলে খেলুন।" + +#: website/public/examples/dino-lab/index.html:228 +msgctxt "page:examples/dino-lab/index.html" +msgid "Dinosaur speed reconstruction" +msgstr "ডাইনোসরের গতির পুনর্গঠন" + +#: website/public/examples/dino-lab/index.html:259 +msgctxt "page:examples/dino-lab/index.html" +msgid "" +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." +msgstr "" +"ডাইনোসর mini-game। গেমটি focus-এ থাকা অবস্থায় লাফ বাটন ব্যবহার করুন বা " +"Space চাপুন।" + +#: website/public/examples/dino-lab/index.html:334 +msgctxt "page:examples/dino-lab/index.html" +msgid "Copy reconstructed speed rule" +msgstr "পুনর্গঠিত গতির নিয়ম কপি করুন" + +#: website/public/examples/dino-lab/index.html:433 +msgctxt "page:examples/dino-lab/index.html" +msgid "Copy dinosaur analysis prompt" +msgstr "ডাইনোসর বিশ্লেষণের prompt কপি করুন" + +#: website/public/examples/dino-lab/index.html:487 +msgctxt "page:examples/dino-lab/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/faq/index.html:113 +msgctxt "page:faq/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:205 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Home{ph1} / FAQ" +msgstr "{ph0}হোম{ph1} / FAQ" + +#: website/public/faq/index.html:206 +msgctxt "page:faq/index.html" +msgid "REA FAQ." +msgstr "REA: সাধারণ প্রশ্নোত্তর।" + +#: website/public/faq/index.html:207 +msgctxt "page:faq/index.html" +msgid "Setup, updates, analysis and troubleshooting." +msgstr "Setup, আপডেট, বিশ্লেষণ ও সমস্যা সমাধান।" + +#: website/public/faq/index.html:211 +msgctxt "page:faq/index.html" +msgid "Topics" +msgstr "বিষয়" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:213 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Setup and updates{ph1}" +msgstr "{ph0}Setup ও আপডেট{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:214 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Analysis{ph1}" +msgstr "{ph0}বিশ্লেষণ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:215 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Troubleshooting{ph1}" +msgstr "{ph0}সমস্যা সমাধান{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:216 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Data and sharing{ph1}" +msgstr "{ph0}ডেটা ও শেয়ারিং{ph1}" + +#: website/public/faq/index.html:225 +msgctxt "page:faq/index.html" +msgid "Setup and updates" +msgstr "Setup ও আপডেট" + +#: website/public/faq/index.html:228 +msgctxt "page:faq/index.html" +msgid "How do I install REA?" +msgstr "REA কীভাবে ইনস্টল করব?" + +#. {ph0}: Node.js +#: website/public/faq/index.html:229 +#, 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 থাকলে setup চালান, আপনার coding agent বেছে নিন এবং প্রস্তাবিত " +"পরিবর্তনগুলো দেখে নিন।" + +#: website/public/faq/index.html:236 +msgctxt "page:faq/index.html" +msgid "Terminal · agent setup" +msgstr "টার্মিনাল · agent setup" + +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 +msgctxt "page:faq/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:248 +#, 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 "" +"Setup REA-এর MCP connection নিবন্ধন করে এবং মানানসই investigation skill " +"ইনস্টল করে। শেষ হলে আপনার agent রিস্টার্ট করুন, তারপর তাকে একটি টার্গেটের " +"path ও একটি প্রশ্ন দিন। পূর্বশর্ত ও প্রথম বিশ্লেষণের জন্য {ph0}setup গাইড " +"অনুসরণ করুন{ph1}।" + +#: website/public/faq/index.html:257 +msgctxt "page:faq/index.html" +msgid "Which coding agents can use REA?" +msgstr "কোন কোন coding agent REA ব্যবহার করতে পারে?" + +#: website/public/faq/index.html:258 +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 "" +"Local MCP server সমর্থন করে এমন যেকোনো agent। Setup-এ আছে Claude Code, " +"Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, " +"Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP এবং VS Code। " +"Grok Bot-এর connector তার chat থেকে যোগ করা হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:265 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Connect your coding agent{ph1}." +msgstr "{ph0}আপনার coding agent যুক্ত করুন{ph1}।" + +#: website/public/faq/index.html:270 +msgctxt "page:faq/index.html" +msgid "How do I update REA?" +msgstr "REA কীভাবে আপডেট করব?" + +#: website/public/faq/index.html:271 +msgctxt "page:faq/index.html" +msgid "" +"REA releases frequently, including bug fixes. If you installed the CLI with " +"npm:" +msgstr "" +"REA ঘন ঘন release হয়, যার মধ্যে bug fix-ও থাকে। npm দিয়ে CLI ইনস্টল করে " +"থাকলে:" + +#: website/public/faq/index.html:277 +msgctxt "page:faq/index.html" +msgid "Terminal · installed CLI" +msgstr "টার্মিনাল · ইনস্টল করা CLI" + +#. {ph0}: npx +#: website/public/faq/index.html:289 +#, 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 রিফ্রেশ কমান্ডটি চালান। {ph0} দিয়ে agent সেট আপ করে" +" থাকলে চালান:" + +#: website/public/faq/index.html:295 +msgctxt "page:faq/index.html" +msgid "Terminal · refresh agent setup" +msgstr "টার্মিনাল · agent setup রিফ্রেশ" + +#. {ph0}: npx -y rea-agents@latest +#: website/public/faq/index.html:307 +#, 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 "" +"পরিবর্তনগুলো দেখে নিয়ে আপনার agent রিস্টার্ট করুন। এর REA connection একটি " +"নির্দিষ্ট package সংস্করণে বাঁধা থাকে, তাই setup রিফ্রেশ করলে সেটি নতুন " +"release ব্যবহার করে। একবারের CLI কমান্ডের জন্য {ph0}-এর পরে কমান্ডটি লিখুন।" + +#: website/public/faq/index.html:315 +msgctxt "page:faq/index.html" +msgid "Is installing the skill from skills.sh enough?" +msgstr "skills.sh থেকে skill ইনস্টল করাই কি যথেষ্ট?" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:318 +#, 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 "" +"Skill আপনার agent-কে অনুসন্ধানের নির্দেশনা দেয়। MCP server যুক্ত করতে এবং " +"মানানসই skill ইনস্টল করতে {ph0}REA setup{ph1} চালান, তারপর আপনার agent " +"রিস্টার্ট করুন যাতে সে টুলগুলো call করতে পারে।" + +#: website/public/faq/index.html:329 +msgctxt "page:faq/index.html" +msgid "Analysis" +msgstr "বিশ্লেষণ" + +#: website/public/faq/index.html:332 +msgctxt "page:faq/index.html" +msgid "What can I analyze with REA?" +msgstr "REA দিয়ে কী কী বিশ্লেষণ করা যায়?" + +#: website/public/faq/index.html:333 +msgctxt "page:faq/index.html" +msgid "Start with the kind of software you have:" +msgstr "আপনার কাছে যে ধরনের সফটওয়্যার আছে, সেটি দিয়ে শুরু করুন:" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:335 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "" +"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode " +"and references." +msgstr "" +"{ph0}Native executable ও library{ph1}: function, assembly, pseudocode ও " +"reference।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:340 +#, 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}: module, import, IPC ও source " +"location।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:345 +#, python-brace-format +msgctxt "page:faq/index.html" +msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." +msgstr "{ph0}ব্রাউজার পেজ{ph1}: script, request ও runtime পর্যবেক্ষণ।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:350 +#, 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 "" +"Managed assembly, Android APK, firmware ও packaged resource-এর জন্যও REA-তে " +"workflow আছে। হাতে-কলমে অনুসন্ধানের জন্য {ph0}case study-গুলো দেখুন{ph1}।" + +#: website/public/faq/index.html:358 +msgctxt "page:faq/index.html" +msgid "Do I need Hopper, Ghidra or IDA?" +msgstr "আমার কি Hopper, Ghidra বা IDA লাগবে?" + +#: website/public/faq/index.html:359 +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 "" +"গভীর native বিশ্লেষণে এগুলোর যেকোনো একটি ব্যবহৃত হয়। Static JavaScript ও " +".NET পরীক্ষা দেওয়া ফাইল দিয়েই কাজ করে, native analysis engine লাগে না।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:364 +#, 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 ইনস্টলেশন যুক্ত করুন, অথবা setup-কে Hopper " +"খুঁজে বের করে ইনস্টলেশনের প্রস্তাব দিতে দিন। কোন provider ব্যবহার করা যাবে " +"তা আপনার host ও টার্গেটের ওপর নির্ভর করে। {ph0}Native বিশ্লেষণ সেট আপ " +"করুন{ph1}।" + +#: website/public/faq/index.html:372 +msgctxt "page:faq/index.html" +msgid "Can I use REA without a coding agent?" +msgstr "Coding agent ছাড়া কি REA ব্যবহার করা যায়?" + +#: website/public/faq/index.html:373 +msgctxt "page:faq/index.html" +msgid "" +"Yes. The CLI uses the same analysis workflows. For a local JavaScript or " +"Electron app:" +msgstr "" +"হ্যাঁ। CLI-ও একই analysis workflow ব্যবহার করে। একটি local JavaScript বা " +"Electron অ্যাপের জন্য:" + +#: website/public/faq/index.html:379 +msgctxt "page:faq/index.html" +msgid "Terminal · static application analysis" +msgstr "টার্মিনাল · static অ্যাপ্লিকেশন বিশ্লেষণ" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:392 +#, 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 "" +"Path-এর জায়গায় extract করা অ্যাপ্লিকেশন ফোল্ডার বা ASAR ফাইল দিন। " +"ইনস্টলেশনের বিকল্পগুলোর জন্য {ph0}CLI ব্যবহার করুন{ph1}।" + +#: website/public/faq/index.html:399 +msgctxt "page:faq/index.html" +msgid "What code does REA return?" +msgstr "REA কী ধরনের কোড ফেরত দেয়?" + +#: website/public/faq/index.html:400 +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 "" +"Native বিশ্লেষণ assembly ও pseudocode ফেরত দেয়, সঙ্গে call, reference ও " +"প্রাসঙ্গিক constant। JavaScript বিশ্লেষণ module, সেগুলোর পারস্পরিক সম্পর্ক ও" +" source location ফেরত দেয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/faq/index.html:405 +#, 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 "" +"আপনার agent এই ফলাফল ব্যবহার করে আচরণ ব্যাখ্যা করে, অথবা implementation লেখে" +" ও test করে। {ph0}DX-Ball-এর হিসাব{ph1} এবং {ph2}CTF flag checker{ph3} " +"দেখায় প্রক্রিয়াটি কীভাবে কাজ করে।" + +#: website/public/faq/index.html:416 +msgctxt "page:faq/index.html" +msgid "What should I ask my agent?" +msgstr "আমার agent-কে কী জিজ্ঞাসা করব?" + +#: website/public/faq/index.html:417 +msgctxt "page:faq/index.html" +msgid "" +"Give it a local target and one behavior to investigate. For a JavaScript or " +"Electron app:" +msgstr "" +"তাকে একটি local টার্গেট এবং অনুসন্ধানের জন্য একটি নির্দিষ্ট আচরণ দিন। " +"JavaScript বা Electron অ্যাপের ক্ষেত্রে:" + +#. {ph0}: +#: website/public/faq/index.html:423 +#, 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}আপনার coding agent" + +#. {ph0}: +#. {ph2}: +#. {ph3}: /absolute/path/to/app +#. {ph4}: +#. {ph5}: +#: website/public/faq/index.html:436 +#, 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} বিশ্লেষণ করো এবং এটি কীভাবে ডেটা export করে " +"তা ব্যাখ্যা করো। প্রাসঙ্গিক কোড ও source location দেখাও।{ph4}{ph5}{ph6}" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:446 +#, 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 "" +"Path-এর জায়গায় আপনার টার্গেট দিন। Native, Electron ও ব্রাউজারের উদাহরণসহ " +"prompt পাবেন {ph0}গাইডগুলোতে{ph1}।" + +#: website/public/faq/index.html:456 +msgctxt "page:faq/index.html" +msgid "Troubleshooting" +msgstr "সমস্যা সমাধান" + +#: website/public/faq/index.html:459 +msgctxt "page:faq/index.html" +msgid "Why can't my agent see the REA tools?" +msgstr "আমার agent কেন REA-এর টুলগুলো দেখতে পাচ্ছে না?" + +#. {ph0}: doctor +#: website/public/faq/index.html:460 +#, 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 "" +"Setup-এর পরে আপনার agent রিস্টার্ট করুন বা আবার connect করুন। {ph0} দিয়ে এর" +" REA নিবন্ধন যাচাই করুন; Codex-এর ক্ষেত্রে:" + +#: website/public/faq/index.html:466 +msgctxt "page:faq/index.html" +msgid "Terminal · check one client" +msgstr "টার্মিনাল · একটি client যাচাই" + +#. {ph0}: codex +#. {ph1}: claude_code +#. {ph2}: cursor +#: website/public/faq/index.html:478 +#, 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}-এর জায়গায় আপনার client ID দিন, যেমন {ph1} বা {ph2}। রিপোর্টে নিবন্ধন" +" অনুপস্থিত বা পুরোনো দেখালে সেই client-এর জন্য setup চালান:" + +#: website/public/faq/index.html:486 +msgctxt "page:faq/index.html" +msgid "Terminal · repair one client's setup" +msgstr "টার্মিনাল · একটি client-এর setup মেরামত" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:498 +#, 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 "" +"এর পরিকল্পনা দেখে নিয়ে client রিস্টার্ট করুন। নিবন্ধন ঠিক থাকার পরও টুল না " +"দেখালে client-এর MCP connection error দেখুন। {ph0}Setup-এর আরও " +"diagnostics{ph1}।" + +#: website/public/faq/index.html:506 +msgctxt "page:faq/index.html" +msgid "Do I need to start Hopper first?" +msgstr "আমাকে কি আগে Hopper চালু করতে হবে?" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:507 +#, 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-এ স্বয়ংক্রিয় " +"বিশ্লেষণের আগে প্রথমবার চালানোর সময়ের demo mode বা license সক্রিয় করার " +"ধাপটি সম্পন্ন করুন। {ph0}Native provider setup দেখুন{ph1}।" + +#: website/public/faq/index.html:516 +msgctxt "page:faq/index.html" +msgid "What should I do if I hit a bug?" +msgstr "কোনো bug পেলে কী করব?" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:517 +#, 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}, আপনার agent রিস্টার্ট করুন এবং একই কাজ আবার চেষ্টা" +" করুন। সাম্প্রতিক কোনো release-এ হয়তো সমস্যাটি ঠিক হয়ে গেছে।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:521 +#, 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 "" +"তারপরও থেকে গেলে আপনার REA সংস্করণ, operating system, টার্গেটের ধরন, " +"সমস্যাটি ঘটানোর ধাপ এবং error output সহ {ph0}একটি issue খুলুন{ph1}। সমস্যাটি" +" native বিশ্লেষণের হলে provider-এর নামও দিন।" + +#: website/public/faq/index.html:535 +msgctxt "page:faq/index.html" +msgid "Data and sharing" +msgstr "ডেটা ও শেয়ারিং" + +#: website/public/faq/index.html:538 +msgctxt "page:faq/index.html" +msgid "Does REA upload my app?" +msgstr "REA কি আমার অ্যাপ আপলোড করে?" + +#: website/public/faq/index.html:539 +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 টার্গেট বিশ্লেষণ করে আপনার নিজের কম্পিউটারে। ফলাফল পায় আপনার agent, আর " +"সেই ফলাফলের ক্ষেত্রে তার model provider-এর data policy প্রযোজ্য।" + +#: website/public/faq/index.html:546 +msgctxt "page:faq/index.html" +msgid "How can I share an example or contribute?" +msgstr "কীভাবে একটি উদাহরণ শেয়ার করব বা অবদান রাখব?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/faq/index.html:547 +#, 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}issue{ph1} বা {ph2}pull " +"request{ph3}-এ শেয়ার করুন। ছোট কোড অংশ ও চিত্র থাকলে অন্যদের পক্ষে " +"অনুসন্ধানটি অনুসরণ করা সহজ হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/faq/index.html:559 +#, 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 "" +"Bug রিপোর্ট, ফিচারের অনুরোধ, ডকুমেন্টেশন ও কোডের উন্নতিও স্বাগত। কোনো উদাহরণ" +" নিয়ে {ph0}কমিউনিটিতেও{ph1} আলোচনা করতে পারেন।" + +#: website/public/faq/index.html:6 +msgctxt "page:faq/index.html" +msgid "REA FAQ: Setup, Updates and Troubleshooting" +msgstr "REA FAQ: Setup, আপডেট ও সমস্যা সমাধান" + +#: 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 নিয়ে সাধারণ প্রশ্নের উত্তর: ইনস্টলেশন, আপডেট, analysis টুল, coding " +"agent, সমস্যা সমাধান এবং উদাহরণ শেয়ার করা।" + +#: website/public/faq/index.html:210 +msgctxt "page:faq/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/faq/index.html:219 +msgctxt "page:faq/index.html" +msgid "Frequently asked questions about REA" +msgstr "REA সম্পর্কে সাধারণ প্রশ্নোত্তর" + +#: website/public/faq/index.html:237 +msgctxt "page:faq/index.html" +msgid "Copy REA setup command" +msgstr "REA setup কমান্ড কপি করুন" + +#: website/public/faq/index.html:278 +msgctxt "page:faq/index.html" +msgid "Copy REA update command" +msgstr "REA আপডেট কমান্ড কপি করুন" + +#: website/public/faq/index.html:296 +msgctxt "page:faq/index.html" +msgid "Copy agent setup refresh command" +msgstr "Agent setup রিফ্রেশ কমান্ড কপি করুন" + +#: website/public/faq/index.html:380 +msgctxt "page:faq/index.html" +msgid "Copy REA CLI analysis command" +msgstr "REA CLI বিশ্লেষণ কমান্ড কপি করুন" + +#: website/public/faq/index.html:427 +msgctxt "page:faq/index.html" +msgid "Copy example analysis prompt" +msgstr "উদাহরণ বিশ্লেষণের prompt কপি করুন" + +#: website/public/faq/index.html:467 +msgctxt "page:faq/index.html" +msgid "Copy client diagnosis command" +msgstr "Client diagnosis কমান্ড কপি করুন" + +#: website/public/faq/index.html:487 +msgctxt "page:faq/index.html" +msgid "Copy scoped setup command" +msgstr "নির্দিষ্ট client-এর setup কমান্ড কপি করুন" + +#: website/public/faq/index.html:585 +msgctxt "page:faq/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/first-investigation/index.html:113 +msgctxt "page:first-investigation/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:205 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}Home{ph1} / Your first investigation" +msgstr "{ph0}হোম{ph1} / আপনার প্রথম অনুসন্ধান" + +#. {ph0}:
+#: website/public/first-investigation/index.html:208 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "Find out where{ph0}exported notes go." +msgstr "জেনে নিন export করা{ph0}নোট কোথায় যায়।" + +#: website/public/first-investigation/index.html:209 +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 দিয়ে একটি ছোট অ্যাপ পরীক্ষা করুন, এর Export notes বাটন অনুসরণ করুন এবং " +"একটি খুঁটিনাটি নিজেই যাচাই করুন।" + +#. {ph0}: Node.js +#: website/public/first-investigation/index.html:213 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "A supplied example · {ph0} and npm · Your coding agent" +msgstr "একটি দেওয়া উদাহরণ · {ph0} ও npm · আপনার coding agent" + +#: website/public/first-investigation/index.html:220 +msgctxt "page:first-investigation/index.html" +msgid "In this exercise" +msgstr "এই অনুশীলনে" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:222 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}1. Set up{ph1}" +msgstr "{ph0}1. সেট আপ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:223 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}2. Ask about export{ph1}" +msgstr "{ph0}2. Export নিয়ে প্রশ্ন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:224 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}3. Follow the answer{ph1}" +msgstr "{ph0}3. উত্তর অনুসরণ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:225 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}4. Check a prediction{ph1}" +msgstr "{ph0}4. একটি অনুমান যাচাই{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:226 +#, 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:231 +msgctxt "page:first-investigation/index.html" +msgid "1. Connect your agent to REA" +msgstr "1. আপনার agent-কে REA-এর সঙ্গে যুক্ত করুন" + +#. {ph0}: Node.js +#. {ph1}: +#. {ph2}: +#: website/public/first-investigation/index.html:232 +#, 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-এর মতো একটি coding agent ব্যবহার করুন। আপনার " +"লাগবে {ph0} ও npm; {ph1}setup গাইডে সমর্থিত সংস্করণগুলোর তালিকা আছে{ph2}।" + +#. {ph0}: +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 +#, 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}আপনার coding agent" + +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 +msgctxt "page:first-investigation/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: npx rea-agents@latest setup +#. {ph4}: +#. {ph5}: +#: website/public/first-investigation/index.html:254 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "" +"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}." +" Show me the setup plan for approval, then verify the " +"installation.{ph4}{ph5}{ph6}" +msgstr "" +"{ph0}›{ph1}{ph2}{ph3} ব্যবহার করে REA ইনস্টল করো এবং এই coding agent-এর " +"সঙ্গে যুক্ত করো। অনুমোদনের জন্য আগে setup পরিকল্পনাটি আমাকে দেখাও, তারপর " +"ইনস্টলেশন যাচাই করো।{ph4}{ph5}{ph6}" + +#: website/public/first-investigation/index.html:264 +msgctxt "page:first-investigation/index.html" +msgid "Or run this command in your terminal:" +msgstr "অথবা টার্মিনালে এই কমান্ডটি চালান:" + +#: website/public/first-investigation/index.html:276 +msgctxt "page:first-investigation/index.html" +msgid "" +"Review the plan, approve the setup, then restart your agent. Already " +"connected? Continue below." +msgstr "" +"পরিকল্পনাটি দেখে setup অনুমোদন করুন, তারপর আপনার agent রিস্টার্ট করুন। আগেই " +"যুক্ত আছে? নিচে এগিয়ে যান।" + +#: website/public/first-investigation/index.html:282 +msgctxt "page:first-investigation/index.html" +msgid "2. Ask where the CSV is written" +msgstr "2. CSV কোথায় লেখা হয় জিজ্ঞাসা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:283 +#, 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}Export notes{ph1} " +"বাটন আছে। Electron ইনস্টল বা চালু না করেই আপনার agent এর কোড পরীক্ষা করতে " +"পারে।" + +#. {ph0}: +#. {ph2}: +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip +#. {ph4}: notes.csv +#. {ph5}: +#. {ph6}: +#: website/public/first-investigation/index.html:304 +#, 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} একটি নতুন উদাহরণ ফোল্ডারে ডাউনলোড করে unpack করো। " +"Export notes-এ ক্লিক করলে কী হয় তা REA দিয়ে খুঁজে বের করো। {ph4} কোথায় " +"লেখা হয়, এতে কোন কোন field থাকে এবং প্রাসঙ্গিক ফাইল ও লাইনগুলো " +"দেখাও।{ph5}{ph6}{ph7}" + +#: website/public/first-investigation/index.html:318 +msgctxt "page:first-investigation/index.html" +msgid "" +"Your agent downloads the files and gives the unpacked folder to REA for " +"inspection." +msgstr "" +"আপনার agent ফাইলগুলো ডাউনলোড করে unpack করা ফোল্ডারটি পরীক্ষার জন্য REA-কে " +"দেয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:322 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}Download example ZIP{ph1}" +msgstr "{ph0}উদাহরণের ZIP ডাউনলোড করুন{ph1}" + +#. {ph0}: notes-example +#: website/public/first-investigation/index.html:330 +#, 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 "" +"আপনার agent ফাইল ডাউনলোড করতে না পারলে archive-টি নিজেই unzip করুন। তাকে " +"{ph0} ফোল্ডারের path এবং export নিয়ে একই প্রশ্নটি দিন।" + +#: website/public/first-investigation/index.html:337 +msgctxt "page:first-investigation/index.html" +msgid "3. Follow the answer back to the code" +msgstr "3. উত্তর ধরে কোড পর্যন্ত যান" + +#: website/public/first-investigation/index.html:338 +msgctxt "page:first-investigation/index.html" +msgid "Look for a short explanation with file and line references:" +msgstr "ফাইল ও লাইনের reference-সহ একটি সংক্ষিপ্ত ব্যাখ্যা খুঁজুন:" + +#. {ph0}: notes:export +#. {ph1}: notes.csv +#. {ph2}: id +#. {ph3}: title +#: website/public/first-investigation/index.html:340 +#, 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} message পাঠায়। Main process নোটগুলোকে CSV আকারে সাজিয়ে " +"ব্যবহারকারীর Downloads ফোল্ডারে {ph1} লেখে। কলামগুলো হলো {ph2} ও {ph3}।" + +#: website/public/first-investigation/index.html:348 +msgctxt "page:first-investigation/index.html" +msgid "From the button to the file writer" +msgstr "বাটন থেকে file writer পর্যন্ত" + +#. {ph0}: +#. {ph1}: renderer.js +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: notes.exportCsv() +#. {ph7}: +#: website/public/first-investigation/index.html:350 +#, 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}Export notes{ph4}{ph5}{ph6} call করে।{ph7}" + +#. {ph0}: +#. {ph1}: preload.js +#. {ph2}: +#. {ph3}: +#. {ph4}: notes:export +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/first-investigation/index.html:358 +#, 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}Bridge · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}Main process-এ একটি নামযুক্ত " +"message পাঠায়।{ph7}" + +#. {ph0}: +#. {ph1}: main.js +#. {ph2}: +#. {ph3}: +#. {ph4}: notes.csv +#. {ph5}: +#. {ph6}: +#. {ph7}: csv.js +#. {ph8}: +#: website/public/first-investigation/index.html:366 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "" +"{ph0}Handler · {ph1}{ph2}{ph3}Write {ph4}{ph5}{ph6}Calls the formatter in " +"{ph7} and writes the file.{ph8}" +msgstr "" +"{ph0}Handler · {ph1}{ph2}{ph3}{ph4} লেখে{ph5}{ph6}{ph7}-এর formatter call " +"করে ফাইলটি লেখে।{ph8}" + +#: website/public/first-investigation/index.html:377 +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-এর static analysis message-টিকে তার handler-এর সঙ্গে জোড়া মেলায়। " +"গন্তব্যটি কোড থেকে পড়া হয়।" + +#. {ph0}: main.js +#: website/public/first-investigation/index.html:384 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0} · lines 8–12" +msgstr "{ph0} · লাইন 8–12" + +#: website/public/first-investigation/index.html:385 +msgctxt "page:first-investigation/index.html" +msgid "Source" +msgstr "সোর্স" + +#: website/public/first-investigation/index.html:393 +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 "" +"ফাইলের path, formatter ও write call এই handler-এ একসঙ্গে আছে। আপনার agent-এর" +" উত্তরে এই লাইনগুলো না থাকলে দেখাতে বলুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/first-investigation/index.html:398 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "{ph0}See the full code trace and recorded REA result{ph1}." +msgstr "{ph0}পূর্ণ কোড trace এবং রেকর্ড করা REA ফলাফল দেখুন{ph1}।" + +#: website/public/first-investigation/index.html:405 +msgctxt "page:first-investigation/index.html" +msgid "4. Check a prediction" +msgstr "4. একটি অনুমান যাচাই করুন" + +#: website/public/first-investigation/index.html:406 +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-তে কমা দিয়ে কলাম আলাদা করা হয়। নোটের শিরোনামেই যদি কমা বা উদ্ধৃতিচিহ্ন" +" থাকে, তাহলে কী হয়?" + +#. {ph0}: +#. {ph2}: +#. {ph3}: Hello, "REA" +#. {ph4}: toCsv +#. {ph5}: Node.js +#. {ph6}: +#. {ph7}: +#: website/public/first-investigation/index.html:426 +#, 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}id 1 এবং শিরোনাম {ph3}-যুক্ত একটি নোটের CSV কেমন হবে অনুমান " +"করো। তারপর যাচাই করতে {ph5} দিয়ে উদাহরণের {ph4} formatter চালাও। অনুমান এবং" +" আসল output দুটোই দেখাও।{ph6}{ph7}{ph8}" + +#: website/public/first-investigation/index.html:439 +msgctxt "page:first-investigation/index.html" +msgid "Expected formatter output" +msgstr "Formatter-এর প্রত্যাশিত output" + +#. {ph0}: Node.js +#: website/public/first-investigation/index.html:444 +#, 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 "" +"শিরোনামটি উদ্ধৃতিচিহ্নে ঘেরা একটি field-এই থাকে; প্রতিটি উদ্ধৃতিচিহ্ন " +"দ্বিগুণ হয়। এটি {ph0} দিয়ে সরাসরি formatter যাচাই করে।" + +#: website/public/first-investigation/index.html:450 +msgctxt "page:first-investigation/index.html" +msgid "Run the check yourself" +msgstr "যাচাইটি নিজে চালান" + +#. {ph0}: notes-example +#: website/public/first-investigation/index.html:451 +#, python-brace-format +msgctxt "page:first-investigation/index.html" +msgid "Open a terminal in the unpacked {ph0} folder:" +msgstr "Unpack করা {ph0} ফোল্ডারে একটি টার্মিনাল খুলুন:" + +#: website/public/first-investigation/index.html:492 +msgctxt "page:first-investigation/index.html" +msgid "5. Ask another question" +msgstr "5. আরেকটি প্রশ্ন করুন" + +#: website/public/first-investigation/index.html:493 +msgctxt "page:first-investigation/index.html" +msgid "Try a follow-up in the same conversation:" +msgstr "একই কথোপকথনে পরবর্তী একটি প্রশ্ন করে দেখুন:" + +#: website/public/first-investigation/index.html:495 +msgctxt "page:first-investigation/index.html" +msgid "" +"What happens if the file can’t be written? Follow the error back to the " +"page." +msgstr "ফাইলটি লেখা না গেলে কী হয়? Error-টি ধরে পেজ পর্যন্ত ফিরে যাও।" + +#: website/public/first-investigation/index.html:500 +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 "" +"অথবা আপনার agent-কে নিজের একটি অ্যাপ দিয়ে কোনো একটি বাটন, ফাইল বা আচরণ " +"সম্পর্কে জিজ্ঞাসা করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/first-investigation/index.html:505 +#, 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}একটি packaged Electron " +"অ্যাপে clipboard ফিচার অনুসরণ করুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/first-investigation/index.html:511 +#, 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 কীভাবে sound panning হিসাব করে{ph1}{ph2}মূল instruction এবং " +"পুনর্গঠনের যাচাইগুলো পড়ুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/first-investigation/index.html:519 +#, 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}Setup বা বিশ্লেষণের সমস্যা সমাধান{ph1}{ph2}আটকে গেলে REA আপডেট করে " +"connection যাচাই করুন।{ph3}" + +#: website/public/first-investigation/index.html:6 +msgctxt "page:first-investigation/index.html" +msgid "Your First Reverse Engineering Investigation — REA" +msgstr "আপনার প্রথম Reverse Engineering অনুসন্ধান — 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 "" +"একটি ছোট Notes অ্যাপে REA ব্যবহার করে দেখুন। আপনার agent সেট আপ করুন, export" +" করা নোট কোথায় যায় জিজ্ঞাসা করুন এবং একটি নমুনা শিরোনাম দিয়ে CSV " +"formatter যাচাই করুন।" + +#: website/public/first-investigation/index.html:219 +msgctxt "page:first-investigation/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/first-investigation/index.html:229 +msgctxt "page:first-investigation/index.html" +msgid "Your first REA investigation" +msgstr "আপনার প্রথম REA অনুসন্ধান" + +#: website/public/first-investigation/index.html:245 +msgctxt "page:first-investigation/index.html" +msgid "Copy REA installation prompt" +msgstr "REA ইনস্টলেশনের prompt কপি করুন" + +#: website/public/first-investigation/index.html:267 +msgctxt "page:first-investigation/index.html" +msgid "Copy setup command" +msgstr "Setup কমান্ড কপি করুন" + +#: website/public/first-investigation/index.html:295 +msgctxt "page:first-investigation/index.html" +msgid "Copy Notes investigation prompt" +msgstr "Notes অনুসন্ধানের prompt কপি করুন" + +#: website/public/first-investigation/index.html:417 +msgctxt "page:first-investigation/index.html" +msgid "Copy CSV check prompt" +msgstr "CSV যাচাইয়ের prompt কপি করুন" + +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 +msgctxt "page:first-investigation/index.html" +msgid "Copy formatter check command" +msgstr "Formatter যাচাইয়ের কমান্ড কপি করুন" + +#: website/public/first-investigation/index.html:546 +msgctxt "page:first-investigation/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/get-started/index.html:113 +msgctxt "page:get-started/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:205 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Home{ph1} / Get started" +msgstr "{ph0}হোম{ph1} / শুরু করুন" + +#: website/public/get-started/index.html:206 +msgctxt "page:get-started/index.html" +msgid "Set up REA." +msgstr "REA সেট আপ করুন।" + +#. {ph0}: Node.js +#: website/public/get-started/index.html:268 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "Don't have {ph0}, or not sure?" +msgstr "{ph0} নেই, নাকি নিশ্চিত নন?" + +#: website/public/get-started/index.html:271 +msgctxt "page:get-started/index.html" +msgid "Open a terminal and check:" +msgstr "একটি টার্মিনাল খুলে যাচাই করুন:" + +#: website/public/get-started/index.html:274 +msgctxt "page:get-started/index.html" +msgid "Terminal" +msgstr "টার্মিনাল" + +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 +msgctxt "page:get-started/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: node -v +#: website/public/get-started/index.html:309 +#, 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}: +#. {ph1}: +#: website/public/get-started/index.html:410 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Prefer a regular installer? Download the LTS version from " +"{ph0}nodejs.org{ph1}." +msgstr "" +"সাধারণ installer পছন্দ করেন? {ph0}nodejs.org{ph1} থেকে LTS সংস্করণটি ডাউনলোড" +" করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:225 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Use the CLI{ph1}" +msgstr "{ph0}CLI ব্যবহার করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:226 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Getting help{ph1}" +msgstr "{ph0}সাহায্য পাওয়া{ph1}" + +#. {ph0}: +#: website/public/get-started/index.html:775 +#, 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}আপনার coding agent" + +#. {ph0}: +#. {ph2}: +#. {ph3}: npx rea-agents@latest setup +#. {ph4}: +#. {ph5}: +#: website/public/get-started/index.html:789 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}." +" Show me the setup plan for approval, then verify the " +"installation.{ph4}{ph5}{ph6}" +msgstr "" +"{ph0}›{ph1}{ph2}{ph3} ব্যবহার করে REA ইনস্টল করো এবং এই coding agent-এর " +"সঙ্গে যুক্ত করো। অনুমোদনের জন্য আগে setup পরিকল্পনাটি আমাকে দেখাও, তারপর " +"ইনস্টলেশন যাচাই করো।{ph4}{ph5}{ph6}" + +#: website/public/get-started/index.html:801 +msgctxt "page:get-started/index.html" +msgid "Or run setup yourself" +msgstr "অথবা নিজেই setup চালান" + +#: website/public/get-started/index.html:237 +msgctxt "page:get-started/index.html" +msgid "How do I open a terminal?" +msgstr "টার্মিনাল কীভাবে খুলব?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:239 +#, 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 menu খুলে {ph2}PowerShell{ph3} লিখুন এবং Enter " +"চাপুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: ⌘ +#. {ph3}: Space +#. {ph4}: +#. {ph5}: +#: website/public/get-started/index.html:243 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." +msgstr "" +"{ph0}macOS:{ph1} {ph2} {ph3} চাপুন, {ph4}Terminal{ph5} লিখুন এবং Enter " +"চাপুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: Ctrl +#. {ph3}: Alt +#. {ph4}: T +#: website/public/get-started/index.html:247 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." +msgstr "{ph0}Linux:{ph1} বেশিরভাগ desktop-এ {ph2} {ph3} {ph4} চাপুন।" + +#. {ph0}: Ctrl +#. {ph1}: V +#. {ph2}: ⌘ +#. {ph3}: V +#. {ph4}: Ctrl +#. {ph5}: Shift +#. {ph6}: V +#: website/public/get-started/index.html:252 +#, 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} দিয়ে কমান্ড paste করুন (macOS: {ph2} {ph3}; Linux টার্মিনাল: " +"{ph4} {ph5} {ph6}), তারপর Enter চাপুন।" + +#: website/public/get-started/index.html:837 +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 "" +"আপনার client বেছে নিয়ে setup পরিকল্পনাটি দেখে নিন। REA তার MCP connection ও" +" মানানসই investigation skill যোগ করে, আর বিদ্যমান configuration-এর ব্যাকআপ " +"রাখে। পরিবর্তন প্রয়োগের আগে এটি আপনার অনুমতি চায়।" + +#: website/public/get-started/index.html:851 +msgctxt "page:get-started/index.html" +msgid "How do I restart my client?" +msgstr "Client কীভাবে রিস্টার্ট করব?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: ⌘ +#. {ph3}: Q +#: website/public/get-started/index.html:852 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Desktop apps{ph1} (Claude Desktop, Cursor, Windsurf, VS Code): quit the" +" app completely, then open it again. Closing the window isn't enough. On " +"macOS press {ph2} {ph3}; on Windows, also quit from the tray icon if there " +"is one." +msgstr "" +"{ph0}Desktop অ্যাপ{ph1} (Claude Desktop, Cursor, Windsurf, VS Code): অ্যাপটি" +" পুরোপুরি বন্ধ (quit) করে আবার খুলুন। শুধু window বন্ধ করা যথেষ্ট নয়। " +"macOS-এ {ph2} {ph3} চাপুন; Windows-এ tray icon থাকলে সেখান থেকেও quit করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:859 +#, 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}টার্মিনাল agent{ph1} (Claude Code, Codex, Gemini CLI): session থেকে " +"বেরিয়ে আবার শুরু করুন।" + +#: website/public/get-started/index.html:963 +msgctxt "page:get-started/index.html" +msgid "How do I get a folder's full path?" +msgstr "একটি ফোল্ডারের পূর্ণ path কীভাবে পাব?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:965 +#, 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-এ ফোল্ডারটিতে right-click করে {ph2}Copy as " +"path{ph3} বেছে নিন। Windows 10-এ right-click করার সময় Shift চেপে ধরুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:970 +#, 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-এ ফোল্ডারটিতে right-click করুন, Option চেপে ধরে " +"{ph2}Copy \"…\" as Pathname{ph3} বেছে নিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:974 +#, 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} ফোল্ডারটি টেনে টার্মিনাল window-তে ছেড়ে দিন, " +"path দেখা যাবে।" + +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 +msgctxt "page:get-started/index.html" +msgid "In a terminal, put quotes around a path that contains spaces." +msgstr "টার্মিনালে space আছে এমন path-এর চারপাশে উদ্ধৃতিচিহ্ন দিন।" + +#: website/public/get-started/index.html:1564 +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" +" archive বিশ্লেষণ করুন:" + +#: website/public/get-started/index.html:1570 +msgctxt "page:get-started/index.html" +msgid "Static application analysis" +msgstr "Static অ্যাপ্লিকেশন বিশ্লেষণ" + +#. {ph0}: .asar +#. {ph1}: "D:/apps/example" +#: website/public/get-started/index.html:1582 +#, 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 "" +"Path-এর জায়গায় আপনার extract করা অ্যাপ ডিরেক্টরি বা {ph0} ফাইল দিন। " +"Windows-এ এখানে {ph1}-এর মতো path কাজ করে।" + +#: website/public/get-started/index.html:1588 +msgctxt "page:get-started/index.html" +msgid "Where do I find an app's .asar file?" +msgstr "একটি অ্যাপের .asar ফাইল কোথায় পাব?" + +#. {ph0}: resources +#: website/public/get-started/index.html:1589 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "Electron apps usually keep it in a {ph0} folder:" +msgstr "Electron অ্যাপ সাধারণত এটি একটি {ph0} ফোল্ডারে রাখে:" + +#. {ph0}: +#. {ph1}: +#. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar +#: website/public/get-started/index.html:1594 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Windows:{ph1} {ph2}" +msgstr "{ph0}Windows:{ph1} {ph2}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar +#. {ph3}: +#. {ph4}: +#: website/public/get-started/index.html:1600 +#, 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} (অ্যাপটিতে right-click করে {ph3}Show Package " +"Contents{ph4} বেছে নিন)" + +#. {ph0}: +#. {ph1}: +#. {ph2}: /opt/<App>/resources/app.asar +#: website/public/get-started/index.html:1608 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Linux:{ph1} often {ph2}" +msgstr "{ph0}Linux:{ph1} প্রায়ই {ph2}" + +#. {ph0}: app.asar +#: website/public/get-started/index.html:1613 +#, 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:1618 +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 "" +"ফলাফলে অ্যাপটি শনাক্ত করা হয়, module-গুলোর মধ্যকার সংযোগ দেখানো হয় এবং " +"সেগুলোর source location দেওয়া হয়। যে সংযোগগুলো REA নিশ্চিত করতে পারে না, " +"সেগুলো ফলাফলে চিহ্নিত থাকে।" + +#. {ph0}: rea +#: website/public/get-started/index.html:1623 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "If you'd like a permanent {ph0} command in your shell:" +msgstr "আপনার shell-এ স্থায়ী একটি {ph0} কমান্ড চাইলে:" + +#: website/public/get-started/index.html:1629 +msgctxt "page:get-started/index.html" +msgid "Install the CLI" +msgstr "CLI ইনস্টল করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1641 +#, 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:1158 +msgctxt "page:get-started/index.html" +msgid "Connect your Ghidra installation" +msgstr "আপনার Ghidra ইনস্টলেশন যুক্ত করুন" + +#: website/public/get-started/index.html:1128 +msgctxt "page:get-started/index.html" +msgid "Connect Ghidra on Windows" +msgstr "Windows-এ Ghidra যুক্ত করুন" + +#: website/public/get-started/index.html:1129 +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-এ fixed local NTFS drive-এ থাকা native x86 ও x64 PE অ্যাপ্লিকেশন" +" ও DLL-এর জন্য পরীক্ষামূলক, শুধু-পড়ার (read-only) সমর্থন আছে। বিদ্যমান " +"Ghidra 12.1.x ইনস্টলেশন এবং 64-bit JDK 21 বা নতুনতর ব্যবহার করুন:" + +#: website/public/get-started/index.html:1152 +msgctxt "page:get-started/index.html" +msgid "" +"Replace the two paths with your installations, then review setup's plan." +msgstr "" +"দুটো path-এর জায়গায় আপনার ইনস্টলেশনের path দিন, তারপর setup-এর পরিকল্পনাটি" +" দেখে নিন।" + +#: website/public/get-started/index.html:1034 +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 "" +"macOS বা Linux-এ Hopper যুক্ত করুন। ওপরের setup কমান্ডটি চালান; এটি বিদ্যমান" +" ইনস্টলেশন খুঁজে নেয়, অথবা আপনার অনুমোদনের জন্য একটি ইনস্টলেশন পরিকল্পনা " +"দেয়।" + +#: website/public/get-started/index.html:1695 +msgctxt "page:get-started/index.html" +msgid "Getting help" +msgstr "সাহায্য পাওয়া" + +#: website/public/get-started/index.html:1697 +msgctxt "page:get-started/index.html" +msgid "If your agent doesn't see REA" +msgstr "আপনার agent যদি REA দেখতে না পায়" + +#. {ph0}: doctor +#: website/public/get-started/index.html:1698 +#, 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 "" +"Setup-এর পরে client রিস্টার্ট করুন বা আবার connect করুন। {ph0} দিয়ে এর REA " +"connection যাচাই করুন; Codex-এর ক্ষেত্রে:" + +#: website/public/get-started/index.html:1709 +msgctxt "page:get-started/index.html" +msgid "If a provider needs attention" +msgstr "কোনো provider-এ সমস্যা থাকলে" + +#: website/public/get-started/index.html:1710 +msgctxt "page:get-started/index.html" +msgid "Check the provider you're using. For Ghidra:" +msgstr "আপনি যে provider ব্যবহার করছেন সেটি যাচাই করুন। Ghidra-র ক্ষেত্রে:" + +#: website/public/get-started/index.html:1713 +msgctxt "page:get-started/index.html" +msgid "Check one provider" +msgstr "একটি provider যাচাই" + +#: website/public/get-started/index.html:1725 +msgctxt "page:get-started/index.html" +msgid "The report gives the failed check and a suggested next step." +msgstr "রিপোর্টে ব্যর্থ যাচাইটি এবং পরবর্তী করণীয়ের পরামর্শ থাকে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1790 +#, 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 FAQ{ph1}{ph2}আপডেট, agent ও বিশ্লেষণ নিয়ে সংক্ষিপ্ত উত্তর।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1794 +#, 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}একটি investigation গাইড বেছে নিন{ph1}{ph2}বাইনারি, Electron অ্যাপ ও " +"ব্রাউজারের হাতে-কলমে উদাহরণ।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1801 +#, 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 issue{ph1}{ph2}কমান্ড ও diagnostics সহ সমস্যা জানান।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1805 +#, 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 ইনস্টল করুন এবং আপনার Coding Agent সেট আপ করুন" + +#: 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 "" +"আপনার coding agent-এর সঙ্গে REA যুক্ত করুন, অথবা টার্মিনাল থেকে একটি local " +"JavaScript বা Electron অ্যাপ পরীক্ষা করুন। Setup, প্রথম প্রশ্ন এবং native " +"provider গাইড।" + +#: website/public/get-started/index.html:275 +msgctxt "page:get-started/index.html" +msgid "Copy Node.js version check" +msgstr "Node.js সংস্করণ যাচাইয়ের কমান্ড কপি করুন" + +#: website/public/get-started/index.html:298 +msgctxt "page:get-started/index.html" +msgid "Copy Node.js installation command for Windows" +msgstr "Windows-এর জন্য Node.js ইনস্টলেশন কমান্ড কপি করুন" + +#: website/public/get-started/index.html:353 +msgctxt "page:get-started/index.html" +msgid "Copy Homebrew Node.js installation command" +msgstr "Homebrew দিয়ে Node.js ইনস্টলেশন কমান্ড কপি করুন" + +#: website/public/get-started/index.html:376 +msgctxt "page:get-started/index.html" +msgid "Copy fnm installation command for Linux" +msgstr "Linux-এর জন্য fnm ইনস্টলেশন কমান্ড কপি করুন" + +#: website/public/get-started/index.html:391 +msgctxt "page:get-started/index.html" +msgid "Copy Node.js 24 commands for Linux" +msgstr "Linux-এর জন্য Node.js 24 কমান্ড কপি করুন" + +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 +msgctxt "page:get-started/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/get-started/index.html:229 +msgctxt "page:get-started/index.html" +msgid "REA getting started guide" +msgstr "REA শুরু করার গাইড" + +#: website/public/get-started/index.html:780 +msgctxt "page:get-started/index.html" +msgid "Copy REA installation prompt" +msgstr "REA ইনস্টলেশনের prompt কপি করুন" + +#: website/public/get-started/index.html:1571 +msgctxt "page:get-started/index.html" +msgid "Copy JavaScript analysis command" +msgstr "JavaScript বিশ্লেষণ কমান্ড কপি করুন" + +#: website/public/get-started/index.html:1630 +msgctxt "page:get-started/index.html" +msgid "Copy CLI installation command" +msgstr "CLI ইনস্টলেশন কমান্ড কপি করুন" + +#: website/public/get-started/index.html:1714 +msgctxt "page:get-started/index.html" +msgid "Copy provider diagnosis command" +msgstr "Provider diagnosis কমান্ড কপি করুন" + +#: website/public/get-started/index.html:1829 +msgctxt "page:get-started/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/guides/browser/index.html:113 +msgctxt "page:guides/browser/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/browser/index.html:205 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" +msgstr "{ph0}হোম{ph1} / {ph2}গাইড{ph3} / ব্রাউজার পর্যবেক্ষণ" + +#. {ph0}:
+#: website/public/guides/browser/index.html:209 +#, 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:210 +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 "" +"একটি ছোট ব্রাউজার অ্যাপ দিয়ে একটি action, তার network request এবং ডাউনলোড " +"তৈরি করা JavaScript-কে একসূত্রে গাঁথুন।" + +#: website/public/guides/browser/index.html:217 +msgctxt "page:guides/browser/index.html" +msgid "In this guide" +msgstr "এই গাইডে" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:219 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}The example{ph1}" +msgstr "{ph0}উদাহরণ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:220 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}Open the browser{ph1}" +msgstr "{ph0}ব্রাউজার খুলুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:221 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}Ask your agent{ph1}" +msgstr "{ph0}আপনার agent-কে জিজ্ঞাসা করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:222 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}Capture from CLI{ph1}" +msgstr "{ph0}CLI থেকে capture{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:223 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0}Read the request and script{ph1}" +msgstr "{ph0}Request ও script পড়ুন{ph1}" + +#: website/public/guides/browser/index.html:228 +msgctxt "page:guides/browser/index.html" +msgid "What happens when you click Export?" +msgstr "Export-এ ক্লিক করলে কী ঘটে?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: notes.json +#: website/public/guides/browser/index.html:229 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "" +"The {ph0}Notes browser example{ph1} has an {ph2}Export notes{ph3} button. " +"Clicking it loads {ph4}, formats the two notes as CSV, and starts a " +"download." +msgstr "" +"{ph0}Notes ব্রাউজার উদাহরণে{ph1} একটি {ph2}Export notes{ph3} বাটন আছে। এতে " +"ক্লিক করলে {ph4} লোড হয়, দুটো নোটকে CSV আকারে সাজানো হয় এবং একটি ডাউনলোড " +"শুরু হয়।" + +#: website/public/guides/browser/index.html:237 +msgctxt "page:guides/browser/index.html" +msgid "From the click to the CSV download" +msgstr "ক্লিক থেকে CSV ডাউনলোড পর্যন্ত" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/guides/browser/index.html:239 +#, 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}Export notes-এ ক্লিক করুন{ph3}{ph4}Capture চলার সময়" +" আপনার ব্রাউজারে action-টি করুন।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/guides/browser/index.html:247 +#, 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}Request রেকর্ড করে{ph3}{ph4}নির্বাচিত পেজ থেকে " +"request URL, response status ও JSON-এর গঠন capture করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: fetch("./notes.json") +#. {ph6}: export.js +#. {ph7}: +#: website/public/guides/browser/index.html:255 +#, 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 · আপনার agent{ph1}{ph2}Export কোড পড়ে{ph3}{ph4}পর্যবেক্ষিত " +"request-কে {ph6}-এর {ph5}-এর সঙ্গে যুক্ত করে।{ph7}" + +#: website/public/guides/browser/index.html:268 +msgctxt "page:guides/browser/index.html" +msgid "Start the capture before clicking Export notes." +msgstr "Export notes-এ ক্লিক করার আগে capture শুরু করুন।" + +#: website/public/guides/browser/index.html:274 +msgctxt "page:guides/browser/index.html" +msgid "Open Chrome with remote debugging" +msgstr "Remote debugging চালু করে Chrome খুলুন" + +#: website/public/guides/browser/index.html:275 +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 "" +"আলাদা একটি browser profile এবং একটি local debugging port দিয়ে hosted Notes " +"উদাহরণটি খুলুন। Linux-এ:" + +#: website/public/guides/browser/index.html:281 +msgctxt "page:guides/browser/index.html" +msgid "Start the example browser" +msgstr "উদাহরণ ব্রাউজার চালু করুন" + +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 +msgctxt "page:guides/browser/index.html" +msgid "Copy" +msgstr "কপি" + +#: website/public/guides/browser/index.html:296 +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-এ আপনার ইনস্টল করা ব্রাউজারের executable path ব্যবহার করুন।" +" পেজের URL-এর জায়গায় পরীক্ষা করতে চান এমন অন্য কোনো পেজও দিতে পারেন।" + +#: website/public/guides/browser/index.html:301 +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 এই চালু থাকা ব্রাউজারের সঙ্গে যুক্ত হয়। পেজের নিয়ন্ত্রণ আপনার হাতেই " +"থাকে — action-টি আপনি করবেন, আর কাজ শেষে ব্রাউজার বন্ধ করবেন।" + +#: website/public/guides/browser/index.html:307 +msgctxt "page:guides/browser/index.html" +msgid "Ask your agent to watch one action" +msgstr "আপনার agent-কে একটি action পর্যবেক্ষণ করতে বলুন" + +#. {ph0}: +#: website/public/guides/browser/index.html:310 +#, 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}আপনার coding agent" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/guides/browser/index.html:323 +#, 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}আমি Export notes-এ ক্লিক করার সময় REA দিয়ে এই পেজটি " +"পরীক্ষা করো। এটি কোন request পাঠায়, আর CSV কীভাবে তৈরি হয়?{ph3}{ph4}{ph5}" + +#. {ph0}: http://127.0.0.1:9222 +#: website/public/guides/browser/index.html:331 +#, 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 "" +"উদাহরণ prompt। আপনার agent-কে debugging endpoint {ph0} এবং পেজের URL দিন। " +"আপনি ক্লিক করার আগে তাকে capture শুরু করতে দিন।" + +#: website/public/guides/browser/index.html:336 +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 "" +"আপনার agent পেজের target খুঁজে বের করে, একটি পর্যবেক্ষণ window শুরু করে এবং " +"তার ফলে পাওয়া প্রমাণ পড়ে। এরপর সে export-এর পেছনের script পরীক্ষা করতে " +"পারে।" + +#: website/public/guides/browser/index.html:343 +msgctxt "page:guides/browser/index.html" +msgid "Or capture from the terminal" +msgstr "অথবা টার্মিনাল থেকে capture করুন" + +#: website/public/guides/browser/index.html:344 +msgctxt "page:guides/browser/index.html" +msgid "Find the page's target ID:" +msgstr "পেজের target ID খুঁজে বের করুন:" + +#: website/public/guides/browser/index.html:347 +msgctxt "page:guides/browser/index.html" +msgid "Find the page" +msgstr "পেজটি খুঁজুন" + +#. {ph0}: TARGET_ID +#: website/public/guides/browser/index.html:360 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "" +"Choose the target with the Notes example URL. Replace {ph0} below with its " +"ID, then run:" +msgstr "" +"Notes উদাহরণের URL-যুক্ত target-টি বেছে নিন। নিচের {ph0}-এর জায়গায় তার ID " +"দিয়ে চালান:" + +#: website/public/guides/browser/index.html:366 +msgctxt "page:guides/browser/index.html" +msgid "Capture the next ten seconds" +msgstr "পরবর্তী দশ সেকেন্ড capture করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:382 +#, 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 "" +"কমান্ডটিকে কয়েক সেকেন্ড connect হতে দিন, তারপর সেই ব্রাউজারে {ph0}Export " +"notes{ph1}-এ ক্লিক করুন। পর্যবেক্ষণ window শেষ হলে ফলাফল আসে।" + +#: website/public/guides/browser/index.html:387 +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 "" +"Capture করা ফলাফলে থাকে নির্বাচিত পেজ, সেই সময়ের network কার্যকলাপ এবং JSON" +" response-এর গঠন। এর আগের request-গুলো এই capture-এর বাইরে।" + +#: website/public/guides/browser/index.html:394 +msgctxt "page:guides/browser/index.html" +msgid "Read the request and export script" +msgstr "Request ও export script পড়ুন" + +#: website/public/guides/browser/index.html:397 +msgctxt "page:guides/browser/index.html" +msgid "Recorded with REA 4.1.0 on the local Notes example" +msgstr "Local Notes উদাহরণে REA 4.1.0 দিয়ে রেকর্ড করা" + +#: website/public/guides/browser/index.html:402 +msgctxt "page:guides/browser/index.html" +msgid "Captured fact" +msgstr "Capture করা তথ্য" + +#: website/public/guides/browser/index.html:403 +msgctxt "page:guides/browser/index.html" +msgid "Value" +msgstr "মান" + +#: website/public/guides/browser/index.html:408 +msgctxt "page:guides/browser/index.html" +msgid "Request" +msgstr "Request" + +#: website/public/guides/browser/index.html:412 +msgctxt "page:guides/browser/index.html" +msgid "Response" +msgstr "Response" + +#: website/public/guides/browser/index.html:416 +msgctxt "page:guides/browser/index.html" +msgid "Request initiator" +msgstr "Request initiator" + +#. {ph0}: export.js +#: website/public/guides/browser/index.html:417 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0} · script" +msgstr "{ph0} · script" + +#: website/public/guides/browser/index.html:420 +msgctxt "page:guides/browser/index.html" +msgid "Response structure" +msgstr "Response-এর গঠন" + +#. {ph0}: notes[] +#. {ph1}: id +#. {ph2}: title +#: website/public/guides/browser/index.html:421 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0} with {ph1} and {ph2} fields" +msgstr "{ph1} ও {ph2} field-সহ {ph0}" + +#: website/public/guides/browser/index.html:431 +msgctxt "page:guides/browser/index.html" +msgid "Read the loaded scripts" +msgstr "লোড হওয়া script পড়ুন" + +#. {ph0}: export.js +#: website/public/guides/browser/index.html:445 +#, 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 "" +"Request থেকে ডেটার উৎস বোঝা যায়, আর REA এর initiator হিসেবে {ph0} রেকর্ড " +"করে। ডেটা কীভাবে ব্যবহৃত হয় দেখতে capture করা script source পড়ুন:" + +#. {ph0}: export.js +#: website/public/guides/browser/index.html:452 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "{ph0} · example source excerpt" +msgstr "{ph0} · উদাহরণের সোর্সের অংশ" + +#. {ph0}: notes.json +#: website/public/guides/browser/index.html:465 +#, 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 response ব্যবহার করে তৈরি হয়। CSV সাজানোর ধাপটি" +" আসে script থেকে; network capture প্রমাণ করে যে এই ক্লিক {ph0} request " +"করেছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: export.js +#. {ph4}: +#. {ph5}: +#. {ph6}: notes.json +#. {ph7}: +#: website/public/guides/browser/index.html:470 +#, 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}: notes.json +#: website/public/guides/browser/index.html:481 +#, 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 "" +"যে script {ph0} request করে সেটি খুঁজে বের করুন। কমা বা উদ্ধৃতিচিহ্নযুক্ত " +"শিরোনাম এটি কীভাবে escape করে?" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:486 +#, 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 অ্যাপের ক্ষেত্রে ফাইল ও process boundary " +"অনুসরণ করতে {ph0}অ্যাপ্লিকেশন workflow{ph1} দিয়ে এগিয়ে যান।" + +#: website/public/guides/browser/index.html:6 +msgctxt "page:guides/browser/index.html" +msgid "Browser and Network Analysis — REA" +msgstr "ব্রাউজার ও Network বিশ্লেষণ — 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 দিয়ে একটি Notes export পর্যবেক্ষণ করুন: একটি ব্রাউজার পেজ বেছে নিন, " +"একটি ক্লিক capture করুন, request পরীক্ষা করুন এবং export script অনুসরণ করুন।" + +#: website/public/guides/browser/index.html:216 +msgctxt "page:guides/browser/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/guides/browser/index.html:226 +msgctxt "page:guides/browser/index.html" +msgid "Browser observation" +msgstr "ব্রাউজার পর্যবেক্ষণ" + +#: website/public/guides/browser/index.html:282 +msgctxt "page:guides/browser/index.html" +msgid "Copy start the example browser" +msgstr "উদাহরণ ব্রাউজার চালুর কমান্ড কপি করুন" + +#: website/public/guides/browser/index.html:314 +msgctxt "page:guides/browser/index.html" +msgid "Copy example prompt" +msgstr "উদাহরণ prompt কপি করুন" + +#: website/public/guides/browser/index.html:348 +msgctxt "page:guides/browser/index.html" +msgid "Copy find the page" +msgstr "পেজ খোঁজার কমান্ড কপি করুন" + +#: website/public/guides/browser/index.html:367 +msgctxt "page:guides/browser/index.html" +msgid "Copy capture the next ten seconds" +msgstr "পরবর্তী দশ সেকেন্ড capture-এর কমান্ড কপি করুন" + +#: website/public/guides/browser/index.html:432 +msgctxt "page:guides/browser/index.html" +msgid "Copy read the loaded scripts" +msgstr "লোড হওয়া script পড়ার কমান্ড কপি করুন" + +#: website/public/guides/browser/index.html:519 +msgctxt "page:guides/browser/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/guides/index.html:113 +msgctxt "page:guides/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/index.html:205 +#, python-brace-format +msgctxt "page:guides/index.html" +msgid "{ph0}Home{ph1} / Guides" +msgstr "{ph0}হোম{ph1} / গাইড" + +#: website/public/guides/index.html:206 +msgctxt "page:guides/index.html" +msgid "REA guides." +msgstr "REA গাইড।" + +#: website/public/guides/index.html:207 +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 "" +"একটি native function, একটি Electron export বা একটি ব্রাউজার request বিশ্লেষণ" +" করুন। প্রতিটি গাইডে prompt, কোড ও ফলাফল আছে।" + +#: website/public/guides/index.html:214 +msgctxt "page:guides/index.html" +msgid "First investigation" +msgstr "প্রথম অনুসন্ধান" + +#: website/public/guides/index.html:216 +msgctxt "page:guides/index.html" +msgid "Set up REA" +msgstr "REA সেট আপ করুন" + +#: website/public/guides/index.html:217 +msgctxt "page:guides/index.html" +msgid "Connect your coding agent or use REA from the terminal." +msgstr "আপনার coding agent যুক্ত করুন বা টার্মিনাল থেকে REA ব্যবহার করুন।" + +#: website/public/guides/index.html:218 +msgctxt "page:guides/index.html" +msgid "Get started with REA" +msgstr "REA দিয়ে শুরু করুন" + +#: website/public/guides/index.html:222 +msgctxt "page:guides/index.html" +msgid "Native binaries" +msgstr "Native বাইনারি" + +#: website/public/guides/index.html:224 +msgctxt "page:guides/index.html" +msgid "Recover a sound-pan calculation" +msgstr "একটি sound-pan হিসাব উদ্ধার করুন" + +#: website/public/guides/index.html:225 +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 গেমের executable দিয়ে শুরু করুন। Instruction পরীক্ষা করুন, " +"একটি caller অনুসরণ করুন, সংখ্যাসূচক constant পড়ুন এবং উদ্ধার করা C যাচাই " +"করুন।" + +#: website/public/guides/index.html:230 +msgctxt "page:guides/index.html" +msgid "Instructions" +msgstr "Instruction" + +#: website/public/guides/index.html:231 +msgctxt "page:guides/index.html" +msgid "Caller" +msgstr "Caller" + +#: website/public/guides/index.html:232 +msgctxt "page:guides/index.html" +msgid "Constants" +msgstr "Constant" + +#: website/public/guides/index.html:233 +msgctxt "page:guides/index.html" +msgid "C function" +msgstr "C function" + +#: website/public/guides/index.html:235 +msgctxt "page:guides/index.html" +msgid "Native analysis guide" +msgstr "Native বিশ্লেষণ গাইড" + +#: website/public/guides/index.html:239 +msgctxt "page:guides/index.html" +msgid "JavaScript & Electron" +msgstr "JavaScript ও Electron" + +#: website/public/guides/index.html:241 +msgctxt "page:guides/index.html" +msgid "Follow a CSV export" +msgstr "একটি CSV export অনুসরণ করুন" + +#: website/public/guides/index.html:242 +msgctxt "page:guides/index.html" +msgid "" +"A small Notes app spreads one feature across the renderer, preload and main " +"process. Use REA to connect the API, IPC channel and file writer." +msgstr "" +"একটি ছোট Notes অ্যাপ একটি ফিচারকে renderer, preload ও main process জুড়ে " +"ছড়িয়ে রাখে। REA দিয়ে API, IPC channel ও file writer-কে একসূত্রে গাঁথুন।" + +#: website/public/guides/index.html:248 +msgctxt "page:guides/index.html" +msgid "Button" +msgstr "বাটন" + +#: website/public/guides/index.html:249 +msgctxt "page:guides/index.html" +msgid "Preload API" +msgstr "Preload API" + +#: website/public/guides/index.html:250 +msgctxt "page:guides/index.html" +msgid "IPC" +msgstr "IPC" + +#: website/public/guides/index.html:250 +msgctxt "page:guides/index.html" +msgid "CSV file" +msgstr "CSV ফাইল" + +#: website/public/guides/index.html:252 +msgctxt "page:guides/index.html" +msgid "JavaScript & Electron guide" +msgstr "JavaScript ও Electron গাইড" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/index.html:255 +#, python-brace-format +msgctxt "page:guides/index.html" +msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." +msgstr "" +"আরও বড় packaged অ্যাপের জন্য {ph0}Notion-এর clipboard bridge{ph1} অনুসরণ " +"করুন।" + +#: website/public/guides/index.html:262 +msgctxt "page:guides/index.html" +msgid "Browser behavior" +msgstr "ব্রাউজারের আচরণ" + +#: website/public/guides/index.html:264 +msgctxt "page:guides/index.html" +msgid "Observe a click" +msgstr "একটি ক্লিক পর্যবেক্ষণ করুন" + +#: website/public/guides/index.html:265 +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 "" +"একটি কার্যকর Notes উদাহরণ খুলুন, একটি export request capture করুন এবং যে কোড" +" তার response-কে ডাউনলোডে পরিণত করে তা খুঁজে বের করুন।" + +#: website/public/guides/index.html:270 +msgctxt "page:guides/index.html" +msgid "Your click" +msgstr "আপনার ক্লিক" + +#: website/public/guides/index.html:271 +msgctxt "page:guides/index.html" +msgid "Captured request" +msgstr "Capture করা request" + +#: website/public/guides/index.html:272 +msgctxt "page:guides/index.html" +msgid "Export script" +msgstr "Export script" + +#: website/public/guides/index.html:274 +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 "Reverse Engineering গাইড — REA" + +#: website/public/guides/index.html:7 +msgctxt "page:guides/index.html" +msgid "" +"Learn REA through short worked examples: a native calculation, an Electron " +"CSV export and a browser request." +msgstr "" +"ছোট ছোট হাতে-কলমে উদাহরণের মাধ্যমে REA শিখুন: একটি native হিসাব, একটি " +"Electron CSV export এবং একটি ব্রাউজার request।" + +#: website/public/guides/index.html:294 +msgctxt "page:guides/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/guides/javascript/index.html:113 +msgctxt "page:guides/javascript/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/javascript/index.html:205 +#, 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}:
+#: website/public/guides/javascript/index.html:209 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "Trace an Electron{ph0}CSV export." +msgstr "একটি Electron{ph0}CSV export trace করুন।" + +#: website/public/guides/javascript/index.html:210 +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:217 +msgctxt "page:guides/javascript/index.html" +msgid "In this guide" +msgstr "এই গাইডে" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:219 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}The example{ph1}" +msgstr "{ph0}উদাহরণ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:220 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}Ask your agent{ph1}" +msgstr "{ph0}আপনার agent-কে জিজ্ঞাসা করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:221 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}Trace the export code{ph1}" +msgstr "{ph0}Export কোড trace করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:222 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}Try the example{ph1}" +msgstr "{ph0}উদাহরণটি চালিয়ে দেখুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:223 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}Inspect the CSV writer{ph1}" +msgstr "{ph0}CSV writer পরীক্ষা করুন{ph1}" + +#: website/public/guides/javascript/index.html:228 +msgctxt "page:guides/javascript/index.html" +msgid "Where does “Export notes” go?" +msgstr "“Export notes” কোথায় যায়?" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:229 +#, 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}Export " +"notes{ph1}-এ ক্লিক করলে পেজের একটি API call হয়, সেটি main process-এ পৌঁছায়" +" এবং একটি CSV লেখা হয়। আচরণটি কয়েকটি ফাইলে ছড়িয়ে আছে।" + +#: website/public/guides/javascript/index.html:236 +msgctxt "page:guides/javascript/index.html" +msgid "The CSV export across Electron processes" +msgstr "Electron process-গুলো জুড়ে CSV export" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: notes.exportCsv() +#. {ph4}: +#. {ph5}: +#. {ph6}: renderer.js +#. {ph7}: preload.js +#. {ph8}: +#: website/public/guides/javascript/index.html:240 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "" +"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} calls the API exposed " +"by {ph7}.{ph8}" +msgstr "" +"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} {ph7}-এর উন্মুক্ত করা " +"API call করে।{ph8}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: notes:export +#. {ph4}: +#. {ph5}: +#. {ph6}: +#: website/public/guides/javascript/index.html:248 +#, 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}Process-গুলোর মাঝে{ph1}{ph2}{ph3}{ph4}{ph5}Preload একটি IPC channel " +"invoke করে: main process-এর উদ্দেশে একটি নামযুক্ত message।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: main.js +#. {ph6}: +#: website/public/guides/javascript/index.html:256 +#, 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}Main process{ph1}{ph2}একটি export handler{ph3}{ph4}{ph5} সেই channel " +"সামলায় এবং CSV writer call করে।{ph6}" + +#. {ph0}: csv.js +#. {ph1}: main.js +#. {ph2}: downloads/notes.csv +#: website/public/guides/javascript/index.html:265 +#, 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:269 +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 call-টিকে তার handler-এর সঙ্গে মেলায় এবং উন্মুক্ত API " +"শনাক্ত করে। Path-টি কোড থেকে অনুমান করা; আসলে কী চলে তা runtime capture " +"দিয়ে যাচাই করা যায়।" + +#: website/public/guides/javascript/index.html:277 +msgctxt "page:guides/javascript/index.html" +msgid "Ask about the CSV export" +msgstr "CSV export নিয়ে জিজ্ঞাসা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:278 +#, 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}আপনার agent-কে REA-এর সঙ্গে যুক্ত করুন{ph1} এবং তাকে অ্যাপ ডিরেক্টরি বা" +" ASAR ফাইলটি দিন:" + +#. {ph0}: +#: website/public/guides/javascript/index.html:284 +#, 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}আপনার coding agent" + +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 +msgctxt "page:guides/javascript/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/guides/javascript/index.html:297 +#, 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}এই অ্যাপে নোট export করলে কী হয় তা REA দিয়ে খুঁজে বের করো।" +" CSV কোথায় তৈরি হয়?{ph3}{ph4}{ph5}" + +#. {ph0}: app.asar +#: website/public/guides/javascript/index.html:305 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "" +"Example prompt. Include the absolute path to the application folder or " +"{ph0}." +msgstr "উদাহরণ prompt। অ্যাপ্লিকেশন ফোল্ডার বা {ph0}-এর absolute path দিন।" + +#: website/public/guides/javascript/index.html:309 +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 অ্যাপ্লিকেশনের ফাইলগুলো পড়ে entrypoint, module ও process boundary-র " +"একটি মানচিত্র তৈরি করে। আপনার agent সেই মানচিত্র ব্যবহার করে অনুসন্ধানটি " +"export ফিচারে সীমিত করে।" + +#: website/public/guides/javascript/index.html:316 +msgctxt "page:guides/javascript/index.html" +msgid "Trace the export code" +msgstr "Export কোড trace করুন" + +#: website/public/guides/javascript/index.html:317 +msgctxt "page:guides/javascript/index.html" +msgid "The page calls a small API" +msgstr "পেজটি একটি ছোট API call করে" + +#. {ph0}: renderer.js +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0} · example source" +msgstr "{ph0} · উদাহরণের সোর্স" + +#: website/public/guides/javascript/index.html:330 +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 "" +"পেজটি method-এর নাম জানে। এর implementation আছে preload-এ, যা সেটি renderer-" +"এর কাছে উন্মুক্ত করে।" + +#. {ph0}: notes.exportCsv +#. {ph1}: notes:export +#: website/public/guides/javascript/index.html:344 +#, 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} এবং আক্ষরিক channel {ph1} রেকর্ড করে। এরপর সেই invocation-কে main " +"process-এর একমাত্র মিলে যাওয়া handler-এর সঙ্গে জোড়া মেলায়।" + +#. {ph0}: csv.js +#. {ph1}: notes.csv +#: website/public/guides/javascript/index.html:361 +#, 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} নোটগুলো সাজায়, আর main " +"process ব্যবহারকারীর Downloads ফোল্ডারে {ph1} লেখে।" + +#: website/public/guides/javascript/index.html:368 +msgctxt "page:guides/javascript/index.html" +msgid "REA result · summary.ipc excerpt" +msgstr "REA ফলাফল · summary.ipc-এর অংশ" + +#: website/public/guides/javascript/index.html:378 +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, channel ও " +"handler-এর ফলাফলের সঙ্গে source location দেওয়া আছে।" + +#: website/public/guides/javascript/index.html:384 +msgctxt "page:guides/javascript/index.html" +msgid "Analyze the example yourself" +msgstr "উদাহরণটি নিজে বিশ্লেষণ করুন" + +#. {ph0}: notes-example +#. {ph1}: Node.js +#: website/public/guides/javascript/index.html:385 +#, 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 "" +"উদাহরণটি ডাউনলোড করে unzip করুন। Archive-এ সম্পূর্ণ {ph0} ফোল্ডারটি আছে। " +"{ph1} ও npm দিয়ে এটি বিশ্লেষণ করুন; এই উদাহরণের জন্য Electron লাগবে না।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/javascript/index.html:391 +#, python-brace-format +msgctxt "page:guides/javascript/index.html" +msgid "{ph0}Download example ZIP{ph1}" +msgstr "{ph0}উদাহরণের ZIP ডাউনলোড করুন{ph1}" + +#: website/public/guides/javascript/index.html:400 +msgctxt "page:guides/javascript/index.html" +msgid "Browse the six source files" +msgstr "ছয়টি সোর্স ফাইল দেখুন" + +#: website/public/guides/javascript/index.html:436 +msgctxt "page:guides/javascript/index.html" +msgid "Static application analysis" +msgstr "Static অ্যাপ্লিকেশন বিশ্লেষণ" + +#. {ph0}: normalized_result.summary.ipc +#. {ph1}: normalized_result.graph +#: website/public/guides/javascript/index.html:449 +#, 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 "" +"Path-এর জায়গায় আপনার unzip করা ফোল্ডারটি দিন। {ph0}-এ একটি IPC channel এবং" +" একটি মিলে যাওয়া handler পাবেন। Source location আছে {ph1}-এ।" + +#: website/public/guides/javascript/index.html:455 +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 path দিন। REA-এর " +"feature tracing টুল দিয়ে একটি agent আক্ষরিক string, API-এর নাম বা IPC " +"channel অনুসরণ করতে পারে।" + +#: website/public/guides/javascript/index.html:462 +msgctxt "page:guides/javascript/index.html" +msgid "Inspect the CSV writer" +msgstr "CSV writer পরীক্ষা করুন" + +#. {ph0}: notes:export +#: website/public/guides/javascript/index.html:464 +#, 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} অনুসরণ করে তার handler পর্যন্ত যান। কোন কোন input CSV writer-এ " +"পৌঁছায়, আর ফাইল লেখা ব্যর্থ হলে কী হয়?" + +#: website/public/guides/javascript/index.html:470 +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 "" +"এই খুঁটিনাটিগুলো পরীক্ষা করতে source location ব্যবহার করুন। হিসাব করে তৈরি " +"channel নাম এবং অস্পষ্ট handler অমীমাংসিত থেকে যেতে পারে; runtime পর্যবেক্ষণ" +" সেগুলো অনুসন্ধানের আরেকটি পথ দেয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/javascript/index.html:476 +#, 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-এর clipboard bridge অনুসরণ করুন{ph1} {ph2}একই পদ্ধতি একটি " +"packaged Electron অ্যাপে প্রয়োগ করুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/javascript/index.html:482 +#, 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}একটি ব্রাউজার export পর্যবেক্ষণ করুন{ph1}{ph2}একটি আসল ক্লিক capture " +"করে দেখুন সেটি কোন request পাঠায়।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/javascript/index.html:488 +#, 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}একটি native function অনুসরণ করুন{ph1}{ph2}কোনো ফিচার native কোডের ওপর " +"নির্ভর করলে বাইনারির ভেতরে এগিয়ে যান।{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 "" +"REA দিয়ে একটি Notes CSV export-কে renderer API, preload ও IPC handler-এর " +"মধ্য দিয়ে trace করুন। ডাউনলোডযোগ্য উদাহরণ ফাইল ও যাচাইকৃত বিশ্লেষণের " +"ফলাফলসহ।" + +#: website/public/guides/javascript/index.html:216 +msgctxt "page:guides/javascript/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/guides/javascript/index.html:226 +msgctxt "page:guides/javascript/index.html" +msgid "JavaScript & Electron" +msgstr "JavaScript ও Electron" + +#: website/public/guides/javascript/index.html:288 +msgctxt "page:guides/javascript/index.html" +msgid "Copy example prompt" +msgstr "উদাহরণ prompt কপি করুন" + +#: website/public/guides/javascript/index.html:437 +msgctxt "page:guides/javascript/index.html" +msgid "Copy static application analysis" +msgstr "Static অ্যাপ্লিকেশন বিশ্লেষণ কপি করুন" + +#: website/public/guides/javascript/index.html:515 +msgctxt "page:guides/javascript/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/guides/native/index.html:113 +msgctxt "page:guides/native/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/native/index.html:205 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" +msgstr "{ph0}হোম{ph1} / {ph2}গাইড{ph3} / Native বিশ্লেষণ" + +#. {ph0}:
+#: website/public/guides/native/index.html:208 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "Recover DX-Ball's{ph0}sound-pan calculation." +msgstr "DX-Ball-এর{ph0}sound-pan হিসাব উদ্ধার করুন।" + +#: website/public/guides/native/index.html:209 +msgctxt "page:guides/native/index.html" +msgid "" +"Inspect the original instructions, identify the input and constants, then " +"check the recovered C." +msgstr "" +"মূল instruction পরীক্ষা করুন, input ও constant শনাক্ত করুন, তারপর উদ্ধার করা" +" C যাচাই করুন।" + +#: website/public/guides/native/index.html:216 +msgctxt "page:guides/native/index.html" +msgid "In this guide" +msgstr "এই গাইডে" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:218 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}The example{ph1}" +msgstr "{ph0}উদাহরণ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:219 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}Ask your agent{ph1}" +msgstr "{ph0}আপনার agent-কে জিজ্ঞাসা করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:220 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}Read the REA results{ph1}" +msgstr "{ph0}REA-এর ফলাফল পড়ুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:221 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}Recover and check{ph1}" +msgstr "{ph0}উদ্ধার ও যাচাই{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:222 +#, 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:227 +msgctxt "page:guides/native/index.html" +msgid "Calculate left/right sound panning" +msgstr "বাম/ডান sound panning হিসাব করা" + +#: website/public/guides/native/index.html:228 +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-এ একটি brick-এ আঘাত লাগলে স্ক্রিনের একটি অনুভূমিক অবস্থান পাওয়া " +"যায়। Sound কোড সেটিকে বাম/ডান panning-এর মানে রূপান্তর করে।" + +#. {ph0}: 0x00406400 +#. {ph1}: __ftol() +#: website/public/guides/native/index.html:232 +#, 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 "" +"শুরুর function {ph0}-এর decompiler ফলাফল ছোট: {ph1}-এ একটি call। REA এর " +"instruction ও caller-ও ফেরত দেয়, যা থেকে agent অনুপস্থিত হিসাবটুকু খুঁজে " +"বের করার পথ পায়।" + +#: website/public/guides/native/index.html:239 +msgctxt "page:guides/native/index.html" +msgid "New to these terms?" +msgstr "এই পরিভাষাগুলো নতুন?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: MOV +#. {ph3}: ADD +#: website/public/guides/native/index.html:241 +#, 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}Instruction:{ph1} processor যে ধাপগুলো চালায়, পড়ার উপযোগী রূপে " +"দেখানো, যেমন {ph2} বা {ph3}।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:246 +#, 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} instruction-কে আবার C-এর মতো কোডে " +"ফিরিয়ে আনার জন্য একটি analysis টুলের প্রচেষ্টা। এই উদাহরণের মতো এতে কিছু " +"অংশ বাদ পড়তে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:251 +#, 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}Caller:{ph1} যে function এটিকে call করে। এ থেকে বোঝা যায় কোন মান ভেতরে" +" পাঠানো হয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 0x00406400 +#: website/public/guides/native/index.html:255 +#, 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}Address:{ph1} প্রোগ্রামের ভেতরের একটি অবস্থান, hexadecimal-এ লেখা, যেমন" +" {ph2}।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:259 +#, 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}Constant:{ph1} প্রোগ্রামে সংরক্ষিত নির্দিষ্ট সংখ্যা, raw byte হিসেবে " +"পড়ে decode করা হয়।" + +#: website/public/guides/native/index.html:266 +msgctxt "page:guides/native/index.html" +msgid "Three pieces of evidence, one calculation" +msgstr "তিনটি প্রমাণ, একটি হিসাব" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/guides/native/index.html:270 +#, 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 · Instruction{ph1}{ph2}একটি integer input{ph3}{ph4}Stack থেকে পড়া " +"একটি মান floating-point instruction-গুলো ব্যবহার করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: 20 + 30 × tile_x +#. {ph6}: +#: website/public/guides/native/index.html:278 +#, 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 · Caller{ph1}{ph2}একটি screen coordinate{ph3}{ph4}Brick-hit caller " +"{ph5} পাঠায়।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: 1.5625 +#. {ph6}: 500.0 +#. {ph7}: +#: website/public/guides/native/index.html:286 +#, 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 · Data byte{ph1}{ph2}সংখ্যাসূচক constant{ph3}{ph4}Reference করা " +"byte-গুলো decode করলে পাওয়া যায় {ph5}, {ph6} এবং একটি scale মান।{ph7}" + +#: website/public/guides/native/index.html:298 +msgctxt "page:guides/native/index.html" +msgid "" +"REA supplies the instructions, call relationship and bytes. The agent " +"interprets them together." +msgstr "" +"REA দেয় instruction, call-এর সম্পর্ক ও byte। Agent সেগুলো একসঙ্গে ব্যাখ্যা " +"করে।" + +#: website/public/guides/native/index.html:305 +msgctxt "page:guides/native/index.html" +msgid "Ask about the behavior" +msgstr "আচরণ নিয়ে জিজ্ঞাসা করুন" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/native/index.html:306 +#, 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}আপনার agent-এর সঙ্গে REA যুক্ত করে{ph1} এবং {ph2}একটি native analysis " +"টুল সেট আপ করে{ph3} local executable ও একটি প্রশ্ন দিন:" + +#: website/public/guides/native/index.html:317 +msgctxt "page:guides/native/index.html" +msgid "Which analysis tool should I use?" +msgstr "কোন analysis টুল ব্যবহার করব?" + +#: website/public/guides/native/index.html:318 +msgctxt "page:guides/native/index.html" +msgid "REA needs one of these to read native programs:" +msgstr "Native প্রোগ্রাম পড়তে REA-এর এগুলোর যেকোনো একটি লাগে:" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:320 +#, 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-এর setup এটি খুঁজে নেয় বা ইনস্টল " +"করার প্রস্তাব দেয়। macOS-এ প্রথম বিশ্লেষণের আগে Hopper একবার খুলে demo mode" +" বেছে নিন বা license সক্রিয় করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:326 +#, 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-bit JDK 21 বা নতুনতর লাগে।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:331 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "" +"{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." +msgstr "{ph0}IDA{ph1} (Windows): MCP নিবন্ধনসহ বিদ্যমান IDA setup-এর জন্য।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:336 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "See {ph0}Set up native analysis{ph1} for the steps." +msgstr "ধাপগুলোর জন্য {ph0}Native বিশ্লেষণ সেট আপ{ph1} দেখুন।" + +#. {ph0}: +#: website/public/guides/native/index.html:344 +#, 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}আপনার coding agent" + +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 +msgctxt "page:guides/native/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/guides/native/index.html:357 +#, 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}DX-Ball কীভাবে sound panning হিসাব করে তা REA দিয়ে খুঁজে " +"বের করো। হিসাবটি ব্যাখ্যা করো এবং কোড দেখাও।{ph3}{ph4}{ph5}" + +#: website/public/guides/native/index.html:365 +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 "" +"উদাহরণ prompt। আপনার agent-কে আপনার local DX-Ball 1.07 executable-এর path " +"দিন। REA-তে DX-Ball দেওয়া নেই, তাই নিজের কপি ব্যবহার করুন, অথবা আপনার কাছে " +"থাকা অন্য কোনো ছোট Windows প্রোগ্রাম নিয়ে একই ধরনের প্রশ্ন করুন।" + +#: website/public/guides/native/index.html:372 +msgctxt "page:guides/native/index.html" +msgid "How do I get a file's full path?" +msgstr "একটি ফাইলের পূর্ণ path কীভাবে পাব?" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/native/index.html:374 +#, 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-এ ফাইলটিতে right-click করে {ph2}Copy as " +"path{ph3} বেছে নিন। Windows 10-এ right-click করার সময় Shift চেপে ধরুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/guides/native/index.html:379 +#, 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-এ ফাইলটিতে right-click করুন, Option চেপে ধরে " +"{ph2}Copy \"…\" as Pathname{ph3} বেছে নিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:383 +#, 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} ফাইলটি টেনে টার্মিনাল window-তে ছেড়ে দিন, path " +"দেখা যাবে।" + +#: website/public/guides/native/index.html:391 +msgctxt "page:guides/native/index.html" +msgid "Read the REA results" +msgstr "REA-এর ফলাফল পড়ুন" + +#: website/public/guides/native/index.html:392 +msgctxt "page:guides/native/index.html" +msgid "Read the input" +msgstr "Input পড়ুন" + +#: website/public/guides/native/index.html:395 +msgctxt "page:guides/native/index.html" +msgid "REA instruction excerpt · 0x406409" +msgstr "REA instruction-এর অংশ · 0x406409" + +#: website/public/guides/native/index.html:401 +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 "" +"Instruction-গুলো একটি integer argument লোড করে floating-point হিসাবের জন্য " +"রূপান্তর করে। প্রথম pseudocode-এ এই input-টিই অনুপস্থিত ছিল।" + +#: website/public/guides/native/index.html:406 +msgctxt "page:guides/native/index.html" +msgid "Follow the caller" +msgstr "Caller অনুসরণ করুন" + +#: website/public/guides/native/index.html:409 +msgctxt "page:guides/native/index.html" +msgid "REA caller excerpt · 0x411f5b" +msgstr "REA caller-এর অংশ · 0x411f5b" + +#. {ph0}: 0x14 +#: website/public/guides/native/index.html:415 +#, 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 brick-hit caller-টি শনাক্ত করে। এর আগের instruction-গুলো tile " +"coordinate-কে 30 দিয়ে গুণ করে; {ph0} (20) যোগ করলে brick-এর screen অবস্থান " +"পাওয়া যায়।" + +#: website/public/guides/native/index.html:420 +msgctxt "page:guides/native/index.html" +msgid "Read the referenced constants" +msgstr "Reference করা constant পড়ুন" + +#: website/public/guides/native/index.html:423 +msgctxt "page:guides/native/index.html" +msgid "REA byte results · interpreted as little-endian doubles" +msgstr "REA byte ফলাফল · little-endian double হিসেবে ব্যাখ্যা করা" + +#: website/public/guides/native/index.html:431 +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 "" +"হিসাবটি এই address-গুলো reference করে। Byte পড়লে আসল মান পাওয়া যায়; " +"instruction-এর ক্রম agent-কে বলে দেয় সেগুলো কীভাবে ব্যবহৃত হয়।" + +#: website/public/guides/native/index.html:438 +msgctxt "page:guides/native/index.html" +msgid "Write and check the recovered function" +msgstr "উদ্ধার করা function লিখে যাচাই করুন" + +#: website/public/guides/native/index.html:440 +msgctxt "page:guides/native/index.html" +msgid "Recovered C · excerpt" +msgstr "উদ্ধার করা C · অংশবিশেষ" + +#: website/public/guides/native/index.html:447 +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 "" +"Scale 1.0 হলে screen অবস্থান 0, 320 ও 640 integer-এ রূপান্তরের আগে যথাক্রমে " +"−500, 0 ও 500-এ পরিণত হয়। হিসাবটি স্ক্রিনের মাঝখানকে stereo field-এর " +"মাঝখানে রাখে।" + +#: website/public/guides/native/index.html:452 +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 "" +"Agent REA-এর ফলাফল ব্যবহার করে C কোডটি লিখেছে। আলাদা যাচাইয়ে 3,205টি input " +"মূল x86 function-এর সঙ্গে তুলনা করা হয়েছে এবং সম্পূর্ণ function-এর compile " +"করা 63টি byte-ই পুনরুৎপাদিত হয়েছে।" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:457 +#, python-brace-format +msgctxt "page:guides/native/index.html" +msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" +msgstr "{ph0}পূর্ণ অনুসন্ধান এবং assembly থেকে C-এর তুলনা দেখুন{ph1}" + +#: website/public/guides/native/index.html:464 +msgctxt "page:guides/native/index.html" +msgid "Try it with your own binary" +msgstr "নিজের বাইনারি দিয়ে চেষ্টা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/native/index.html:465 +#, 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}একটি native analysis provider যুক্ত করুন{ph1}, তারপর আপনার agent-কে " +"একটি local executable বা library এবং অনুসন্ধানের জন্য একটি ফিচার দিন। শুরুর " +"জন্য ভালো প্রশ্ন হতে পারে “এই ফাইলটি কীভাবে parse করা হয়?” বা “কোন function" +" এই menu action সামলায়?”" + +#: website/public/guides/native/index.html:472 +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 "" +"কোনো function-এর নাম বা address আগে থেকে জানা থাকলে টার্মিনাল থেকেই query " +"করতে পারেন। কনফিগার করা Ghidra ইনস্টলেশনের ক্ষেত্রে:" + +#: website/public/guides/native/index.html:478 +msgctxt "page:guides/native/index.html" +msgid "Function analysis" +msgstr "Function বিশ্লেষণ" + +#. {ph0}: main +#: website/public/guides/native/index.html:491 +#, 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 "" +"টার্গেটের path এবং {ph0}-এর জায়গায় নিজের function-এর নাম বা address দিন। " +"প্রতিটি CLI invocation বাইনারিটি import ও বিশ্লেষণ করে, তারপর তার session " +"বন্ধ করে দেয়। আপনার agent-এর MCP query-গুলো session খোলা থাকা পর্যন্ত " +"import করা বাইনারিটিই আবার ব্যবহার করে।" + +#: website/public/guides/native/index.html:497 +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 "" +"Instruction ও reference-এর পাশাপাশি pseudocode পড়ুন। কোনো ফলাফলে একটি call " +"বা মান অমীমাংসিত থাকলে, সেই অবস্থানটিকেই পরবর্তী প্রশ্ন বানান।" + +#: website/public/guides/native/index.html:6 +msgctxt "page:guides/native/index.html" +msgid "Native Binary Analysis — REA" +msgstr "Native বাইনারি বিশ্লেষণ — 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 দিয়ে একটি native হিসাব উদ্ধার করুন: instruction পরীক্ষা করুন, একটি " +"caller অনুসরণ করুন, constant পড়ুন এবং পুনর্গঠিত C যাচাই করুন।" + +#: website/public/guides/native/index.html:215 +msgctxt "page:guides/native/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/guides/native/index.html:225 +msgctxt "page:guides/native/index.html" +msgid "Native analysis" +msgstr "Native বিশ্লেষণ" + +#: website/public/guides/native/index.html:348 +msgctxt "page:guides/native/index.html" +msgid "Copy example prompt" +msgstr "উদাহরণ prompt কপি করুন" + +#: website/public/guides/native/index.html:479 +msgctxt "page:guides/native/index.html" +msgid "Copy function analysis" +msgstr "Function বিশ্লেষণ কপি করুন" + +#: website/public/guides/native/index.html:521 +msgctxt "page:guides/native/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/index.html:115 +msgctxt "page:index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 +msgctxt "page:index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/index.html:208 website/public/index.html:256 +msgctxt "page:index.html" +msgid "Set up REA" +msgstr "REA সেট আপ করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:219 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Set up REA{ph1}" +msgstr "{ph0}REA সেট আপ{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:221 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Dinosaur game{ph1}" +msgstr "{ph0}ডাইনোসর গেম{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:222 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Calculator{ph1}" +msgstr "{ph0}Calculator{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:224 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Try REA{ph1}" +msgstr "{ph0}REA ব্যবহার করে দেখুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:225 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Go deeper{ph1}" +msgstr "{ph0}আরও গভীরে{ph1}" + +#: website/public/index.html:234 +msgctxt "page:index.html" +msgid "Reverse engineering, with your coding agent" +msgstr "আপনার coding agent-এর সঙ্গে reverse engineering" + +#. {ph0}:
+#: website/public/index.html:235 +#, python-brace-format +msgctxt "page:index.html" +msgid "Find out how{ph0}software works." +msgstr "জানুন সফটওয়্যার{ph0}কীভাবে কাজ করে।" + +#: website/public/index.html:1040 +msgctxt "page:index.html" +msgid "Showcases →" +msgstr "শোকেস →" + +#: website/public/index.html:257 +msgctxt "page:index.html" +msgid "Copy this into your coding agent:" +msgstr "এটি কপি করে আপনার coding agent-এ দিন:" + +#. {ph0}: +#: website/public/index.html:260 +#, 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}আপনার coding agent" + +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 +msgctxt "page:index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: npx rea-agents@latest setup +#. {ph4}: +#. {ph5}: +#: website/public/index.html:274 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}." +" Show me the setup plan for approval, then verify the " +"installation.{ph4}{ph5}{ph6}" +msgstr "" +"{ph0}›{ph1}{ph2}{ph3} ব্যবহার করে REA ইনস্টল করো এবং এই coding agent-এর " +"সঙ্গে যুক্ত করো। অনুমোদনের জন্য আগে setup পরিকল্পনাটি আমাকে দেখাও, তারপর " +"ইনস্টলেশন যাচাই করো।{ph4}{ph5}{ph6}" + +#: website/public/index.html:286 +msgctxt "page:index.html" +msgid "Or run this in your terminal:" +msgstr "অথবা টার্মিনালে এটি চালান:" + +#: website/public/index.html:298 +msgctxt "page:index.html" +msgid "Approve the setup plan, then restart your agent." +msgstr "Setup পরিকল্পনা অনুমোদন করুন, তারপর আপনার agent রিস্টার্ট করুন।" + +#. {ph0}: Node.js +#. {ph1}: +#. {ph2}: +#: website/public/index.html:319 +#, 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} বা কোনো coding agent নেই? {ph1}ধাপে ধাপে " +"setup গাইড অনুসরণ করুন →{ph2}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:374 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}01{ph1} Decode branches" +msgstr "{ph0}01{ph1} Branch decode করা" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:382 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}02{ph1} Trace calls" +msgstr "{ph0}02{ph1} Call trace করা" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:390 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}03{ph1} Recover the rule" +msgstr "{ph0}03{ph1} নিয়মটি উদ্ধার করা" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#: website/public/index.html:401 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" +msgstr "{ph0}মূল x64 · নির্বাচিত instruction{ph1} {ph2}{ph3}" + +#: website/public/index.html:443 +msgctxt "page:index.html" +msgid "01 · Which branch?" +msgstr "01 · কোন branch?" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:444 +#, 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} দুটো jump একই জায়গায় যাচ্ছে। এগুলো কোন operator?”" + +#: website/public/index.html:448 +msgctxt "page:index.html" +msgid "Look up the command IDs, then label the branch." +msgstr "Command ID খুঁজে দেখুন, তারপর branch-টির নাম দিন।" + +#: website/public/index.html:454 +msgctxt "page:index.html" +msgid "Divide ÷" +msgstr "ভাগ ÷" + +#: website/public/index.html:458 +msgctxt "page:index.html" +msgid "Multiply ×" +msgstr "গুণ ×" + +#: website/public/index.html:463 +msgctxt "page:index.html" +msgid "02 · What do the calls do?" +msgstr "02 · Call-গুলো কী করে?" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:464 +#, 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 তো বোঝা গেল। Call-গুলো শুধু address। {ph0}কোনটা ভাগ করে? কোন মান ভেতরে " +"যায়?{ph1}”" + +#: website/public/index.html:470 +msgctxt "page:index.html" +msgid "Inspect the helpers and trace the stored values." +msgstr "Helper-গুলো পরীক্ষা করুন এবং সংরক্ষিত মানগুলো trace করুন।" + +#: website/public/index.html:480 +msgctxt "page:index.html" +msgid "Divide" +msgstr "ভাগ" + +#: website/public/index.html:485 +msgctxt "page:index.html" +msgid "03 · What is the rule?" +msgstr "03 · নিয়মটা কী?" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:486 +#, 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 "" +"“এই path অন্য input দিয়ে গুণ করে। তাহলে + এর পরে {ph0}10% মানে 200-এর " +"10%{ph1}।”" + +#: website/public/index.html:490 +msgctxt "page:index.html" +msgid "Name the operands and check both operator paths." +msgstr "Operand-গুলোর নাম দিন এবং দুটো operator path-ই যাচাই করুন।" + +#: website/public/index.html:506 website/public/index.html:433 +msgctxt "page:index.html" +msgid "Illustrative expert reasoning" +msgstr "একজন বিশেষজ্ঞের চিন্তার দৃষ্টান্ত" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:509 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}You decode the instructions, follow the calls and reconstruct the " +"calculation.{ph1}" +msgstr "" +"{ph0}আপনি instruction decode করেন, call অনুসরণ করেন এবং হিসাবটি পুনর্গঠন " +"করেন।{ph1}" + +#. {ph0}: +#: website/public/index.html:520 +#, 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}উদাহরণ prompt · Calculator" + +#. {ph0}: +#. {ph2}: +#. {ph3}: 200 + 10% +#. {ph4}: +#. {ph5}: +#: website/public/index.html:534 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator. Why does {ph3} give " +"220?{ph4}{ph5}{ph6}" +msgstr "" +"{ph0}›{ph1}{ph2}REA দিয়ে Windows Calculator পরীক্ষা করো। {ph3} কেন 220 " +"দেয়?{ph4}{ph5}{ph6}" + +#: website/public/index.html:542 +msgctxt "page:index.html" +msgid "Example answer · based on the findings" +msgstr "উদাহরণ উত্তর · ফলাফলের ভিত্তিতে" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:545 +#, 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:558 +msgctxt "page:index.html" +msgid "REA supplies" +msgstr "REA দেয়" + +#: website/public/index.html:559 +msgctxt "page:index.html" +msgid "The handler’s instructions, decompiled code and calls." +msgstr "Handler-এর instruction, decompile করা কোড এবং call।" + +#: website/public/index.html:564 +msgctxt "page:index.html" +msgid "Your agent explains" +msgstr "আপনার agent ব্যাখ্যা করে" + +#: website/public/index.html:565 +msgctxt "page:index.html" +msgid "Which branch applies, what it calculates and how to rebuild it." +msgstr "কোন branch প্রযোজ্য, সেটি কী হিসাব করে এবং কীভাবে আবার তৈরি করা যায়।" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:572 +#, 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 "" +"ইনস্টল করা Calculator DLL থেকে নির্বাচিত assembly। চিন্তা ও উত্তরগুলো " +"ফলাফলের দৃষ্টান্ত। {ph0}Calculator উদাহরণটি চালিয়ে যান ↓{ph1}" + +#: website/public/index.html:589 +msgctxt "page:index.html" +msgid "Example 01 · Chrome’s dinosaur game" +msgstr "উদাহরণ 01 · Chrome-এর ডাইনোসর গেম" + +#: website/public/index.html:590 +msgctxt "page:index.html" +msgid "Why does the dinosaur get faster?" +msgstr "ডাইনোসর কেন দ্রুত হতে থাকে?" + +#: website/public/index.html:669 +msgctxt "page:index.html" +msgid "Play" +msgstr "খেলুন" + +#: website/public/index.html:672 +msgctxt "page:index.html" +msgid "Jump ↑" +msgstr "লাফ ↑" + +#: website/public/index.html:673 +msgctxt "page:index.html" +msgid "Restart" +msgstr "আবার শুরু" + +#: website/public/index.html:676 +msgctxt "page:index.html" +msgid "Speed" +msgstr "গতি" + +#: website/public/index.html:686 +msgctxt "page:index.html" +msgid "Use the recovered acceleration rule" +msgstr "উদ্ধার করা ত্বরণের নিয়ম ব্যবহার করুন" + +#: website/public/index.html:690 +msgctxt "page:index.html" +msgid "Original rule: start at 6, then increase toward 13." +msgstr "মূল নিয়ম: 6 থেকে শুরু, তারপর 13-এর দিকে বাড়তে থাকে।" + +#: website/public/index.html:693 +msgctxt "page:index.html" +msgid "Move the slider to set your own speed. Space or Jump clears a cactus." +msgstr "" +"নিজের গতি ঠিক করতে slider সরান। Space বা লাফ বাটনে ক্যাকটাস পার হওয়া যায়।" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/index.html:615 +#, 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}: +#. {ph1}: +#: website/public/index.html:713 +#, python-brace-format +msgctxt "page:index.html" +msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." +msgstr "" +"পরীক্ষিত টার্গেট: {ph0}wayou-এর Chromium-ভিত্তিক ব্রাউজার সংস্করণ{ph1}।" + +#. {ph0}: index.js +#: website/public/index.html:721 +#, python-brace-format +msgctxt "page:index.html" +msgid "REA · loaded {ph0} · selected lines" +msgstr "REA · লোড হওয়া {ph0} · নির্বাচিত লাইন" + +#: website/public/index.html:704 +msgctxt "page:index.html" +msgid "Open the speed lab →" +msgstr "Speed lab খুলুন →" + +#: website/public/index.html:735 +msgctxt "page:index.html" +msgid "What each part does" +msgstr "কোন অংশ কী করে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/index.html:737 +#, 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}চলমান গেমের script পড়ে{ph3}{ph4}এর আসল কোড ও setting" +" agent-কে ফেরত দেয়।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/index.html:744 +#, 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 · আপনার agent{ph1}{ph2}নিয়মটি আবার তৈরি করে, একটি control যোগ " +"করে{ph3}{ph4}উদ্ধার করা ত্বরণটি speed slider-সহ একটি ছোট গেমে ব্যবহার " +"করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/index.html:752 +#, 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:710 +msgctxt "page:index.html" +msgid "See the script, checks and how to try the analysis" +msgstr "Script, যাচাই এবং বিশ্লেষণটি নিজে চালিয়ে দেখার উপায় দেখুন" + +#. {ph0}: index.js +#: website/public/index.html:762 +#, 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 একটি local debugging connection-এর মাধ্যমে HTTP ব্রাউজার সংস্করণটি " +"পরীক্ষা করেছে এবং লোড হওয়া {ph0} — এর source ও digest সহ — ফেরত দিয়েছে।" + +#: website/public/index.html:769 +msgctxt "page:index.html" +msgid "Selected settings from the inspected script" +msgstr "পরীক্ষিত script থেকে নির্বাচিত setting" + +#: website/public/index.html:775 +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 "" +"আমরা একটি নিয়ন্ত্রিত ব্রাউজার পরীক্ষায় মূল গেমের update function call " +"করেছি, যেখানে বাধা ও স্বয়ংক্রিয় scheduling বন্ধ ছিল। 4,000 update-এর পরে " +"গতি ছিল 10.0; 10,000-এর পরে 13.0 (এক দশমিক ঘর পর্যন্ত রাউন্ড করা)।" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:781 +#, 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 "" +"নতুন mini-game-টি সেই গতির নিয়মই রাখে। এর আঁকা, লাফ ও সংঘর্ষের কোড শেখানোর " +"জন্য লেখা একটি ছোট implementation। নতুন কোড দেখতে এবং একই গতির পরীক্ষা " +"চালাতে {ph0}lab-টি খুলুন{ph1}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/index.html:787 +#, 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 "" +"টার্গেটটি নিজে পরীক্ষা করতে {ph2}ডাইনোসর পেজটি{ph3} নিয়ে {ph0}ব্রাউজার " +"সংযোগের ধাপগুলো{ph1} অনুসরণ করুন। আপনার agent-কে সেই পেজের URL ও আপনার local" +" debugging endpoint দিন, তারপর ওপরের prompt-টি কপি করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/index.html:796 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" +msgstr "" +"{ph0}পরীক্ষিত গতির কোড{ph1} · {ph2}Chromium Authors · BSD license{ph3}" + +#: website/public/index.html:813 +msgctxt "page:index.html" +msgid "Example 02 · Windows Calculator" +msgstr "উদাহরণ 02 · Windows Calculator" + +#: website/public/index.html:814 +msgctxt "page:index.html" +msgid "Rebuild Calculator’s % button." +msgstr "Calculator-এর % বাটন নতুন করে তৈরি করুন।" + +#: website/public/index.html:919 +msgctxt "page:index.html" +msgid "Reset" +msgstr "রিসেট" + +#: website/public/index.html:927 +msgctxt "page:index.html" +msgid "10% of 200 = 20. Then 200 + 20 = 220." +msgstr "200-এর 10% = 20। তারপর 200 + 20 = 220।" + +#: website/public/index.html:930 +msgctxt "page:index.html" +msgid "Interactive illustration of the inspected percentage rule." +msgstr "পরীক্ষিত শতাংশ-নিয়মের ইন্টারঅ্যাকটিভ দৃষ্টান্ত।" + +#. {ph0}: previous = 200 +#. {ph1}: current = 10 +#: website/public/index.html:938 +#, python-brace-format +msgctxt "page:index.html" +msgid "For this example, {ph0} and {ph1}." +msgstr "এই উদাহরণে {ph0} এবং {ph1}।" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/index.html:839 +#, 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 Calculator-এর % বাটন পরীক্ষা করো। + ও × এর" +" পরের নিয়মগুলো উদ্ধার করো, তারপর দুটোই ব্যবহার করে এমন একটি ছোট calculator " +"তৈরি করো।{ph3}{ph4}{ph5}" + +#: website/public/index.html:944 +msgctxt "page:index.html" +msgid "Readable summary of the % handler" +msgstr "% handler-এর সহজপাঠ্য সারাংশ" + +#: website/public/index.html:855 +msgctxt "page:index.html" +msgid "With +" +msgstr "+ এর সঙ্গে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 +#: website/public/index.html:856 +#, 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:862 +msgctxt "page:index.html" +msgid "With ×" +msgstr "× এর সঙ্গে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 200 × 0.1 = 20 +#: website/public/index.html:863 +#, 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:953 +msgctxt "page:index.html" +msgid "From the installed app to a working % button" +msgstr "ইনস্টল করা অ্যাপ থেকে কার্যকর একটি % বাটন" + +#. {ph0}: +#. {ph1}: calc.exe +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: ms-calculator: +#. {ph7}: +#: website/public/index.html:957 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}01 · REA reads {ph1}{ph2}{ph3}It launches the Calculator " +"app{ph4}{ph5}The code opens {ph6}. The agent then selects the installed " +"app’s library.{ph7}" +msgstr "" +"{ph0}01 · REA পড়ে {ph1}{ph2}{ph3}এটি Calculator অ্যাপ চালু " +"করে{ph4}{ph5}কোডটি {ph6} খোলে। এরপর agent ইনস্টল করা অ্যাপের library-টি বেছে" +" নেয়।{ph7}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: 100 +#. {ph6}: +#: website/public/index.html:966 +#, 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 library পড়ে{ph1}{ph2}% handler-এর কোড ফেরত " +"দেয়{ph3}{ph4}Function-টি operator যাচাই করে এবং {ph5} constant ব্যবহার " +"করে।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/index.html:974 +#, 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 · আপনার agent ব্যাখ্যা করে{ph1}{ph2}নিয়মগুলো ব্যাখ্যা ও পুনরুৎপাদন " +"করে{ph3}{ph4}Microsoft-এর source-এর সঙ্গে branch-টি মিলিয়ে দেখে, তারপর ওপরে" +" + ও × চালিয়ে দেখুন।{ph5}" + +#: website/public/index.html:937 +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 "REA · selected original instructions" +msgstr "REA · নির্বাচিত মূল instruction" + +#: website/public/index.html:999 +msgctxt "page:index.html" +msgid "Operator IDs · Microsoft’s source" +msgstr "Operator ID · Microsoft-এর source" + +#: website/public/index.html:1009 +msgctxt "page:index.html" +msgid "" +"Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " +"summary uses names from Microsoft’s public source to explain the recovered " +"branch." +msgstr "" +"REA 4.1.0 দিয়ে পরীক্ষিত: Windows Calculator 11.2508.4.0, x64। উদ্ধার করা " +"branch ব্যাখ্যা করতে সহজপাঠ্য সারাংশে Microsoft-এর পাবলিক source-এর নাম " +"ব্যবহার করা হয়েছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/index.html:1014 +#, 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}শতাংশের implementation{ph1} · {ph2}Microsoft-এর test case{ph3} · " +"{ph4}Native setup গাইড{ph5}" + +#: website/public/index.html:1083 +msgctxt "page:index.html" +msgid "Your first investigation" +msgstr "আপনার প্রথম অনুসন্ধান" + +#: website/public/index.html:1084 +msgctxt "page:index.html" +msgid "Try REA on a small app." +msgstr "একটি ছোট অ্যাপে REA ব্যবহার করে দেখুন।" + +#: website/public/index.html:1085 +msgctxt "page:index.html" +msgid "" +"Download our Notes example, trace its CSV export, and check one changed " +"input." +msgstr "" +"আমাদের Notes উদাহরণটি ডাউনলোড করুন, এর CSV export trace করুন এবং একটি " +"পরিবর্তিত input যাচাই করুন।" + +#: website/public/index.html:1090 +msgctxt "page:index.html" +msgid "Try the guided example" +msgstr "নির্দেশিত উদাহরণটি চেষ্টা করুন" + +#. {ph0}: +#: website/public/index.html:1137 +#, 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 · ওয়েবসাইট" + +#. {ph0}: +#. {ph2}: +#. {ph3}: https://rea.tools/ +#. {ph4}: +#. {ph5}: +#: website/public/index.html:1151 +#, 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} পরীক্ষা করো। আমার জন্য এই ওয়েবসাইটটি clone " +"করো।{ph4}{ph5}{ph6}" + +#: website/public/index.html:1160 +msgctxt "page:index.html" +msgid "Yes, this one." +msgstr "হ্যাঁ, এটাই।" + +#. {ph0}: +#: website/public/index.html:1165 +#, 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}উদাহরণ prompt · গেম পুনর্গঠন" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/index.html:1179 +#, 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 দিয়ে এই গেমটি এর executable থেকে পুনর্গঠন করো। Gameplay" +" logic C-তে উদ্ধার করো এবং মূলটির সঙ্গে মিলিয়ে test করো।{ph3}{ph4}{ph5}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:1188 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}See the DX-Ball case study →{ph1}" +msgstr "{ph0}DX-Ball case study দেখুন →{ph1}" + +#: website/public/index.html:1107 +msgctxt "page:index.html" +msgid "Native binaries" +msgstr "Native বাইনারি" + +#: website/public/index.html:1108 +msgctxt "page:index.html" +msgid "" +"Inspect functions, strings, references and call relationships in executables" +" and libraries." +msgstr "" +"Executable ও library-র function, string, reference ও call-এর সম্পর্ক পরীক্ষা" +" করুন।" + +#: website/public/index.html:1112 +msgctxt "page:index.html" +msgid "Native analysis guide" +msgstr "Native বিশ্লেষণ গাইড" + +#: website/public/index.html:1115 +msgctxt "page:index.html" +msgid "JavaScript & Electron" +msgstr "JavaScript ও Electron" + +#: website/public/index.html:1116 +msgctxt "page:index.html" +msgid "" +"Map modules, routes, IPC and native dependencies from an application folder " +"or ASAR archive." +msgstr "" +"অ্যাপ্লিকেশন ফোল্ডার বা ASAR archive থেকে module, route, IPC ও native " +"dependency-র মানচিত্র তৈরি করুন।" + +#: website/public/index.html:1120 +msgctxt "page:index.html" +msgid "Application workflows" +msgstr "অ্যাপ্লিকেশন workflow" + +#: website/public/index.html:1123 +msgctxt "page:index.html" +msgid "Browser & runtime activity" +msgstr "ব্রাউজার ও runtime কার্যকলাপ" + +#: website/public/index.html:1124 +msgctxt "page:index.html" +msgid "" +"Capture selected browser or process activity, then compare the results " +"across runs." +msgstr "" +"নির্বাচিত ব্রাউজার বা process-এর কার্যকলাপ capture করুন, তারপর বিভিন্ন run-" +"এর ফলাফল তুলনা করুন।" + +#: website/public/index.html:1128 +msgctxt "page:index.html" +msgid "Browser observation guide" +msgstr "ব্রাউজার পর্যবেক্ষণ গাইড" + +#: website/public/index.html:1199 +msgctxt "page:index.html" +msgid "Any questions?" +msgstr "কোনো প্রশ্ন আছে?" + +#: website/public/index.html:6 +msgctxt "page:index.html" +msgid "REA — Reverse Engineering for Your Coding Agent" +msgstr "REA — আপনার Coding Agent-এর জন্য Reverse Engineering" + +#: 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 "" +"আপনার coding agent দিয়ে অ্যাপ, বাইনারি ও ব্রাউজারের আচরণ reverse engineer " +"করুন। REA-এর সহজবোধ্য গাইড অনুসরণ করুন এবং ইন্টারঅ্যাকটিভ উদাহরণ চালিয়ে " +"দেখুন।" + +#: website/public/index.html:265 +msgctxt "page:index.html" +msgid "Copy REA installation prompt" +msgstr "REA ইনস্টলেশনের prompt কপি করুন" + +#: website/public/index.html:289 +msgctxt "page:index.html" +msgid "Copy setup command" +msgstr "Setup কমান্ড কপি করুন" + +#: website/public/index.html:369 +msgctxt "page:index.html" +msgid "Follow the manual Calculator analysis" +msgstr "Calculator-এর ম্যানুয়াল বিশ্লেষণ অনুসরণ করুন" + +#: website/public/index.html:525 +msgctxt "page:index.html" +msgid "Copy Calculator percentage question" +msgstr "Calculator-এর শতাংশ-বিষয়ক প্রশ্ন কপি করুন" + +#: website/public/index.html:659 +msgctxt "page:index.html" +msgid "" +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." +msgstr "" +"ডাইনোসর mini-game। গেমটি focus-এ থাকা অবস্থায় লাফ বাটন ব্যবহার করুন বা " +"Space চাপুন।" + +#: website/public/index.html:606 +msgctxt "page:index.html" +msgid "Copy dinosaur analysis prompt" +msgstr "ডাইনোসর বিশ্লেষণের prompt কপি করুন" + +#: website/public/index.html:876 +msgctxt "page:index.html" +msgid "Choose the calculation" +msgstr "হিসাবটি বেছে নিন" + +#: website/public/index.html:830 +msgctxt "page:index.html" +msgid "Copy Calculator analysis prompt" +msgstr "Calculator বিশ্লেষণের prompt কপি করুন" + +#: website/public/index.html:1142 +msgctxt "page:index.html" +msgid "Copy website project prompt" +msgstr "ওয়েবসাইট প্রজেক্টের prompt কপি করুন" + +#: website/public/index.html:1170 +msgctxt "page:index.html" +msgid "Copy game reconstruction prompt" +msgstr "গেম পুনর্গঠনের prompt কপি করুন" + +#: website/public/index.html:1234 +msgctxt "page:index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/aegis/index.html:114 +msgctxt "page:showcase/aegis/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/aegis/index.html:206 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" +msgstr "{ph0}হোম{ph1} / {ph2}শোকেস{ph3} / Android" + +#: website/public/showcase/aegis/index.html:209 +msgctxt "page:showcase/aegis/index.html" +msgid "Case study · Aegis Authenticator" +msgstr "Case study · Aegis Authenticator" + +#. {ph0}:
+#: website/public/showcase/aegis/index.html:210 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "How does an authenticator{ph0}generate a login code?" +msgstr "একটি authenticator কীভাবে{ph0}login code তৈরি করে?" + +#: website/public/showcase/aegis/index.html:211 +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 "" +"ছয় অঙ্কের একটি code প্রতি 30 সেকেন্ডে বদলায়। REA দিয়ে একটি Android APK-তে" +" হিসাবটি খুঁজে বের করুন, তারপর এমন একটি ঘড়ি দিয়ে সেটি নতুন করে তৈরি করুন " +"যা আপনি নিজে নিয়ন্ত্রণ করতে পারেন।" + +#: website/public/showcase/aegis/index.html:216 +msgctxt "page:showcase/aegis/index.html" +msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" +msgstr "Aegis 3.4.3 · Android · অফিসিয়াল release APK · 6.9 MB" + +#: website/public/showcase/aegis/index.html:219 +msgctxt "page:showcase/aegis/index.html" +msgid "View Aegis on GitHub" +msgstr "GitHub-এ Aegis দেখুন" + +#: website/public/showcase/aegis/index.html:225 +msgctxt "page:showcase/aegis/index.html" +msgid "From an APK to a code you can reproduce" +msgstr "একটি APK থেকে এমন code, যা আপনি নিজেই তৈরি করতে পারেন" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/aegis/index.html:227 +#, 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টি class → code তৈরির " +"method{ph3}{ph4}REA package-টি খুঁজে দেখে এবং প্রদর্শন ও কপি action-এ " +"ব্যবহৃত কোড trace করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/aegis/index.html:236 +#, 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}সময় + account key → ছয় অঙ্ক{ph3}{ph4}REA " +"method ও default মানগুলো ফেরত দেয়। সেগুলো কীভাবে একসঙ্গে কাজ করে, agent তা " +"ব্যাখ্যা করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/aegis/index.html:244 +#, 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}ঘড়ি বদলান। Code লক্ষ " +"করুন।{ph3}{ph4}নতুন একটি ব্রাউজার demo নিয়মটি পুনরুৎপাদন করে এবং পাবলিক " +"reference case দিয়ে যাচাই করে।{ph5}" + +#: website/public/showcase/aegis/index.html:257 +msgctxt "page:showcase/aegis/index.html" +msgid "In this case study" +msgstr "এই case study-তে" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:259 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Ask your agent{ph1}" +msgstr "{ph0}আপনার agent-কে জিজ্ঞাসা করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:260 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Try the code generator{ph1}" +msgstr "{ph0}Code generator চালিয়ে দেখুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:261 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Find the code with REA{ph1}" +msgstr "{ph0}REA দিয়ে কোড খুঁজুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:262 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Read the calculation{ph1}" +msgstr "{ph0}হিসাবটি পড়ুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:263 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Check the reconstruction{ph1}" +msgstr "{ph0}পুনর্গঠন যাচাই করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:264 +#, 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:269 +msgctxt "page:showcase/aegis/index.html" +msgid "Ask your agent" +msgstr "আপনার agent-কে জিজ্ঞাসা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:270 +#, 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 "" +"অ্যাপটি একটি পরিবর্তনশীল login code দেখায়। আমরা খুঁজে বের করতে চাই " +"{ph0}কীসের কারণে এটি বদলায়{ph1}, এবং সেই আচরণ পুনরুৎপাদন করতে চাই।" + +#. {ph0}: +#: website/public/showcase/aegis/index.html:276 +#, 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}আপনার coding agent" + +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 +msgctxt "page:showcase/aegis/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: aegis-v3.4.3.apk +#. {ph4}: +#. {ph5}: +#: website/public/showcase/aegis/index.html:289 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "" +"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-" +"digit login code, explain why it changes every 30 seconds, and rebuild a " +"small demo where I can change the time.{ph4}{ph5}{ph6}" +msgstr "" +"{ph0}›{ph1}{ph2}REA দিয়ে {ph3} পরীক্ষা করো। এটি কীভাবে ছয় অঙ্কের login " +"code তৈরি করে খুঁজে বের করো, code কেন প্রতি 30 সেকেন্ডে বদলায় ব্যাখ্যা করো," +" এবং একটি ছোট demo তৈরি করো যেখানে আমি সময় বদলাতে পারব।{ph4}{ph5}{ph6}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:300 +#, 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-এর জন্য একটি উদাহরণ prompt, REA-এর Android analysis কনফিগার " +"করা অবস্থায়। {ph0}APK ও analysis setup নিন ↓{ph1}" + +#: website/public/showcase/aegis/index.html:308 +msgctxt "page:showcase/aegis/index.html" +msgid "Try the code generator" +msgstr "Code generator চালিয়ে দেখুন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:309 +#, 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 সেকেন্ডের block-এ{ph1} ভাগ করে। Code তৈরি করতে এটি " +"block নম্বরকে account key-এর সঙ্গে মেলায়। একই key ও block সবসময় একই code " +"দেয়।" + +#: website/public/showcase/aegis/index.html:316 +msgctxt "page:showcase/aegis/index.html" +msgid "Move the clock across 60 seconds" +msgstr "ঘড়িটি 60 সেকেন্ড জুড়ে সরান" + +#: website/public/showcase/aegis/index.html:319 +msgctxt "page:showcase/aegis/index.html" +msgid "Time" +msgstr "সময়" + +#: website/public/showcase/aegis/index.html:321 +msgctxt "page:showcase/aegis/index.html" +msgid "seconds" +msgstr "সেকেন্ড" + +#: website/public/showcase/aegis/index.html:322 +msgctxt "page:showcase/aegis/index.html" +msgid "Our adjustable example clock" +msgstr "আমাদের নিয়ন্ত্রণযোগ্য উদাহরণ ঘড়ি" + +#: website/public/showcase/aegis/index.html:325 +msgctxt "page:showcase/aegis/index.html" +msgid "30-second block" +msgstr "30 সেকেন্ডের block" + +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 +msgctxt "page:showcase/aegis/index.html" +msgid "Block" +msgstr "Block" + +#. {ph0}: floor(59 / 30) +#. {ph1}:
+#. {ph2}: +#. {ph3}: +#: website/public/showcase/aegis/index.html:328 +#, 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:336 +msgctxt "page:showcase/aegis/index.html" +msgid "Generated code" +msgstr "তৈরি হওয়া code" + +#: website/public/showcase/aegis/index.html:344 +msgctxt "page:showcase/aegis/index.html" +msgid "Account key + block → six digits" +msgstr "Account key + block → ছয় অঙ্ক" + +#: website/public/showcase/aegis/index.html:350 +msgctxt "page:showcase/aegis/index.html" +msgid "Example time, in seconds" +msgstr "উদাহরণ সময়, সেকেন্ডে" + +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 +msgctxt "page:showcase/aegis/index.html" +msgid "59 seconds" +msgstr "59 সেকেন্ড" + +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 +msgctxt "page:showcase/aegis/index.html" +msgid "60 seconds" +msgstr "60 সেকেন্ড" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/aegis/index.html:381 +#, 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} একটি block-এর " +"ভেতরে সময় সরালে code বদলায় না।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:388 +#, 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 "" +"Key-টি নির্দিষ্ট, পাবলিক {ph0}RFC 6238 test data{ph1}। Demo-টি APK থেকে " +"উদ্ধার করা হিসাবটি implement করে।" + +#: website/public/showcase/aegis/index.html:395 +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:404 +msgctxt "page:showcase/aegis/index.html" +msgid "Find the code with REA" +msgstr "REA দিয়ে কোড খুঁজুন" + +#: website/public/showcase/aegis/index.html:407 +msgctxt "page:showcase/aegis/index.html" +msgid "Narrow the APK to three classes" +msgstr "APK-কে তিনটি class-এ সংকুচিত করুন" + +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 +msgctxt "page:showcase/aegis/index.html" +msgid "Agent → REA" +msgstr "Agent → REA" + +#: website/public/showcase/aegis/index.html:420 +msgctxt "page:showcase/aegis/index.html" +msgid "REA → agent · selected results" +msgstr "REA → agent · নির্বাচিত ফলাফল" + +#. {ph0}: TotpInfo +#: website/public/showcase/aegis/index.html:432 +#, 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} হলো হিসাবের সম্ভাব্য জায়গা; অন্য দুটো progress bar ও import করা " +"account-সংক্রান্ত। TOTP মানে time-based one-time password।" + +#: website/public/showcase/aegis/index.html:439 +msgctxt "page:showcase/aegis/index.html" +msgid "Connect the generator to the app's display" +msgstr "Generator-কে অ্যাপের প্রদর্শনের সঙ্গে যুক্ত করুন" + +#: website/public/showcase/aegis/index.html:456 +msgctxt "page:showcase/aegis/index.html" +msgid "REA → agent · methods and callers" +msgstr "REA → agent · method ও caller" + +#. {ph0}: EntryHolder.getOtp +#. {ph1}: TotpInfo.getOtp(timestamp) +#: website/public/showcase/aegis/index.html:467 +#, 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 timestamp overload-টি শনাক্ত করে এবং base method-এর caller-গুলো খুঁজে " +"পায়। এরপর {ph0} পরীক্ষা করলে দেখা যায় display {ph1} call করছে।" + +#. {ph0}: com.beemdevelopment.aegis +#: website/public/showcase/aegis/index.html:475 +#, 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 "" +"Request-এ input path সংক্ষেপে দেখানো হয়েছে। ফলাফলের class নাম থেকে সাধারণ " +"{ph0} prefix বাদ দেওয়া হয়েছে।" + +#: website/public/showcase/aegis/index.html:482 +msgctxt "page:showcase/aegis/index.html" +msgid "Read the calculation" +msgstr "হিসাবটি পড়ুন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:483 +#, 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}ঘড়ির রূপান্তর, default setting এবং code তৈরির " +"method।{ph1} Constructor-গুলো 30 সেকেন্ডের interval ও ছয় অঙ্ক নির্ধারণ করে;" +" timestamp method সেকেন্ডকে block নম্বরে রূপান্তর করে।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:498 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}01{ph1} Time block" +msgstr "{ph0}01{ph1} সময়ের block" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:506 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}02{ph1} Key + block" +msgstr "{ph0}02{ph1} Key + block" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:514 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}03{ph1} Six digits" +msgstr "{ph0}03{ph1} ছয় অঙ্ক" + +#: website/public/showcase/aegis/index.html:526 +msgctxt "page:showcase/aegis/index.html" +msgid "REA · selected decompiled Java" +msgstr "REA · নির্বাচিত decompile করা Java" + +#: website/public/showcase/aegis/index.html:556 +msgctxt "page:showcase/aegis/index.html" +msgid "Readable summary · agent's interpretation" +msgstr "সহজপাঠ্য সারাংশ · agent-এর ব্যাখ্যা" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:573 +#, 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}সময় block বেছে নেয়।{ph1} 30 থেকে 59 সেকেন্ডের সবগুলোই block 1 দেয়। " +"60 সেকেন্ডে block হয়ে যায় 2।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:579 +#, 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}Key-ও গুরুত্বপূর্ণ।{ph1} Generator account key-কে block-এর সঙ্গে " +"মেলায়। ভিন্ন key-এর একটি account একই সময়ে ভিন্ন code দেখাতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:586 +#, 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 দিয়ে ভাগের ভাগশেষকে দরকার হলে " +"শূন্য দিয়ে পূরণ করা হয়, তাই একটি code 0 দিয়েও শুরু হতে পারে।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:593 +#, 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 "" +"পরীক্ষিত কয়েকটি method-এর অংশবিশেষ, প্রদর্শনের জন্য লাইন ভেঙে দেখানো। ডান " +"প্যানেলটি একটি ব্যাখ্যামূলক সারাংশ। {ph0}Aegis-এর কোড GPL-3.0।{ph1}" + +#: website/public/showcase/aegis/index.html:602 +msgctxt "page:showcase/aegis/index.html" +msgid "Inside the generator" +msgstr "Generator-এর ভেতরে" + +#. {ph0}: generateOTP +#. {ph1}: kotlin.ExceptionsKt +#. {ph2}: TotpInfo +#. {ph3}: HOTP +#: website/public/showcase/aegis/index.html:603 +#, 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 "" +"Release করা APK {ph0}-কে {ph1}-এ রাখে। REA {ph2} থেকে call-টি অনুসরণ করে এই " +"body ফেরত দেয়; মূল source-এ helper-টির নাম {ph3}।" + +#: website/public/showcase/aegis/index.html:611 +msgctxt "page:showcase/aegis/index.html" +msgid "REA · generateOTP, complete body" +msgstr "REA · generateOTP, সম্পূর্ণ body" + +#: website/public/showcase/aegis/index.html:625 +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 "" +"Hash-এর শেষ byte একটি অবস্থান বেছে নেয়। সেই অবস্থানের চারটি byte একটি " +"ধনাত্মক 31-bit সংখ্যা দেয়; formatting সেটিকে অনুরোধ করা অঙ্কসংখ্যায় " +"নামিয়ে আনে। Constructor-এর শেষ argument compilation-এর ফলে তৈরি হওয়া code-" +"formatting branch-টি বেছে নেয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:632 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "{ph0}Compare with the matching release source{ph1}." +msgstr "{ph0}মিলে যাওয়া release source-এর সঙ্গে তুলনা করুন{ph1}।" + +#: website/public/showcase/aegis/index.html:642 +msgctxt "page:showcase/aegis/index.html" +msgid "Check the reconstruction" +msgstr "পুনর্গঠন যাচাই করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:643 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "" +"We assembled the selected REA-returned Java methods in a small test program." +" Their output matched an independent reconstruction on {ph0}133 test " +"cases{ph1}, including time-block boundaries and codes beginning with zero." +msgstr "" +"আমরা REA-এর ফেরত দেওয়া নির্বাচিত Java method-গুলো একটি ছোট test প্রোগ্রামে " +"জুড়ে দিয়েছি। Time-block-এর সীমানা এবং শূন্য দিয়ে শুরু হওয়া code সহ " +"{ph0}133টি test case-এ{ph1} এদের output একটি স্বতন্ত্র পুনর্গঠনের সঙ্গে মিলে" +" গেছে।" + +#: website/public/showcase/aegis/index.html:653 +msgctxt "page:showcase/aegis/index.html" +msgid "Example time" +msgstr "উদাহরণ সময়" + +#: website/public/showcase/aegis/index.html:655 +msgctxt "page:showcase/aegis/index.html" +msgid "Six-digit code" +msgstr "ছয় অঙ্কের code" + +#: website/public/showcase/aegis/index.html:660 +msgctxt "page:showcase/aegis/index.html" +msgid "30 seconds" +msgstr "30 সেকেন্ড" + +#: website/public/showcase/aegis/index.html:675 +msgctxt "page:showcase/aegis/index.html" +msgid "1,111,111,109 seconds" +msgstr "1,111,111,109 সেকেন্ড" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:682 +#, 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 "" +"Generator {ph0}RFC 6238{ph1}-এ প্রকাশিত ছয়টি SHA-1 reference case-এর সঙ্গেও" +" মিলে যায়। ব্রাউজারের implementation-টি সেগুলো দিয়ে যাচাই করুন:" + +#: website/public/showcase/aegis/index.html:690 +msgctxt "page:showcase/aegis/index.html" +msgid "Run reference checks" +msgstr "Reference যাচাই চালান" + +#: website/public/showcase/aegis/index.html:697 +msgctxt "page:showcase/aegis/index.html" +msgid "Read the demo's calculation" +msgstr "Demo-র হিসাবটি পড়ুন" + +#: website/public/showcase/aegis/index.html:701 +msgctxt "page:showcase/aegis/index.html" +msgid "" +"The reference cases use eight digits. The check also verifies their six-" +"digit results." +msgstr "" +"Reference case-গুলো আট অঙ্ক ব্যবহার করে। যাচাইয়ে সেগুলোর ছয় অঙ্কের ফলাফলও " +"পরীক্ষা করা হয়।" + +#: website/public/showcase/aegis/index.html:710 +msgctxt "page:showcase/aegis/index.html" +msgid "" +"Verification runs extracted Java methods and the new demo. The Android APK " +"was inspected statically." +msgstr "" +"যাচাইয়ে extract করা Java method এবং নতুন demo চালানো হয়। Android APK-টি " +"static-ভাবে পরীক্ষা করা হয়েছে।" + +#: website/public/showcase/aegis/index.html:717 +msgctxt "page:showcase/aegis/index.html" +msgid "Inspect the APK yourself" +msgstr "APK নিজে পরীক্ষা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:718 +#, 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 "" +"macOS বা Linux-এ {ph0}REA সেট আপ করুন{ph1}, তারপর এই দুটো ফাইল একই ফোল্ডারে " +"ডাউনলোড করুন। Windows-এ WSL-এর মতো একটি Linux environment ব্যবহার করুন।" + +#. {ph0}: JAVA_HOME +#. {ph1}: PATH +#: website/public/showcase/aegis/index.html:723 +#, python-brace-format +msgctxt "page:showcase/aegis/index.html" +msgid "" +"Android analysis needs a full JDK 17 or later. Select it with {ph0} or " +"{ph1}. This case used JDK 21." +msgstr "" +"Android বিশ্লেষণের জন্য JDK 17 বা পরের সংস্করণের পূর্ণ JDK লাগে। {ph0} বা " +"{ph1} দিয়ে সেটি নির্বাচন করুন। এই case-এ JDK 21 ব্যবহার করা হয়েছে।" + +#: website/public/showcase/aegis/index.html:729 +msgctxt "page:showcase/aegis/index.html" +msgid "Download Aegis APK" +msgstr "Aegis APK ডাউনলোড করুন" + +#: website/public/showcase/aegis/index.html:733 +msgctxt "page:showcase/aegis/index.html" +msgid "Download Android analysis provider" +msgstr "Android analysis provider ডাউনলোড করুন" + +#: website/public/showcase/aegis/index.html:739 +msgctxt "page:showcase/aegis/index.html" +msgid "Point REA at the provider file and inspect the APK:" +msgstr "REA-কে provider ফাইলটি দেখিয়ে দিয়ে APK পরীক্ষা করুন:" + +#: website/public/showcase/aegis/index.html:742 +msgctxt "page:showcase/aegis/index.html" +msgid "macOS / Linux" +msgstr "macOS / Linux" + +#. {ph0}: REA_JADX_MCP_JAR +#: website/public/showcase/aegis/index.html:756 +#, 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 "" +"ওপরের prompt ব্যবহার করে আপনার agent REA-এর CLI দিয়ে এগিয়ে যেতে পারে। MCP-" +"এর জন্য REA server-এর environment-এ {ph0} যোগ করে আবার connect করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/aegis/index.html:761 +#, 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}কোনো account আট অঙ্ক বা ভিন্ন সময়ের interval ব্যবহার " +"করলে কী হয়?{ph1}" + +#: website/public/showcase/aegis/index.html:771 +msgctxt "page:showcase/aegis/index.html" +msgid "Sources" +msgstr "সূত্র" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/aegis/index.html:773 +#, 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 release{ph1} · {ph2}মিলে যাওয়া source " +"commit{ph3} · {ph4}GPL-3.0 license{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/aegis/index.html:789 +#, 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 reference case{ph1} · {ph2}Demo test data{ph3}" + +#: website/public/showcase/aegis/index.html:796 +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 "" +"9 অক্টোবর 2026-এ REA 6.1.0 দিয়ে পরীক্ষিত। Decompile করা অংশগুলোর কৃতিত্ব " +"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 Reverse Engineering: Login Code — 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 "" +"REA দিয়ে Aegis Android APK পরীক্ষা করুন, এর ছয় অঙ্কের login code-এর হিসাব " +"উদ্ধার করুন এবং নিয়ন্ত্রণযোগ্য ঘড়িসহ একটি পুনর্গঠন চালিয়ে দেখুন।" + +#: website/public/showcase/aegis/index.html:256 +msgctxt "page:showcase/aegis/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/showcase/aegis/index.html:267 +msgctxt "page:showcase/aegis/index.html" +msgid "Aegis APK case study" +msgstr "Aegis APK case study" + +#: website/public/showcase/aegis/index.html:280 +msgctxt "page:showcase/aegis/index.html" +msgid "Copy Aegis example prompt" +msgstr "Aegis উদাহরণ prompt কপি করুন" + +#: website/public/showcase/aegis/index.html:493 +msgctxt "page:showcase/aegis/index.html" +msgid "Follow the login-code calculation" +msgstr "Login code-এর হিসাব অনুসরণ করুন" + +#: website/public/showcase/aegis/index.html:743 +msgctxt "page:showcase/aegis/index.html" +msgid "Copy APK inspection command" +msgstr "APK পরীক্ষার কমান্ড কপি করুন" + +#: website/public/showcase/aegis/index.html:820 +msgctxt "page:showcase/aegis/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/ctf/index.html:113 +msgctxt "page:showcase/ctf/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/ctf/index.html:205 +#, 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:208 +msgctxt "page:showcase/ctf/index.html" +msgid "Case study · DownUnderCTF 2023" +msgstr "Case study · DownUnderCTF 2023" + +#. {ph0}:
+#: website/public/showcase/ctf/index.html:209 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "Find the flag in{ph0}a CTF binary." +msgstr "একটি CTF বাইনারিতে{ph0}flag খুঁজে বের করুন।" + +#. {ph0}: Correct! +#: website/public/showcase/ctf/index.html:210 +#, 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 দিয়ে একটি ছোট flag checker পরীক্ষা করুন, এর নিয়মগুলোকে সমীকরণে রূপ দিন" +" এবং এমন একটি input খুঁজে বের করুন যাতে মূল প্রোগ্রামটি {ph0} দেখায়।" + +#: website/public/showcase/ctf/index.html:215 +msgctxt "page:showcase/ctf/index.html" +msgid "masked squares flag checker · Easy · Linux x86-64" +msgstr "masked squares flag checker · সহজ · Linux x86-64" + +#: website/public/showcase/ctf/index.html:218 +msgctxt "page:showcase/ctf/index.html" +msgid "View the original challenge" +msgstr "মূল challenge দেখুন" + +#: website/public/showcase/ctf/index.html:226 +msgctxt "page:showcase/ctf/index.html" +msgid "From a binary to a checked answer" +msgstr "একটি বাইনারি থেকে যাচাইকৃত উত্তর" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/ctf/index.html:228 +#, 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}String → যাচাইকারী " +"function{ph3}{ph4}REA prompt-টি, তার reference এবং যে কোড input গ্রহণ বা " +"বাতিল করে তা খুঁজে বের করে।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/ctf/index.html:236 +#, 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 " +"প্রতিটি যাচাইয়ের পেছনের instruction ও data ফেরত দেয়। Agent সেগুলোকে " +"সমীকরণে রূপ দেয়।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/ctf/index.html:244 +#, 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}উদ্ধার করা flag → Correct!{ph3}{ph4}একটি " +"Python script সমীকরণগুলো সমাধান করে। মূল প্রোগ্রাম ফলাফলটি গ্রহণ করছে — REA " +"তা capture করে।{ph5}" + +#: website/public/showcase/ctf/index.html:253 +msgctxt "page:showcase/ctf/index.html" +msgid "" +"The challenge is by joseph, published in DownUnderCTF's official repository." +msgstr "" +"Challenge-টি joseph-এর তৈরি, DownUnderCTF-এর অফিসিয়াল repository-তে " +"প্রকাশিত।" + +#: website/public/showcase/ctf/index.html:261 +msgctxt "page:showcase/ctf/index.html" +msgid "In this case study" +msgstr "এই case study-তে" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:263 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Find the checking code{ph1}" +msgstr "{ph0}যাচাইয়ের কোড খুঁজুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:264 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Read one mask{ph1}" +msgstr "{ph0}একটি mask পড়ুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:265 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Assembly to readable code{ph1}" +msgstr "{ph0}Assembly থেকে সহজপাঠ্য কোড{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:266 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Solve the equations{ph1}" +msgstr "{ph0}সমীকরণগুলো সমাধান করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:267 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Check the answer{ph1}" +msgstr "{ph0}উত্তর যাচাই করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:268 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}Try it yourself{ph1}" +msgstr "{ph0}নিজে চেষ্টা করুন{ph1}" + +#: website/public/showcase/ctf/index.html:273 +msgctxt "page:showcase/ctf/index.html" +msgid "Find the checking code" +msgstr "যাচাইয়ের কোড খুঁজুন" + +#. {ph0}: Correct! +#. {ph1}: Incorrect! +#: website/public/showcase/ctf/index.html:274 +#, 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 "" +"Handout-টি 15 KB-এর একটি executable। এটি একটি flag চায়, তারপর {ph0} বা " +"{ph1} দেখায়। আপনার agent-কে একটি সহজ অনুরোধ দিয়ে শুরু করুন।" + +#. {ph0}: +#: website/public/showcase/ctf/index.html:281 +#, 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}আপনার coding agent" + +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/showcase/ctf/index.html:295 +#, 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 বিশ্লেষণ করে flag খুঁজে বের করো। " +"যাচাইগুলো কীভাবে কাজ করে ব্যাখ্যা করো, তারপর মূল প্রোগ্রাম দিয়ে উত্তরটি " +"যাচাই করো।{ph3}{ph4}{ph5}" + +#: website/public/showcase/ctf/index.html:304 +msgctxt "page:showcase/ctf/index.html" +msgid "" +"An example prompt, with the downloaded challenge available locally and a " +"native analysis provider connected." +msgstr "" +"একটি উদাহরণ prompt — ডাউনলোড করা challenge local-ভাবে রাখা এবং একটি native " +"analysis provider যুক্ত অবস্থায়।" + +#: website/public/showcase/ctf/index.html:310 +msgctxt "page:showcase/ctf/index.html" +msgid "Follow the input prompt to its function" +msgstr "Input prompt অনুসরণ করে তার function-এ যান" + +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 +msgctxt "page:showcase/ctf/index.html" +msgid "Agent → REA" +msgstr "Agent → REA" + +#: website/public/showcase/ctf/index.html:329 +msgctxt "page:showcase/ctf/index.html" +msgid "REA → agent · selected results" +msgstr "REA → agent · নির্বাচিত ফলাফল" + +#: website/public/showcase/ctf/index.html:339 +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 "" +"Executable-এর মূল function নামগুলো মুছে ফেলা হলেও reference-টি agent-কে " +"অনুসন্ধানের একটি জায়গা দেয়।" + +#: website/public/showcase/ctf/index.html:346 +msgctxt "page:showcase/ctf/index.html" +msgid "Read the checker and its two helpers" +msgstr "Checker এবং তার দুটো helper পড়ুন" + +#: website/public/showcase/ctf/index.html:361 +msgctxt "page:showcase/ctf/index.html" +msgid "REA → agent · selected instructions" +msgstr "REA → agent · নির্বাচিত instruction" + +#. {ph0}: 0x18 +#. {ph1}: 0x270 +#: website/public/showcase/ctf/index.html:374 +#, 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 "" +"প্রথম loop 36টি character code কপি করে। যাচাইয়ের loop একটি mask decode করে," +" নির্বাচিত code-গুলো যোগ করে এবং ফলাফলকে একটি সংরক্ষিত সংখ্যার সঙ্গে মেলায়।" +" {ph1} byte জুড়ে এর {ph0}-byte ধাপ থেকে 26টি mask পাওয়া যায়।" + +#: website/public/showcase/ctf/index.html:382 +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-এর একটি নতুন বিশ্লেষণ থেকে নির্বাচিত ফলাফল। প্রদর্শনের জন্য local " +"টার্গেট path সংক্ষেপ করা হয়েছে; address-গুলো REA-এর import করা image-এর।" + +#: website/public/showcase/ctf/index.html:390 +msgctxt "page:showcase/ctf/index.html" +msgid "One check reveals one character" +msgstr "একটি যাচাই একটি অক্ষর প্রকাশ করে" + +#: website/public/showcase/ctf/index.html:391 +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 "" +"Checker input-টিকে একটি 6×6 grid-এ সাজায়। একটি mask ঠিক করে কোন ঘরগুলো " +"যোগফলে অবদান রাখবে। এর সংক্ষিপ্ত encoding-এ ঋণাত্মক সংখ্যা দিয়ে ঘর বাদ " +"দেওয়া হয়, আর ধনাত্মক সংখ্যা দিয়ে বেছে নেওয়া হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:411 +#, 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:418 +msgctxt "page:showcase/ctf/index.html" +msgid "Read the mask and its target from the binary" +msgstr "বাইনারি থেকে mask ও তার লক্ষ্যমান পড়ুন" + +#: website/public/showcase/ctf/index.html:424 +msgctxt "page:showcase/ctf/index.html" +msgid "Agent → REA · read_bytes" +msgstr "Agent → REA · read_bytes" + +#: website/public/showcase/ctf/index.html:431 +msgctxt "page:showcase/ctf/index.html" +msgid "REA → agent · seventh entries" +msgstr "REA → agent · সপ্তম entry" + +#. {ph0}: MOVSX +#. {ph1}: eb +#. {ph2}: code[21] = 55 +#. {ph3}: 7 +#: website/public/showcase/ctf/index.html:440 +#, 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} instruction mask byte-গুলোকে signed মান হিসেবে পড়ে। এ কারণেই {ph1} " +"মানে −21। লক্ষ্যমানটি একটি little-endian integer। এই byte-গুলো মিলে agent-কে" +" জানায় যে {ph2}, তাই অক্ষরটি {ph3}।" + +#: website/public/showcase/ctf/index.html:449 +msgctxt "page:showcase/ctf/index.html" +msgid "From instructions to a readable check" +msgstr "Instruction থেকে সহজপাঠ্য যাচাই" + +#: website/public/showcase/ctf/index.html:450 +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 "" +"যোগ করার helper ও তার caller-কে C-তে একই নিয়মের সঙ্গে মেলাতে একটি ধাপ বেছে " +"নিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:460 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}01{ph1} Start" +msgstr "{ph0}01{ph1} শুরু" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:468 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}02{ph1} Select" +msgstr "{ph0}02{ph1} বাছাই" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:476 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}03{ph1} Add" +msgstr "{ph0}03{ph1} যোগ" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:484 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}04{ph1} Advance" +msgstr "{ph0}04{ph1} অগ্রসর" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:492 +#, python-brace-format +msgctxt "page:showcase/ctf/index.html" +msgid "{ph0}05{ph1} Compare" +msgstr "{ph0}05{ph1} তুলনা" + +#: website/public/showcase/ctf/index.html:504 +msgctxt "page:showcase/ctf/index.html" +msgid "REA · selected original instructions" +msgstr "REA · নির্বাচিত মূল instruction" + +#: website/public/showcase/ctf/index.html:528 +msgctxt "page:showcase/ctf/index.html" +msgid "Readable C · one-check summary" +msgstr "সহজপাঠ্য C · একটি যাচাইয়ের সারাংশ" + +#. {ph0}: +#. {ph1}: +#. {ph2}: ECX +#: website/public/showcase/ctf/index.html:557 +#, 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}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:561 +#, 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 · Mask-এর ঘর যাচাই।{ph1} মান শূন্য হলে অক্ষরটি বাদ যায়; অশূন্য হলে " +"অন্তর্ভুক্ত হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:565 +#, 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 · একটি character code যোগ।{ph1} একই offset-এ থাকা input-এর integer " +"যোগফলে যোগ হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/ctf/index.html:569 +#, 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} মূল loop প্রতিটি integer-এর জন্য চার byte " +"করে এগোয় এবং ছয় ঘরের ছয়টি সারি ঘুরে দেখে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: EAX +#. {ph3}: Incorrect! +#: website/public/showcase/ctf/index.html:574 +#, 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} Caller {ph2}-এ যোগফলটি " +"পায়। না মিললে {ph3}-এ jump করে।" + +#: website/public/showcase/ctf/index.html:581 +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 "" +"Instruction-গুলো যোগ করার helper ও তার caller থেকে নেওয়া। C কোডটি " +"বর্ণনামূলক নাম এবং 36 ঘরের একটি সমতল loop-সহ একটি ব্যাখ্যামূলক সারাংশ।" + +#: website/public/showcase/ctf/index.html:589 +msgctxt "page:showcase/ctf/index.html" +msgid "Solve the 26 equations" +msgstr "26টি সমীকরণ সমাধান করুন" + +#: website/public/showcase/ctf/index.html:590 +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 "" +"বেশিরভাগ mask কয়েকটি ঘর বেছে নেয়। যেমন, প্রথম যাচাইটি 16টি character code " +"যোগ করে এবং মোট 1441 হওয়া দাবি করে। পরস্পর-আচ্ছাদিত বাছাইগুলো থেকে এমন " +"সমীকরণ পাওয়া যায় যা একটি ছোট Python script একসঙ্গে সমাধান করতে পারে।" + +#: website/public/showcase/ctf/index.html:598 +msgctxt "page:showcase/ctf/index.html" +msgid "Python · solver excerpt" +msgstr "Python · solver-এর অংশ" + +#. {ph0}: DUCTF{…} +#: website/public/showcase/ctf/index.html:626 +#, 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 একটি solver, যা এই সমীকরণগুলো পূরণ করে এমন মান খুঁজে বের করে। এই অংশে " +"extract করা যাচাইগুলো ব্যবহার করা হয়েছে এবং ধরে নেওয়া হয়েছে যে flag-টি " +"{ph0} আকারের, যাতে অক্ষর, অঙ্ক, underscore ও বন্ধনী আছে। সম্পূর্ণ ডাউনলোডে " +"26টি mask ও লক্ষ্যমানই আছে।" + +#: website/public/showcase/ctf/index.html:632 +msgctxt "page:showcase/ctf/index.html" +msgid "Download the complete solver" +msgstr "সম্পূর্ণ solver ডাউনলোড করুন" + +#: website/public/showcase/ctf/index.html:638 +msgctxt "page:showcase/ctf/index.html" +msgid "Check the answer with the original program" +msgstr "মূল প্রোগ্রাম দিয়ে উত্তর যাচাই করুন" + +#. {ph0}: z +#. {ph1}: y +#: website/public/showcase/ctf/index.html:639 +#, 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-এর process capture রেকর্ড করে যে মূল executable সমাধান করা flag গ্রহণ " +"করছে। নির্বাচিত একটি অক্ষর {ph0} থেকে {ph1}-এ বদলালে প্রথম যোগফল 1441-এর " +"বদলে 1440 হয়, এবং প্রোগ্রামটি তা বাতিল করে।" + +#: website/public/showcase/ctf/index.html:649 +msgctxt "page:showcase/ctf/index.html" +msgid "Input" +msgstr "Input" + +#: website/public/showcase/ctf/index.html:650 +msgctxt "page:showcase/ctf/index.html" +msgid "Observed output" +msgstr "পর্যবেক্ষিত output" + +#: website/public/showcase/ctf/index.html:651 +msgctxt "page:showcase/ctf/index.html" +msgid "Exit code" +msgstr "Exit code" + +#: website/public/showcase/ctf/index.html:656 +msgctxt "page:showcase/ctf/index.html" +msgid "Solver's flag" +msgstr "Solver-এর flag" + +#: website/public/showcase/ctf/index.html:661 +msgctxt "page:showcase/ctf/index.html" +msgid "One character changed" +msgstr "একটি অক্ষর বদলানো" + +#: website/public/showcase/ctf/index.html:669 +msgctxt "page:showcase/ctf/index.html" +msgid "Show the recovered flag and captured output" +msgstr "উদ্ধার করা flag ও capture করা output দেখুন" + +#: website/public/showcase/ctf/index.html:672 +msgctxt "page:showcase/ctf/index.html" +msgid "REA · original program output" +msgstr "REA · মূল প্রোগ্রামের output" + +#: website/public/showcase/ctf/index.html:673 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy flag" +msgstr "Flag কপি করুন" + +#: website/public/showcase/ctf/index.html:685 +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 "" +"বাইনারিটি সমাধান করার পরে যাচাই করে দেখা গেছে, উদ্ধার করা মানটি আয়োজকদের " +"প্রকাশিত challenge metadata-র flag-এর সঙ্গেও মিলে যায়।" + +#: website/public/showcase/ctf/index.html:691 +msgctxt "page:showcase/ctf/index.html" +msgid "Source, target identity and analysis details" +msgstr "সোর্স, টার্গেটের পরিচয় ও বিশ্লেষণের খুঁটিনাটি" + +#: website/public/showcase/ctf/index.html:692 +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-এ Linux x64-এ Ghidra 12.1.4-সহ REA 4.1.0 ব্যবহার করে নতুন " +"বিশ্লেষণ ও দুটো process capture করা হয়েছে। বাইনারিটি একটি stripped x86-64 " +"ELF, 15,248 byte।" + +#: website/public/showcase/ctf/index.html:699 +msgctxt "page:showcase/ctf/index.html" +msgid "Original executable · SHA-256" +msgstr "মূল executable · SHA-256" + +#: website/public/showcase/ctf/index.html:703 +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 "" +"আয়োজকদের source বা সমাধান পড়ার আগেই string reference, function ও constant " +"পরীক্ষা করা হয়েছিল। Python solver ও চিত্রটি সেই REA ফলাফল থেকেই তৈরি।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/ctf/index.html:708 +#, 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}আয়োজকদের source-এর সঙ্গে তুলনা করুন{ph1} · {ph2}Challenge metadata ও " +"flag{ph3} · {ph4}REA-এর প্রমাণ-সংক্রান্ত নোট{ph5}" + +#: website/public/showcase/ctf/index.html:728 +msgctxt "page:showcase/ctf/index.html" +msgid "Try it yourself" +msgstr "নিজে চেষ্টা করুন" + +#: website/public/showcase/ctf/index.html:729 +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 "" +"মূল challenge ও solver একটি ফোল্ডারে ডাউনলোড করুন। আপনার agent-এর সঙ্গে " +"অনুসন্ধানের জন্য ওপরের prompt ব্যবহার করুন, অথবা সঙ্গে দেওয়া script-টি " +"চালান।" + +#: website/public/showcase/ctf/index.html:735 +msgctxt "page:showcase/ctf/index.html" +msgid "Download the original challenge" +msgstr "মূল challenge ডাউনলোড করুন" + +#: website/public/showcase/ctf/index.html:739 +msgctxt "page:showcase/ctf/index.html" +msgid "Download solver" +msgstr "Solver ডাউনলোড করুন" + +#: website/public/showcase/ctf/index.html:745 +msgctxt "page:showcase/ctf/index.html" +msgid "Terminal · solve and run" +msgstr "টার্মিনাল · সমাধান ও চালানো" + +#. {ph0}: z3-solver +#: website/public/showcase/ctf/index.html:762 +#, 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 "" +"Script-টি একটি সম্ভাব্য flag দেখায়; সেটি প্রোগ্রামের prompt-এ paste করুন। " +"সমাধানের জন্য Python ও {ph0} লাগে। মূল executable চালাতে Linux x86-64 লাগে।" + +#: website/public/showcase/ctf/index.html:767 +msgctxt "page:showcase/ctf/index.html" +msgid "Set up REA with your coding agent" +msgstr "আপনার coding agent-এর সঙ্গে REA সেট আপ করুন" + +#: website/public/showcase/ctf/index.html:6 +msgctxt "page:showcase/ctf/index.html" +msgid "CTF Reverse Engineering: DownUnderCTF Flag Checker — REA" +msgstr "CTF Reverse Engineering: DownUnderCTF Flag Checker — 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-এর masked squares flag checker সমাধান করুন। যাচাইকারী" +" function খুঁজে বের করুন, mask-গুলো extract করুন এবং উদ্ধার করা flag মূল " +"প্রোগ্রামের সঙ্গে মিলিয়ে দেখুন।" + +#: website/public/showcase/ctf/index.html:260 +msgctxt "page:showcase/ctf/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/showcase/ctf/index.html:271 +msgctxt "page:showcase/ctf/index.html" +msgid "CTF flag-checker case study" +msgstr "CTF flag-checker case study" + +#: website/public/showcase/ctf/index.html:286 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy CTF example prompt" +msgstr "CTF উদাহরণ prompt কপি করুন" + +#: website/public/showcase/ctf/index.html:397 +msgctxt "page:showcase/ctf/index.html" +msgid "CTF mask equation; scroll horizontally on smaller screens" +msgstr "CTF mask-এর সমীকরণ; ছোট স্ক্রিনে পাশাপাশি scroll করুন" + +#: website/public/showcase/ctf/index.html:403 +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 "" +"সপ্তম mask 21টি ঘর বাদ দেয়, 21 নম্বর অবস্থানটি বেছে নেয়, তারপর 14টি বাদ " +"দেয়। শুধু সেই ঘরটিই যোগফলে অবদান রাখে। এর প্রয়োজনীয় character code 55, " +"অর্থাৎ অক্ষরটি 7।" + +#: website/public/showcase/ctf/index.html:455 +msgctxt "page:showcase/ctf/index.html" +msgid "Follow the CTF check" +msgstr "CTF যাচাই অনুসরণ করুন" + +#: website/public/showcase/ctf/index.html:505 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy CTF assembly" +msgstr "CTF assembly কপি করুন" + +#: website/public/showcase/ctf/index.html:529 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy readable CTF check" +msgstr "সহজপাঠ্য CTF যাচাই কপি করুন" + +#: website/public/showcase/ctf/index.html:599 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy CTF solver excerpt" +msgstr "CTF solver-এর অংশ কপি করুন" + +#: website/public/showcase/ctf/index.html:673 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy recovered flag" +msgstr "উদ্ধার করা flag কপি করুন" + +#: website/public/showcase/ctf/index.html:746 +msgctxt "page:showcase/ctf/index.html" +msgid "Copy CTF solver commands" +msgstr "CTF solver-এর কমান্ড কপি করুন" + +#: website/public/showcase/ctf/index.html:789 +msgctxt "page:showcase/ctf/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/dx-ball/index.html:113 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:205 +#, 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:208 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Case study · DX-Ball 1.07" +msgstr "Case study · DX-Ball 1.07" + +#. {ph0}:
+#: website/public/showcase/dx-ball/index.html:209 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "Rebuilding DX-Ball{ph0}from its executable." +msgstr "DX-Ball-কে তার executable থেকে{ph0}নতুন করে তৈরি করা।" + +#: website/public/showcase/dx-ball/index.html:210 +msgctxt "page:showcase/dx-ball/index.html" +msgid "" +"The goal is a maintainable C version of the 1996 Windows game. REA helps the" +" agent inspect the original, one function at a time." +msgstr "" +"লক্ষ্য হলো 1996 সালের Windows গেমটির রক্ষণাবেক্ষণযোগ্য একটি C সংস্করণ। " +"একবারে একটি করে function ধরে মূল গেমটি পরীক্ষা করতে REA agent-কে সাহায্য " +"করে।" + +#: website/public/showcase/dx-ball/index.html:214 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Windows i386 · C · REA" +msgstr "Windows i386 · C · REA" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:231 +#, 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 "" +"একটি function, executable থেকে যাচাইকৃত C পর্যন্ত। REA দেয় instruction, " +"caller ও data read; পুনর্গঠন প্রজেক্টটি ফলাফল implement ও test করে। " +"{ph0}চিত্রটি খুলুন{ph1}" + +#: website/public/showcase/dx-ball/index.html:242 +msgctxt "page:showcase/dx-ball/index.html" +msgid "In this case study" +msgstr "এই case study-তে" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:244 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}The project{ph1}" +msgstr "{ph0}প্রজেক্ট{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:245 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}Sound pan{ph1}" +msgstr "{ph0}Sound pan{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:246 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}Checking the result{ph1}" +msgstr "{ph0}ফলাফল যাচাই{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:247 +#, 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:255 +msgctxt "page:showcase/dx-ball/index.html" +msgid "maintained C functions" +msgstr "রক্ষণাবেক্ষণকৃত C function" + +#: website/public/showcase/dx-ball/index.html:259 +msgctxt "page:showcase/dx-ball/index.html" +msgid "comparisons with original code" +msgstr "মূল কোডের সঙ্গে তুলনা" + +#: website/public/showcase/dx-ball/index.html:263 +msgctxt "page:showcase/dx-ball/index.html" +msgid "functions with matching compiled bytes" +msgstr "compile করা byte মিলে যাওয়া function" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:266 +#, 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 "" +"প্রজেক্টের checkpoint: 7 অক্টোবর 2026। {ph0}অগ্রগতির খতিয়ান{ph1} · " +"{ph2}Test coverage{ph3}" + +#: website/public/showcase/dx-ball/index.html:278 +msgctxt "page:showcase/dx-ball/index.html" +msgid "The project so far" +msgstr "প্রজেক্ট এখন পর্যন্ত" + +#: website/public/showcase/dx-ball/index.html:279 +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 "" +"উদ্ধার করা কোডে আছে board ও resource ব্যবস্থাপনা, brick hit, animation, " +"particle এবং bonus তৈরি। বর্তমান build-এ inspection utility ও একটি analysis " +"library পাওয়া যায়। খেলার উপযোগী গেম নিয়ে কাজ চলছে — ball ও paddle-এর " +"physics, power-up ব্যবস্থাপনা এবং Windows integration।" + +#: website/public/showcase/dx-ball/index.html:289 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Finding the sound-pan calculation" +msgstr "Sound-pan হিসাবটি খুঁজে বের করা" + +#: website/public/showcase/dx-ball/index.html:290 +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 "" +"একটি brick-এ আঘাত লাগলে তার অনুভূমিক অবস্থান sound কোডে পাঠানো হয়। " +"অনুসন্ধানে বের করতে হয়েছিল সেই screen coordinate কীভাবে বাম/ডান panning-এর " +"মানে পরিণত হয়।" + +#. {ph0}: +#: website/public/showcase/dx-ball/index.html:297 +#, 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}আপনার coding agent" + +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/showcase/dx-ball/index.html:310 +#, 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}DX-Ball কীভাবে sound panning হিসাব করে তা REA দিয়ে খুঁজে " +"বের করো। হিসাবটি ব্যাখ্যা করো এবং কোড দেখাও।{ph3}{ph4}{ph5}" + +#: website/public/showcase/dx-ball/index.html:318 +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 "" +"Local executable হাতে থাকা অবস্থায় আপনার coding agent-এর জন্য একটি উদাহরণ " +"prompt। নিচের অনুসন্ধানে উত্তরের পেছনের REA query ও প্রমাণ দেখানো হয়েছে।" + +#: website/public/showcase/dx-ball/index.html:323 +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 "" +"Agent REA দিয়ে function-টি পরীক্ষা করেছে, এর brick-hit caller অনুসরণ করেছে " +"এবং executable থেকে constant-গুলো পড়েছে। নিচের C function লিখতে যে input ও " +"হিসাব দরকার ছিল, তা এই ফলাফলগুলো থেকেই এসেছে।" + +#. {ph0}: 0x406400 +#. {ph1}: FUN_00406400(void) +#. {ph2}: __ftol() +#: website/public/showcase/dx-ball/index.html:329 +#, 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}-এর প্রথম function ফলাফলের pseudocode-এ {ph1} ঘোষণা করা হয়েছিল এবং " +"{ph2} call করা হয়েছিল। এর instruction view-তে দেখা গেল একটি stack input ও " +"floating-point operation। এই অসংগতিই agent-কে অনুসন্ধান চালিয়ে যাওয়ার একটি" +" সুনির্দিষ্ট কারণ দিয়েছে।" + +#: website/public/showcase/dx-ball/index.html:337 +msgctxt "page:showcase/dx-ball/index.html" +msgid "The first decompiler view" +msgstr "প্রথম decompiler view" + +#: website/public/showcase/dx-ball/index.html:340 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA result · pseudocode excerpt" +msgstr "REA ফলাফল · pseudocode-এর অংশ" + +#: website/public/showcase/dx-ball/index.html:350 +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 "" +"Output-এ একটি রূপান্তরের call দেখা যায়। নিচের instruction-গুলো পড়লে input " +"এবং সেই call-এ যাওয়া হিসাবটি স্পষ্ট হয়।" + +#: website/public/showcase/dx-ball/index.html:356 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Three questions answered through REA" +msgstr "REA-এর মাধ্যমে তিনটি প্রশ্নের উত্তর" + +#: website/public/showcase/dx-ball/index.html:359 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Recover the missing input" +msgstr "অনুপস্থিত input উদ্ধার করুন" + +#. {ph0}: analyze_function +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "Agent → REA · {ph0}" +msgstr "Agent → REA · {ph0}" + +#: website/public/showcase/dx-ball/index.html:369 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA → agent · instruction excerpt" +msgstr "REA → agent · instruction-এর অংশ" + +#. {ph0}: [EBP+8] +#: website/public/showcase/dx-ball/index.html:376 +#, 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 "" +"Function-এর ফলাফলে pseudocode ও caller-এর পাশাপাশি instruction-ও থাকে। এখানে" +" {ph0} সেই integer input-টি দেখিয়ে দেয়, যা decompiler view-তে অনুপস্থিত " +"ছিল।" + +#: website/public/showcase/dx-ball/index.html:383 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Follow the caller to understand the input" +msgstr "Input-টি বুঝতে caller অনুসরণ করুন" + +#: website/public/showcase/dx-ball/index.html:393 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA → agent · caller excerpt" +msgstr "REA → agent · caller-এর অংশ" + +#. {ph0}: tile_x +#. {ph1}: 20 + 30 × tile_x +#: website/public/showcase/dx-ball/index.html:400 +#, 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 প্রথম ফলাফলেই এই caller-টি শনাক্ত করেছে। এর আগের instruction-গুলো " +"{ph0}-কে 30 দিয়ে scale করে; 20 যোগ করলে brick-এর screen coordinate {ph1} " +"পাওয়া যায়।" + +#: website/public/showcase/dx-ball/index.html:407 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Read the values behind the memory addresses" +msgstr "Memory address-গুলোর পেছনের মান পড়ুন" + +#. {ph0}: read_bytes +#: website/public/showcase/dx-ball/index.html:411 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "Agent → REA · two {ph0} requests" +msgstr "Agent → REA · দুটো {ph0} request" + +#: website/public/showcase/dx-ball/index.html:421 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA byte results · decoded as doubles" +msgstr "REA byte ফলাফল · double হিসেবে decode করা" + +#: website/public/showcase/dx-ball/index.html:428 +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 "" +"ফেরত আসা byte-গুলো থেকে দুটো গাণিতিক constant ও প্রাথমিক pan scale নিশ্চিত " +"হয়। C expression লেখার জন্য প্রয়োজনীয় মানগুলো এখন agent-এর হাতে।" + +#: website/public/showcase/dx-ball/index.html:436 +msgctxt "page:showcase/dx-ball/index.html" +msgid "From REA's findings to C" +msgstr "REA-এর ফলাফল থেকে C" + +#: website/public/showcase/dx-ball/index.html:437 +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 "" +"নিচের পাঁচটি ধাপ অনুসরণ করুন। প্রতিটি বাছাই মূল instruction এবং সেগুলো থেকে " +"তৈরি C লাইনগুলো চিহ্নিত করে।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:447 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}01{ph1} Input" +msgstr "{ph0}01{ph1} Input" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:455 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}02{ph1} Multiply" +msgstr "{ph0}02{ph1} গুণ" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:463 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}03{ph1} Subtract" +msgstr "{ph0}03{ph1} বিয়োগ" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:471 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}04{ph1} Scale" +msgstr "{ph0}04{ph1} Scale" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:479 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}05{ph1} Return" +msgstr "{ph0}05{ph1} Return" + +#: website/public/showcase/dx-ball/index.html:491 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Original x86 · excerpt" +msgstr "মূল x86 · অংশবিশেষ" + +#: website/public/showcase/dx-ball/index.html:512 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Reconstructed C" +msgstr "পুনর্গঠিত C" + +#. {ph0}: +#. {ph1}: +#. {ph2}: [EBP+8] +#. {ph3}: FILD +#. {ph4}: x +#: website/public/showcase/dx-ball/index.html:539 +#, 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 · Input পড়া।{ph1} REA-এর function ফলাফলের instruction view {ph2} " +"পড়ে এবং integer লোড করতে {ph3} ব্যবহার করে। REA দিয়ে এর caller অনুসরণ করলে" +" C parameter {ph4}-এর অর্থ যে screen coordinate, তা নিশ্চিত হয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: FMUL +#. {ph3}: 0x420068 +#. {ph4}: read_bytes +#. {ph5}: 1.5625 +#: website/public/showcase/dx-ball/index.html:546 +#, 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}-এর double পড়ে। REA-এর {ph4} যে" +" byte ফেরত দেয় তা decode করলে {ph5} পাওয়া যায়; C-তেও একই constant ব্যবহৃত" +" হয়েছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: FSUB +#. {ph3}: 0x420070 +#. {ph4}: 500.0 +#. {ph5}: 320 +#: website/public/showcase/dx-ball/index.html:552 +#, 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}-এর double পড়ে। REA-এর byte ফলাফল " +"decode করলে {ph4} পাওয়া যায়, যা হিসাবের কেন্দ্রকে screen coordinate " +"{ph5}-এ সরিয়ে আনে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: FMUL +#. {ph3}: 0x4210a0 +#. {ph4}: dxball_pan_scale +#. {ph5}: 1.0 +#: website/public/showcase/dx-ball/index.html:558 +#, 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 · সংরক্ষিত scale প্রয়োগ।{ph1} দ্বিতীয় {ph2} {ph3} পড়ে। " +"রক্ষণাবেক্ষণকৃত source-এ এই global-এর নাম {ph4}। REA-এর দ্বিতীয় byte read " +"এর প্রাথমিক মান {ph5} নিশ্চিত করে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 0x406430 +#. {ph3}: __ftol +#. {ph4}: DxBallInt +#: website/public/showcase/dx-ball/index.html:565 +#, 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 · একটি integer return।{ph1} {ph2}-এর call {ph3}-এ পৌঁছায়, যা REA-এর" +" callee ফলাফলে শনাক্ত হয়েছে। C কোডে ফলাফলটি {ph4}-এ cast করা হয়; মূল " +"x86-এর সঙ্গে তুলনা ফেরত দেওয়া মানটি যাচাই করে।" + +#: website/public/showcase/dx-ball/index.html:574 +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 "" +"Assembly-র অংশটিতে input, হিসাব ও return-এর instruction বেছে নেওয়া হয়েছে। " +"নিচের পূর্ণ listing-এ মাঝের store এবং function-এর setup ও cleanup-ও আছে।" + +#: website/public/showcase/dx-ball/index.html:580 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Full assembly and supporting evidence" +msgstr "পূর্ণ assembly ও সহায়ক প্রমাণ" + +#: website/public/showcase/dx-ball/index.html:583 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA result · 0x406400–0x40643e" +msgstr "REA ফলাফল · 0x406400–0x40643e" + +#: website/public/showcase/dx-ball/index.html:617 +msgctxt "page:showcase/dx-ball/index.html" +msgid "What the caller supplies" +msgstr "Caller কী দেয়" + +#. {ph0}: 0x411f40 +#: website/public/showcase/dx-ball/index.html:618 +#, 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}-এর brick-hit function তার tile coordinate-কে 30 দিয়ে scale করে, 20 " +"যোগ করে, তারপর call-এর আগে push করে:" + +#: website/public/showcase/dx-ball/index.html:632 +msgctxt "page:showcase/dx-ball/index.html" +msgid "What the data reads establish" +msgstr "Data read থেকে কী নিশ্চিত হয়" + +#: website/public/showcase/dx-ball/index.html:635 +msgctxt "page:showcase/dx-ball/index.html" +msgid "REA byte reads, decoded as little-endian doubles" +msgstr "REA byte read, little-endian double হিসেবে decode করা" + +#: website/public/showcase/dx-ball/index.html:640 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Address" +msgstr "Address" + +#: website/public/showcase/dx-ball/index.html:641 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Value" +msgstr "মান" + +#: website/public/showcase/dx-ball/index.html:642 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Used for" +msgstr "ব্যবহার" + +#: website/public/showcase/dx-ball/index.html:649 +msgctxt "page:showcase/dx-ball/index.html" +msgid "First multiplication" +msgstr "প্রথম গুণ" + +#: website/public/showcase/dx-ball/index.html:654 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Subtraction" +msgstr "বিয়োগ" + +#. {ph0}: 1.0 +#: website/public/showcase/dx-ball/index.html:658 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0} initially" +msgstr "{ph0} শুরুতে" + +#: website/public/showcase/dx-ball/index.html:659 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Stored pan scale" +msgstr "সংরক্ষিত pan scale" + +#: website/public/showcase/dx-ball/index.html:664 +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 "" +"Hash দিয়ে নির্দিষ্ট করা DX-Ball 1.07 টার্গেটের জন্য REA 4.1.0 দিয়ে রেকর্ড " +"করা। লিংক করা অনুসন্ধান-নোটে Evidence ID-গুলো সংরক্ষিত আছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:669 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "" +"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence " +"references{ph3}" +msgstr "" +"{ph0}রক্ষণাবেক্ষণকৃত source{ph1} · {ph2}অনুসন্ধান-নোট ও প্রমাণের " +"reference{ph3}" + +#: website/public/showcase/dx-ball/index.html:683 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Checking the recovered function" +msgstr "উদ্ধার করা function যাচাই" + +#: website/public/showcase/dx-ball/index.html:684 +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 "" +"উদ্ধার করা function দুটো যাচাইয়েই উত্তীর্ণ: এর return মান মূলটির সঙ্গে " +"মেলে, আর এর compile করা byte executable-এর সঙ্গে মেলে।" + +#: website/public/showcase/dx-ball/index.html:690 +msgctxt "page:showcase/dx-ball/index.html" +msgid "3,205 behavior cases" +msgstr "3,205টি আচরণগত case" + +#: website/public/showcase/dx-ball/index.html:691 +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 "" +"Test-গুলো মূল x86 function চালিয়ে তার return মান রক্ষণাবেক্ষণকৃত C-এর সঙ্গে" +" তুলনা করে। এতে 0, 0.5, 1, 20 ও −1 — এই পাঁচটি pan scale-এ 0 থেকে 640 " +"পর্যন্ত প্রতিটি integer অবস্থান অন্তর্ভুক্ত।" + +#: website/public/showcase/dx-ball/index.html:699 +msgctxt "page:showcase/dx-ball/index.html" +msgid "63 matching bytes" +msgstr "63টি byte মিলেছে" + +#: website/public/showcase/dx-ball/index.html:700 +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 function-টি নির্দিষ্ট VC4.0 toolchain দিয়ে compile করা হয়। পর্যালোচিত " +"relocation প্রয়োগ এবং reference করা constant যাচাইয়ের পরে compiler replay " +"সম্পূর্ণ function-টির সঙ্গে মিলে যায়।" + +#: website/public/showcase/dx-ball/index.html:708 +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 "" +"Scale 1 হলে উদ্ধার করা হিসাবটি বাম প্রান্তে −500, মাঝখানে 0 এবং ডান প্রান্তে" +" 500 ফেরত দেয়। Audio-র কাজের পরের ধাপ হলো এই মানটিকে গেমের sound backend-এর" +" সঙ্গে যুক্ত করা।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/dx-ball/index.html:714 +#, python-brace-format +msgctxt "page:showcase/dx-ball/index.html" +msgid "{ph0}Read the compiler replay details{ph1}" +msgstr "{ph0}Compiler replay-এর বিস্তারিত পড়ুন{ph1}" + +#: website/public/showcase/dx-ball/index.html:723 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Continue the investigation" +msgstr "অনুসন্ধান এগিয়ে নিন" + +#: website/public/showcase/dx-ball/index.html:724 +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 "" +"Particle update, explosion queue এবং bonus তৈরির ক্ষেত্রেও একই পদ্ধতি " +"ব্যবহার করা হচ্ছে: প্রাসঙ্গিক function পরীক্ষা করা, তাদের state ও dependency" +" উদ্ধার করা, তারপর implementation-কে মূলটির সঙ্গে মিলিয়ে দেখা।" + +#: website/public/showcase/dx-ball/index.html:730 +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 "" +"Sound-pan function নিজে পরীক্ষা করতে DX-Ball প্রজেক্টের setup নির্দেশনা " +"অনুসরণ করুন এবং তার সঙ্গে মিলে যাওয়া মূল টার্গেটটি দিন। তারপর চালান:" + +#: website/public/showcase/dx-ball/index.html:737 +msgctxt "page:showcase/dx-ball/index.html" +msgid "In the DX-Ball checkout" +msgstr "DX-Ball checkout-এর ভেতরে" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:751 +#, 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 repository{ph1}{ph2}বর্তমান source, অগ্রগতি ও local setup।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:756 +#, 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 analysis workflow{ph1}{ph2}হিসাবটি অনুসরণ করুন, তারপর নিজের " +"বাইনারিতে একই পদ্ধতি প্রয়োগ করুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/dx-ball/index.html:763 +#, 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}Particle ও bonus তৈরি{ph1}{ph2}State, queue ও pixel write নিয়ে আরও বড়" +" একটি অনুসন্ধান।{ph3}" + +#: website/public/showcase/dx-ball/index.html:774 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Start with your own target" +msgstr "নিজের টার্গেট দিয়ে শুরু করুন" + +#: 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 Reverse Engineering: Sound Panning — 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 "" +"বাইনারি বিশ্লেষণ থেকে REA হয়ে রক্ষণাবেক্ষণকৃত C, মূল x86 test এবং মিলে " +"যাওয়া compile করা function byte পর্যন্ত — DX-Ball-এর পুনর্গঠন অনুসরণ করুন।" + +#: website/public/showcase/dx-ball/index.html:217 +msgctxt "page:showcase/dx-ball/index.html" +msgid "" +"DX-Ball sound-pan investigation; scroll horizontally on smaller screens" +msgstr "DX-Ball sound-pan অনুসন্ধান; ছোট স্ক্রিনে পাশাপাশি scroll করুন" + +#: website/public/showcase/dx-ball/index.html:223 +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 "" +"REA দিয়ে DXBALL.EXE-এর function 0x00406400 পরীক্ষা করা হয়। একটি brick-hit " +"caller দেয় 20 যোগ 30 গুণ tile_x। Instruction-গুলো x লোড করে, 1.5625 দিয়ে " +"গুণ করে, 500.0 বিয়োগ করে, pan_scale প্রয়োগ করে এবং একটি integer ফেরত দেয়।" +" রক্ষণাবেক্ষণকৃত C কোডটি স্বতন্ত্রভাবে মূল x86-এর সঙ্গে 3,205টি case-এ এবং " +"63টি byte মিলে যাওয়া VC4.0 compiler replay দিয়ে যাচাই করা হয়েছে।" + +#: website/public/showcase/dx-ball/index.html:241 +msgctxt "page:showcase/dx-ball/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/showcase/dx-ball/index.html:250 +msgctxt "page:showcase/dx-ball/index.html" +msgid "DX-Ball reconstruction case study" +msgstr "DX-Ball পুনর্গঠনের case study" + +#: website/public/showcase/dx-ball/index.html:301 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy example prompt" +msgstr "উদাহরণ prompt কপি করুন" + +#: website/public/showcase/dx-ball/index.html:442 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Follow the sound-pan calculation" +msgstr "Sound-pan হিসাব অনুসরণ করুন" + +#: website/public/showcase/dx-ball/index.html:492 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy original assembly excerpt" +msgstr "মূল assembly-র অংশ কপি করুন" + +#: website/public/showcase/dx-ball/index.html:513 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy sound-pan function" +msgstr "Sound-pan function কপি করুন" + +#: website/public/showcase/dx-ball/index.html:584 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy complete sound-pan assembly" +msgstr "সম্পূর্ণ sound-pan assembly কপি করুন" + +#: website/public/showcase/dx-ball/index.html:738 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Copy DX-Ball analysis command" +msgstr "DX-Ball বিশ্লেষণ কমান্ড কপি করুন" + +#: website/public/showcase/dx-ball/index.html:797 +msgctxt "page:showcase/dx-ball/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/index.html:113 +msgctxt "page:showcase/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/index.html:205 +#, python-brace-format +msgctxt "page:showcase/index.html" +msgid "{ph0}Home{ph1} / Showcases" +msgstr "{ph0}হোম{ph1} / শোকেস" + +#: website/public/showcase/index.html:206 +msgctxt "page:showcase/index.html" +msgid "REA case studies." +msgstr "REA case study।" + +#: website/public/showcase/index.html:207 +msgctxt "page:showcase/index.html" +msgid "" +"Android, games, Electron and a CTF challenge, with code, figures and checked" +" results." +msgstr "" +"Android, গেম, Electron এবং একটি CTF challenge — কোড, চিত্র ও যাচাইকৃত " +"ফলাফলসহ।" + +#: website/public/showcase/index.html:214 +msgctxt "page:showcase/index.html" +msgid "Android · APK analysis" +msgstr "Android · APK বিশ্লেষণ" + +#: website/public/showcase/index.html:216 +msgctxt "page:showcase/index.html" +msgid "How an authenticator generates a login code" +msgstr "একটি authenticator কীভাবে login code তৈরি করে" + +#: website/public/showcase/index.html:217 +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-এর release করা APK-তে এর ছয় অঙ্কের code-এর হিসাব খুঁজে বের করুন। REA " +"দিয়ে code তৈরির method-গুলো trace করুন, তারপর একটি demo ঘড়ি এগিয়ে দেখুন " +"কেন code প্রতি 30 সেকেন্ডে বদলায়।" + +#: website/public/showcase/index.html:223 +msgctxt "page:showcase/index.html" +msgid "APK" +msgstr "APK" + +#: website/public/showcase/index.html:224 +msgctxt "page:showcase/index.html" +msgid "Generating code" +msgstr "Code তৈরি" + +#: website/public/showcase/index.html:225 +msgctxt "page:showcase/index.html" +msgid "Recovered rule" +msgstr "উদ্ধার করা নিয়ম" + +#: website/public/showcase/index.html:226 +msgctxt "page:showcase/index.html" +msgid "Adjustable clock" +msgstr "নিয়ন্ত্রণযোগ্য ঘড়ি" + +#: website/public/showcase/index.html:228 +msgctxt "page:showcase/index.html" +msgid "Read the Android case study" +msgstr "Android case study পড়ুন" + +#: website/public/showcase/index.html:232 +msgctxt "page:showcase/index.html" +msgid "CTF · Native analysis" +msgstr "CTF · Native বিশ্লেষণ" + +#: website/public/showcase/index.html:234 +msgctxt "page:showcase/index.html" +msgid "Solve a CTF flag checker" +msgstr "একটি CTF flag checker সমাধান করুন" + +#: website/public/showcase/index.html:235 +msgctxt "page:showcase/index.html" +msgid "" +"Inspect an easy DownUnderCTF challenge with REA. Find its checking " +"functions, turn masks and sums into equations, then verify the solved flag " +"with the original program." +msgstr "" +"REA দিয়ে DownUnderCTF-এর একটি সহজ challenge পরীক্ষা করুন। এর যাচাইকারী " +"function-গুলো খুঁজে বের করুন, mask ও যোগফলকে সমীকরণে রূপ দিন, তারপর মূল " +"প্রোগ্রাম দিয়ে সমাধান করা flag যাচাই করুন।" + +#: website/public/showcase/index.html:241 +msgctxt "page:showcase/index.html" +msgid "Binary" +msgstr "বাইনারি" + +#: website/public/showcase/index.html:242 +msgctxt "page:showcase/index.html" +msgid "Checking code" +msgstr "যাচাইয়ের কোড" + +#: website/public/showcase/index.html:243 +msgctxt "page:showcase/index.html" +msgid "Equations" +msgstr "সমীকরণ" + +#: website/public/showcase/index.html:244 +msgctxt "page:showcase/index.html" +msgid "Correct!" +msgstr "সঠিক!" + +#: website/public/showcase/index.html:246 +msgctxt "page:showcase/index.html" +msgid "Read the CTF case study" +msgstr "CTF case study পড়ুন" + +#: website/public/showcase/index.html:250 +msgctxt "page:showcase/index.html" +msgid "Native · Reconstruction" +msgstr "Native · পুনর্গঠন" + +#: website/public/showcase/index.html:252 +msgctxt "page:showcase/index.html" +msgid "DX-Ball's sound-pan calculation" +msgstr "DX-Ball-এর sound-pan হিসাব" + +#: website/public/showcase/index.html:253 +msgctxt "page:showcase/index.html" +msgid "" +"Recover a sound-pan calculation from a 1996 Windows game. REA's " +"instructions, caller references and numeric constants lead to a small C " +"function, checked against the original behavior and all 63 compiled bytes." +msgstr "" +"1996 সালের একটি Windows গেম থেকে একটি sound-pan হিসাব উদ্ধার করুন। REA-এর " +"instruction, caller reference ও সংখ্যাসূচক constant থেকে পাওয়া যায় একটি " +"ছোট C function, যা মূল আচরণ এবং compile করা 63টি byte-এর সঙ্গে মিলিয়ে যাচাই" +" করা হয়েছে।" + +#: website/public/showcase/index.html:260 +msgctxt "page:showcase/index.html" +msgid "Executable" +msgstr "Executable" + +#: website/public/showcase/index.html:261 +msgctxt "page:showcase/index.html" +msgid "REA findings" +msgstr "REA-এর ফলাফল" + +#: website/public/showcase/index.html:262 +msgctxt "page:showcase/index.html" +msgid "Recovered C" +msgstr "উদ্ধার করা C" + +#: website/public/showcase/index.html:263 +msgctxt "page:showcase/index.html" +msgid "Validation" +msgstr "যাচাই" + +#: website/public/showcase/index.html:265 +msgctxt "page:showcase/index.html" +msgid "Read the DX-Ball case study" +msgstr "DX-Ball case study পড়ুন" + +#: website/public/showcase/index.html:269 +msgctxt "page:showcase/index.html" +msgid "Electron · Feature tracing" +msgstr "Electron · ফিচার trace" + +#: website/public/showcase/index.html:271 +msgctxt "page:showcase/index.html" +msgid "How Notion copies text and HTML" +msgstr "Notion কীভাবে টেক্সট ও HTML কপি করে" + +#: website/public/showcase/index.html:272 +msgctxt "page:showcase/index.html" +msgid "" +"Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" +" wrappers to the system clipboard, then see how a small HTML marker keeps " +"rich block data connected to a copy." +msgstr "" +"Notion-এর packaged JavaScript-এর মধ্য দিয়ে পেজের জন্য উন্মুক্ত একটি API " +"trace করুন। এর IPC wrapper অনুসরণ করে system clipboard পর্যন্ত যান, তারপর " +"দেখুন একটি ছোট HTML marker কীভাবে rich block data-কে কপির সঙ্গে যুক্ত রাখে।" + +#: website/public/showcase/index.html:278 +msgctxt "page:showcase/index.html" +msgid "Packaged app" +msgstr "Packaged অ্যাপ" + +#: website/public/showcase/index.html:279 +msgctxt "page:showcase/index.html" +msgid "Exposed API" +msgstr "উন্মুক্ত API" + +#: website/public/showcase/index.html:280 +msgctxt "page:showcase/index.html" +msgid "IPC wrappers" +msgstr "IPC wrapper" + +#: website/public/showcase/index.html:281 +msgctxt "page:showcase/index.html" +msgid "Clipboard" +msgstr "Clipboard" + +#: website/public/showcase/index.html:283 +msgctxt "page:showcase/index.html" +msgid "Read the Notion case study" +msgstr "Notion case study পড়ুন" + +#: website/public/showcase/index.html:287 +msgctxt "page:showcase/index.html" +msgid "PC-98 DOS · Reconstruction" +msgstr "PC-98 DOS · পুনর্গঠন" + +#: website/public/showcase/index.html:289 +msgctxt "page:showcase/index.html" +msgid "How TH04 aims a ring of bullets" +msgstr "TH04 কীভাবে বুলেটের একটি বলয় তাক করে" + +#: website/public/showcase/index.html:290 +msgctxt "page:showcase/index.html" +msgid "" +"Inspect the original 16-bit angle helper with REA. Match its multiply, " +"divide and coordinate operations to readable C++, then see how they produce " +"a ring aimed at the player." +msgstr "" +"REA দিয়ে মূল 16-bit angle helper পরীক্ষা করুন। এর গুণ, ভাগ ও coordinate " +"operation-গুলোকে সহজপাঠ্য C++-এর সঙ্গে মেলান, তারপর দেখুন সেগুলো কীভাবে " +"খেলোয়াড়ের দিকে তাক করা একটি বলয় তৈরি করে।" + +#: website/public/showcase/index.html:296 +msgctxt "page:showcase/index.html" +msgid "Original DOS code" +msgstr "মূল DOS কোড" + +#: website/public/showcase/index.html:297 +msgctxt "page:showcase/index.html" +msgid "REA instructions" +msgstr "REA instruction" + +#: website/public/showcase/index.html:298 +msgctxt "page:showcase/index.html" +msgid "Angle calculation" +msgstr "কোণের হিসাব" + +#: website/public/showcase/index.html:299 +msgctxt "page:showcase/index.html" +msgid "Bullet ring" +msgstr "বুলেটের বলয়" + +#: website/public/showcase/index.html:301 +msgctxt "page:showcase/index.html" +msgid "Read the TH04 case study" +msgstr "TH04 case study পড়ুন" + +#: website/public/showcase/index.html:306 +msgctxt "page:showcase/index.html" +msgid "Step-by-step guides" +msgstr "ধাপে ধাপে গাইড" + +#: website/public/showcase/index.html:307 +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 "" +"গাইডগুলোতে ধাপে ধাপে দেখানো হয়েছে একটি native হিসাব, একটি Electron export " +"এবং একটি ব্রাউজার request। প্রতিটি শুরু হয় একটি prompt ও একটি নির্দিষ্ট " +"টার্গেট দিয়ে।" + +#: website/public/showcase/index.html:311 +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 "Reverse Engineering Case Study — 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 "" +"কোড, চিত্র ও demo-র মাধ্যমে REA-এর অনুসন্ধানগুলো অনুসরণ করুন: একটি Android " +"authenticator, DX-Ball, Notion, TH04 এবং একটি DownUnderCTF flag checker।" + +#: website/public/showcase/index.html:329 +msgctxt "page:showcase/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/notion/index.html:113 +msgctxt "page:showcase/notion/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/notion/index.html:205 +#, 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:208 +msgctxt "page:showcase/notion/index.html" +msgid "Case study · Electron" +msgstr "Case study · Electron" + +#. {ph0}:
+#: website/public/showcase/notion/index.html:209 +#, 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:210 +msgctxt "page:showcase/notion/index.html" +msgid "" +"Trace a clipboard call from Notion's page API, through the preload and main " +"process, to Electron's clipboard writer." +msgstr "" +"Notion-এর page API থেকে preload ও main process হয়ে Electron-এর clipboard " +"writer পর্যন্ত একটি clipboard call trace করুন।" + +#: website/public/showcase/notion/index.html:214 +msgctxt "page:showcase/notion/index.html" +msgid "Notion Desktop 7.6.1 · JavaScript · REA" +msgstr "Notion Desktop 7.6.1 · JavaScript · REA" + +#: website/public/showcase/notion/index.html:218 +msgctxt "page:showcase/notion/index.html" +msgid "The bridge inside Notion's desktop package" +msgstr "Notion-এর desktop package-এর ভেতরের bridge" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: clipboard.write(data) +#. {ph4}: +#. {ph5}: +#. {ph6}: +#: website/public/showcase/notion/index.html:220 +#, 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}Preload একটি " +"call করার যোগ্য method উন্মুক্ত করে।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: ipcRenderer.invoke +#. {ph4}: +#. {ph5}: +#. {ph6}: +#: website/public/showcase/notion/index.html:227 +#, 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 · Preload wrapper{ph1} {ph2}{ph3}{ph4} {ph5}Wrapper-টি channel ও " +"argument পাঠায়।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: ipcMain.handle +#. {ph4}: +#. {ph5}: +#. {ph6}: +#: website/public/showcase/notion/index.html:234 +#, 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 · Main-process handler{ph1} {ph2}{ph3}{ph4} {ph5}Receiver যাচাই করে " +"কোন পেজ এটি পাঠিয়েছে।{ph6}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: clipboard.write(data) +#. {ph4}: +#. {ph5}: +#. {ph6}: +#: website/public/showcase/notion/index.html:241 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "" +"{ph0}04 · System clipboard{ph1} {ph2}{ph3}{ph4} {ph5}Electron writes the " +"supplied text and HTML.{ph6}" +msgstr "" +"{ph0}04 · System clipboard{ph1} {ph2}{ph3}{ph4} {ph5}Electron দেওয়া টেক্সট " +"ও HTML লেখে।{ph6}" + +#. {ph0}: notion:clipboard:write +#: website/public/showcase/notion/index.html:249 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "One channel joins the two sides: {ph0}" +msgstr "একটি channel দুই দিককে যুক্ত করে: {ph0}" + +#: website/public/showcase/notion/index.html:253 +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 "" +"Packaged কোড preload ও main process-এ একই channel ব্যবহার করে। Wrapper-গুলো " +"resolve করলে ওই নামগুলোর পেছনের Electron call বেরিয়ে আসে।" + +#: website/public/showcase/notion/index.html:262 +msgctxt "page:showcase/notion/index.html" +msgid "In this case study" +msgstr "এই case study-তে" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/notion/index.html:264 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "{ph0}Follow the clipboard bridge{ph1}" +msgstr "{ph0}Clipboard bridge অনুসরণ করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/notion/index.html:265 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "{ph0}Keeping a block's structure{ph1}" +msgstr "{ph0}একটি block-এর গঠন বজায় রাখা{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/notion/index.html:266 +#, 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:271 +msgctxt "page:showcase/notion/index.html" +msgid "Where does the copy operation go?" +msgstr "কপি operation কোথায় যায়?" + +#. {ph0}: clipboard.write +#: website/public/showcase/notion/index.html:272 +#, 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} নামের একটি method দেখতে পায়। Preload-এ এর implementation একটি " +"wrapper। আসল প্রশ্ন হলো, সেই wrapper কী পাঠায় এবং কোন কোড তা গ্রহণ করে।" + +#. {ph0}: +#: website/public/showcase/notion/index.html:279 +#, 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}আপনার coding agent" + +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 +msgctxt "page:showcase/notion/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/showcase/notion/index.html:292 +#, 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}Notion কীভাবে টেক্সট ও HTML system clipboard-এ কপি করে তা " +"REA দিয়ে trace করো। প্রতিটি ধাপের কোড দেখাও।{ph3}{ph4}{ph5}" + +#: website/public/showcase/notion/index.html:300 +msgctxt "page:showcase/notion/index.html" +msgid "" +"An example prompt with Notion's local application package available to your " +"coding agent." +msgstr "" +"একটি উদাহরণ prompt — Notion-এর local application package আপনার coding agent-" +"এর হাতে থাকা অবস্থায়।" + +#: website/public/showcase/notion/index.html:305 +msgctxt "page:showcase/notion/index.html" +msgid "REA finds where to start reading" +msgstr "কোথা থেকে পড়া শুরু করতে হবে, REA তা খুঁজে দেয়" + +#: website/public/showcase/notion/index.html:306 +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 দিয়ে tab preload বিশ্লেষণ করলে পেজের কাছে উন্মুক্ত API এবং IPC request " +"পাঠানোর call-টি খুঁজে পাওয়া যায়। দুটো ফলাফলের সঙ্গেই minified bundle-এর " +"source range দেওয়া থাকে:" + +#: website/public/showcase/notion/index.html:312 +msgctxt "page:showcase/notion/index.html" +msgid "REA findings → two places to open" +msgstr "REA-এর ফলাফল → খোলার মতো দুটো জায়গা" + +#: website/public/showcase/notion/index.html:315 +msgctxt "page:showcase/notion/index.html" +msgid "Exposed page API" +msgstr "উন্মুক্ত page API" + +#: website/public/showcase/notion/index.html:321 +msgctxt "page:showcase/notion/index.html" +msgid "Renderer IPC call" +msgstr "Renderer IPC call" + +#. {ph0}: analyze_javascript_application +#: website/public/showcase/notion/index.html:327 +#, 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 "" +"Notion-এর tab preload-এ নতুন একটি {ph0} ফলাফল থেকে নির্বাচিত field, REA " +"4.1.0 দিয়ে রেকর্ড করা। অবস্থানগুলো মূল bundle-এর লাইন ও শূন্য থেকে গোনা " +"column অনুযায়ী।" + +#. {ph0}: invokerInMain +#. {ph1}: notion:clipboard:write +#: website/public/showcase/notion/index.html:334 +#, 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 "" +"Agent সেই অবস্থানগুলো খুলে জোড়া লাগানো API-তে clipboard member খুঁজে পায় " +"এবং {ph0} পড়ে। এর call site থেকে পাওয়া যায় {ph1}। এই নামটিই agent-কে main" +" bundle-এ খোঁজার মতো একটি সুনির্দিষ্ট সূত্র দেয়। নিচের চারটি অংশে এটি যে পথ" +" জুড়ে দেয় তা দেখানো হয়েছে।" + +#: website/public/showcase/notion/index.html:343 +msgctxt "page:showcase/notion/index.html" +msgid "Four short pieces of code" +msgstr "চারটি ছোট কোডের অংশ" + +#: website/public/showcase/notion/index.html:344 +msgctxt "page:showcase/notion/index.html" +msgid "" +"Simplified from the packaged JavaScript, with readable variable names. " +"Unrelated members are omitted." +msgstr "" +"Packaged JavaScript থেকে সরল করা, সহজপাঠ্য variable নামসহ। অপ্রাসঙ্গিক " +"member বাদ দেওয়া হয়েছে।" + +#: website/public/showcase/notion/index.html:350 +msgctxt "page:showcase/notion/index.html" +msgid "Start at the API exposed to the page" +msgstr "পেজের কাছে উন্মুক্ত API দিয়ে শুরু করুন" + +#. {ph0}: preload.js +#: website/public/showcase/notion/index.html:353 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "tab_browser_view/{ph0} · API member" +msgstr "tab_browser_view/{ph0} · API member" + +#. {ph0}: invokerInMain +#: website/public/showcase/notion/index.html:372 +#, 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 "" +"এই member channel-এর নাম দেয়। {ph0}-এর implementation বলে দেয় request " +"কীভাবে পেজের process থেকে বেরিয়ে যায়।" + +#: website/public/showcase/notion/index.html:379 +msgctxt "page:showcase/notion/index.html" +msgid "Resolve the preload's wrapper" +msgstr "Preload-এর wrapper resolve করুন" + +#. {ph0}: preload.js +#: website/public/showcase/notion/index.html:382 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "tab_browser_view/{ph0} · IPC helper" +msgstr "tab_browser_view/{ph0} · IPC helper" + +#. {ph0}: notion:clipboard:write +#: website/public/showcase/notion/index.html:402 +#, 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 "" +"ফেরত আসা function argument-গুলো Electron-এর request-and-response IPC-র " +"মাধ্যমে এগিয়ে দেয়। এখন আমরা main process-এর দিকে {ph0} খুঁজতে পারি।" + +#: website/public/showcase/notion/index.html:410 +msgctxt "page:showcase/notion/index.html" +msgid "Check how the receiver is registered" +msgstr "Receiver কীভাবে নিবন্ধিত হয় দেখুন" + +#. {ph0}: index.js +#: website/public/showcase/notion/index.html:413 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "main/{ph0} · handler helper" +msgstr "main/{ph0} · handler helper" + +#. {ph0}: addListener +#. {ph1}: ipcMain.handle +#: website/public/showcase/notion/index.html:431 +#, 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 "" +"Main process আরেকটি wrapper ব্যবহার করে। এর {ph0} method সেই channel-এর জন্য" +" একটি {ph1} receiver নিবন্ধন করে।" + +#: website/public/showcase/notion/index.html:438 +msgctxt "page:showcase/notion/index.html" +msgid "Find the write and its sender check" +msgstr "Write এবং তার sender যাচাই খুঁজুন" + +#. {ph0}: index.js +#: website/public/showcase/notion/index.html:441 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "main/{ph0} · clipboard receiver" +msgstr "main/{ph0} · clipboard receiver" + +#: website/public/showcase/notion/index.html:461 +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 "" +"এটাই গন্তব্য। Sender যাচাই করার পরে handler দেওয়া ডেটা Electron-এর " +"clipboard API-তে পাঠিয়ে দেয়। Channel এবং resolve করা দুটো wrapper উন্মুক্ত" +" method-টিকে এই call-এর সঙ্গে যুক্ত করে।" + +#: website/public/showcase/notion/index.html:472 +msgctxt "page:showcase/notion/index.html" +msgid "How does a copied block keep its structure?" +msgstr "কপি করা একটি block কীভাবে তার গঠন বজায় রাখে?" + +#. {ph0}: electronApi.clipboard.write +#: website/public/showcase/notion/index.html:473 +#, python-brace-format +msgctxt "page:showcase/notion/index.html" +msgid "" +"Notion's web editor sends text and HTML through {ph0}. It keeps the block " +"data locally and puts an ID in the copied HTML to connect them." +msgstr "" +"Notion-এর web editor {ph0}-এর মাধ্যমে টেক্সট ও HTML পাঠায়। এটি block-এর " +"ডেটা local-ভাবে রেখে দেয় এবং দুটোকে যুক্ত করতে কপি করা HTML-এ একটি ID " +"বসিয়ে দেয়।" + +#: website/public/showcase/notion/index.html:479 +msgctxt "page:showcase/notion/index.html" +msgid "HTML links to saved block data" +msgstr "HTML সংরক্ষিত block data-র সঙ্গে যুক্ত থাকে" + +#: website/public/showcase/notion/index.html:483 +msgctxt "page:showcase/notion/index.html" +msgid "Sent to the system clipboard" +msgstr "System clipboard-এ পাঠানো" + +#: website/public/showcase/notion/index.html:491 +msgctxt "page:showcase/notion/index.html" +msgid "Saved locally by Notion" +msgstr "Notion local-ভাবে সংরক্ষণ করে" + +#: website/public/showcase/notion/index.html:503 +msgctxt "page:showcase/notion/index.html" +msgid "Read the HTML ID" +msgstr "HTML ID পড়া" + +#: website/public/showcase/notion/index.html:504 +msgctxt "page:showcase/notion/index.html" +msgid "Find the same local ID" +msgstr "একই local ID খোঁজা" + +#: website/public/showcase/notion/index.html:505 +msgctxt "page:showcase/notion/index.html" +msgid "Restore Notion block data" +msgstr "Notion block data পুনরুদ্ধার" + +#: website/public/showcase/notion/index.html:507 +msgctxt "page:showcase/notion/index.html" +msgid "" +"Illustrative text and ID. The recorded module test restores the block data " +"when IDs match; a stale entry returns only text and HTML." +msgstr "" +"দৃষ্টান্তমূলক টেক্সট ও ID। রেকর্ড করা module test-এ ID মিললে block data " +"পুনরুদ্ধার হয়; পুরোনো entry হলে শুধু টেক্সট ও HTML ফেরত আসে।" + +#: website/public/showcase/notion/index.html:513 +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 ID খোঁজে এবং সেটি সংরক্ষিত কপির সঙ্গে মিলিয়ে " +"দেখে। ID মিললে block data পুনরুদ্ধার হয়।" + +#: website/public/showcase/notion/index.html:517 +msgctxt "page:showcase/notion/index.html" +msgid "Clipboard format recorded from web assets cached on July 13, 2026." +msgstr "13 জুলাই 2026-এ cache করা web asset থেকে রেকর্ড করা clipboard format।" + +#: website/public/showcase/notion/index.html:523 +msgctxt "page:showcase/notion/index.html" +msgid "More examples and sources" +msgstr "আরও উদাহরণ ও সূত্র" + +#: website/public/showcase/notion/index.html:525 +msgctxt "page:showcase/notion/index.html" +msgid "Another example: Markdown tables" +msgstr "আরেকটি উদাহরণ: Markdown table" + +#: website/public/showcase/notion/index.html:526 +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-কে parse করে block data-তে রূপ দেয়। এই উদাহরণে দেখানো " +"হয়েছে কীভাবে একটি table header ও data row-তে পরিণত হয়।" + +#: website/public/showcase/notion/index.html:531 +msgctxt "page:showcase/notion/index.html" +msgid "A table through Notion's Markdown parser" +msgstr "Notion-এর Markdown parser-এর মধ্য দিয়ে একটি table" + +#: website/public/showcase/notion/index.html:536 +msgctxt "page:showcase/notion/index.html" +msgid "Markdown input" +msgstr "Markdown input" + +#: website/public/showcase/notion/index.html:543 +msgctxt "page:showcase/notion/index.html" +msgid "Structured parser output · excerpt" +msgstr "কাঠামোবদ্ধ parser output · অংশবিশেষ" + +#: website/public/showcase/notion/index.html:552 +msgctxt "page:showcase/notion/index.html" +msgid "" +"Recorded output from an extracted Markdown parser. The table becomes rows " +"and cells." +msgstr "" +"Extract করা একটি Markdown parser থেকে রেকর্ড করা output। Table-টি row ও " +"cell-এ পরিণত হয়।" + +#: website/public/showcase/notion/index.html:559 +msgctxt "page:showcase/notion/index.html" +msgid "Another path: the offline SQLite connection" +msgstr "আরেকটি পথ: offline SQLite connection" + +#. {ph0}: getSqliteMeta +#: website/public/showcase/notion/index.html:560 +#, 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-এর renderer IPC-র মাধ্যমে {ph0} request করে। Main process একটি " +"message channel তৈরি করে একটি port renderer-কে এবং অন্যটি একটি SQLite " +"utility process-কে দেয়। পরবর্তী statement batch ও ফলাফল সেই port দিয়েই " +"আদান-প্রদান হয়।" + +#: website/public/showcase/notion/index.html:566 +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 "" +"এই হস্তান্তর অনুসরণ করলে বোঝা যায় database-এর কাজ কোথায় চলে, এবং কেন শুধু " +"প্রথম IPC request trace করলে পরের কথোপকথনটি চোখ এড়িয়ে যায়।" + +#: website/public/showcase/notion/index.html:573 +msgctxt "page:showcase/notion/index.html" +msgid "Sources and how to read the excerpts" +msgstr "সূত্র এবং অংশগুলো কীভাবে পড়বেন" + +#. {ph0}: app.asar +#. {ph1}: main/index.js +#. {ph2}: isNotionWebContents +#: website/public/showcase/notion/index.html:574 +#, 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 "" +"Clipboard bridge-টি Notion Desktop 7.6.1-এর {ph0} থেকে নেওয়া: tab preload " +"এবং {ph1}। অংশগুলোতে minified variable নাম বিস্তারিত করা হয়েছে এবং " +"অপ্রাসঙ্গিক কোড বাদ দেওয়া হয়েছে; sender যাচাইয়ের helper-টি তার মূল {ph2} " +"call-সহ দেখানো হয়েছে।" + +#. {ph0}: 747001 +#. {ph1}: 58169 +#. {ph2}: 736810 +#. {ph3}: 422457 +#: website/public/showcase/notion/index.html:582 +#, 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 "" +"Virtual clipboard ও Markdown-এর উদাহরণগুলো 13 জুলাই 2026-এ cache করা web " +"asset থেকে নেওয়া, যার মধ্যে আছে {ph0}, {ph1}, {ph2} ও {ph3} module। এই " +"asset-গুলোর নিজস্ব সংস্করণ আছে। সংরক্ষিত probe-গুলো extract করা module ও ছোট" +" harness চালিয়েছে; তাদের output সেই probe-গুলোরই বর্ণনা, capture করা কোনো " +"desktop UI session-এর নয়।" + +#: website/public/showcase/notion/index.html:590 +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 ফলাফলটি সংরক্ষিত tab preload-এর একটি কেন্দ্রীভূত বিশ্লেষণ, " +"প্রকাশিত REA 4.1.0 package দিয়ে রেকর্ড করা। এটি API ও invoke operation " +"খুঁজে বের করে। Clipboard member এবং মিলে যাওয়া receiver-কে যুক্ত করা হয়েছে" +" package-এর ভেতরে তাদের wrapper implementation পড়ে।" + +#. {ph0}: 422457 +#: website/public/showcase/notion/index.html:597 +#, 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 উদাহরণে parser module {ph0} ব্যবহৃত হয়েছে। সংরক্ষিত module test " +"দেখায় যে page ও chat দুই filter-ই এই table অক্ষুণ্ণ রাখে। Paste/import, " +"কাঠামোবদ্ধ Markdown এবং AI/chat parser-গুলোর entry point ও intermediate " +"format আলাদা।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/notion/index.html:605 +#, 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 অ্যাপ্লিকেশনের " +"export ফিচার অনুসরণ করুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/notion/index.html:612 +#, 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}Native instruction অনুসরণ করে যাচাইকৃত একটি C" +" function পর্যন্ত যান।{ph3}" + +#: website/public/showcase/notion/index.html:620 +msgctxt "page:showcase/notion/index.html" +msgid "Analyze your own app" +msgstr "নিজের অ্যাপ বিশ্লেষণ করুন" + +#: website/public/showcase/notion/index.html:6 +msgctxt "page:showcase/notion/index.html" +msgid "Notion Electron Reverse Engineering: Clipboard — REA" +msgstr "Notion Electron Reverse Engineering: Clipboard — 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 "" +"ছোট কোডের অংশ এবং এর rich clipboard format-এর একটি ঝলকসহ, Electron-এর " +"preload, IPC wrapper ও main process হয়ে Notion-এর clipboard API অনুসরণ " +"করুন।" + +#: website/public/showcase/notion/index.html:261 +msgctxt "page:showcase/notion/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/showcase/notion/index.html:269 +msgctxt "page:showcase/notion/index.html" +msgid "Notion Electron case study" +msgstr "Notion Electron case study" + +#: website/public/showcase/notion/index.html:283 +msgctxt "page:showcase/notion/index.html" +msgid "Copy Notion analysis prompt" +msgstr "Notion বিশ্লেষণের prompt কপি করুন" + +#: website/public/showcase/notion/index.html:356 +msgctxt "page:showcase/notion/index.html" +msgid "Copy Notion preload excerpt" +msgstr "Notion preload-এর অংশ কপি করুন" + +#: website/public/showcase/notion/index.html:385 +msgctxt "page:showcase/notion/index.html" +msgid "Copy Notion invoke wrapper excerpt" +msgstr "Notion invoke wrapper-এর অংশ কপি করুন" + +#: website/public/showcase/notion/index.html:416 +msgctxt "page:showcase/notion/index.html" +msgid "Copy Notion handler wrapper excerpt" +msgstr "Notion handler wrapper-এর অংশ কপি করুন" + +#: website/public/showcase/notion/index.html:444 +msgctxt "page:showcase/notion/index.html" +msgid "Copy Notion clipboard receiver excerpt" +msgstr "Notion clipboard receiver-এর অংশ কপি করুন" + +#: website/public/showcase/notion/index.html:499 +msgctxt "page:showcase/notion/index.html" +msgid "Restoring rich clipboard data on paste" +msgstr "Paste করার সময় rich clipboard data পুনরুদ্ধার" + +#: website/public/showcase/notion/index.html:643 +msgctxt "page:showcase/notion/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/showcase/th04/index.html:113 +msgctxt "page:showcase/th04/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/th04/index.html:205 +#, 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:208 +msgctxt "page:showcase/th04/index.html" +msgid "Case study · Touhou 4: Lotus Land Story" +msgstr "Case study · Touhou 4: Lotus Land Story" + +#. {ph0}:
+#: website/public/showcase/th04/index.html:209 +#, 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:210 +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 " +"function-টি পরীক্ষা করুন, তারপর এর instruction অনুসরণ করে সহজপাঠ্য C++-এ " +"পৌঁছান।" + +#: website/public/showcase/th04/index.html:215 +msgctxt "page:showcase/th04/index.html" +msgid "PC-98 · 16-bit DOS · C++ and assembly" +msgstr "PC-98 · 16-bit DOS · C++ ও assembly" + +#: website/public/showcase/th04/index.html:216 +msgctxt "page:showcase/th04/index.html" +msgid "View the TH04 reconstruction" +msgstr "TH04 পুনর্গঠন দেখুন" + +#: website/public/showcase/th04/index.html:222 +msgctxt "page:showcase/th04/index.html" +msgid "From original instructions to checked source" +msgstr "মূল instruction থেকে যাচাইকৃত source" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/th04/index.html:224 +#, 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}MAIN.EXE{ph3}{ph4}PC-98 executable এবং এর bullet-" +"angle helper।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/th04/index.html:231 +#, 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}Instruction + reference{ph3}{ph4}লোড " +"হওয়া DOS কোড যাচাই করুন এবং executable থেকে কোণের হিসাব পড়ুন।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/th04/index.html:239 +#, 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}প্রতিটি " +"operation-কে রক্ষণাবেক্ষণকৃত পুনর্গঠনের সঙ্গে যুক্ত করুন।{ph5}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/th04/index.html:246 +#, 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 · Source যাচাই{ph1}{ph2}2,139টি byte মিলেছে{ph3}{ph4}রেকর্ড করা " +"compiler যাচাই এই helper-সহ bullet তৈরির কোডকে অন্তর্ভুক্ত করে।{ph5}" + +#: website/public/showcase/th04/index.html:255 +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 প্রজেক্ট রক্ষণাবেক্ষণকৃত" +" source ও compiler যাচাই সরবরাহ করে।" + +#: website/public/showcase/th04/index.html:263 +msgctxt "page:showcase/th04/index.html" +msgid "In this case study" +msgstr "এই case study-তে" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:265 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}The bullet ring{ph1}" +msgstr "{ph0}বুলেটের বলয়{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:266 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}What REA returns{ph1}" +msgstr "{ph0}REA কী ফেরত দেয়{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:267 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}Assembly to C++{ph1}" +msgstr "{ph0}Assembly থেকে C++{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:268 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}Checking the source{ph1}" +msgstr "{ph0}Source যাচাই{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:269 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}The full project{ph1}" +msgstr "{ph0}পূর্ণ প্রজেক্ট{ph1}" + +#: website/public/showcase/th04/index.html:274 +msgctxt "page:showcase/th04/index.html" +msgid "How a ring aims at the player" +msgstr "একটি বলয় কীভাবে খেলোয়াড়কে তাক করে" + +#: website/public/showcase/th04/index.html:275 +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 "" +"Elly-র আক্রমণ 16টি বুলেটের প্রাথমিক সংখ্যা দিয়ে একটি লক্ষ্যভেদী বলয় চায়। " +"একটি helper প্রতিটি বুলেটের দিক হিসাব করে। একই বলয় একটি নির্দিষ্ট দিকে মুখ " +"করে থাকতে পারে, অথবা খেলোয়াড়ের দিকে ঘুরে যেতে পারে।" + +#. {ph0}: +#: website/public/showcase/th04/index.html:282 +#, 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}আপনার coding agent" + +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 +msgctxt "page:showcase/th04/index.html" +msgid "Copy" +msgstr "কপি" + +#. {ph0}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#: website/public/showcase/th04/index.html:296 +#, 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}TH04 কীভাবে বুলেটের একটি বলয় তৈরি করে খেলোয়াড়ের দিকে তাক " +"করে, তা REA দিয়ে খুঁজে বের করো। হিসাবটি ব্যাখ্যা করো এবং কোড " +"দেখাও।{ph3}{ph4}{ph5}" + +#: website/public/showcase/th04/index.html:305 +msgctxt "page:showcase/th04/index.html" +msgid "" +"An example prompt, with the original executable and reconstruction checkout " +"available locally." +msgstr "" +"একটি উদাহরণ prompt — মূল executable এবং পুনর্গঠনের checkout local-ভাবে হাতে " +"থাকা অবস্থায়।" + +#. {ph0}: 0, 16, 32, …, 240 +#: website/public/showcase/th04/index.html:309 +#, 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টি বুলেটের " +"ক্ষেত্রে প্রতিটি index 16 একক যোগ করে: {ph0}। খেলোয়াড়ের দিক যোগ করলে " +"অবস্থানগুলো একসঙ্গে ঘুরে যায়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:329 +#, 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 এবং template rotation 0-এর জন্য উদ্ধার করা " +"কোণের হিসাবের একটি দৃষ্টান্ত। {ph0}চিত্রটি খুলুন{ph1}" + +#: website/public/showcase/th04/index.html:337 +msgctxt "page:showcase/th04/index.html" +msgid "The firing template in the recovered source" +msgstr "উদ্ধার করা source-এ firing template" + +#: website/public/showcase/th04/index.html:342 +msgctxt "page:showcase/th04/index.html" +msgid "Elly's ring attack · source excerpt" +msgstr "Elly-র বলয়-আক্রমণ · source-এর অংশ" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:357 +#, 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 "" +"Difficulty ও performance সমন্বয়ের আগে এই লাইনগুলো প্যাটার্ন বেছে নেয়। " +"{ph0}আক্রমণটির source পড়ুন{ph1}।" + +#: website/public/showcase/th04/index.html:368 +msgctxt "page:showcase/th04/index.html" +msgid "What REA returns" +msgstr "REA কী ফেরত দেয়" + +#. {ph0}: bullet_velocity_and_angle_set() +#: website/public/showcase/th04/index.html:369 +#, 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} পরীক্ষা করি — যে function প্রতিটি বুলেটের velocity ও কোণ নির্ধারণ" +" করে। REA এর instruction, pseudocode ও reference ফেরত দেয়। সেই ফলাফলের " +"তিনটি অংশ প্যাটার্নটি ব্যাখ্যা করে।" + +#: website/public/showcase/th04/index.html:377 +msgctxt "page:showcase/th04/index.html" +msgid "Check the DOS image before reading its code" +msgstr "কোড পড়ার আগে DOS image যাচাই করুন" + +#: website/public/showcase/th04/index.html:380 +msgctxt "page:showcase/th04/index.html" +msgid "Agent → REA" +msgstr "Agent → REA" + +#: website/public/showcase/th04/index.html:389 +msgctxt "page:showcase/th04/index.html" +msgid "REA → agent · selected fields" +msgstr "REA → agent · নির্বাচিত field" + +#: website/public/showcase/th04/index.html:398 +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 "" +"এই যাচাই লোড হওয়া কোড ও relocation record-কে দেওয়া executable-এর সঙ্গে " +"বেঁধে দেয়। প্রদর্শনের জন্য ওপরের path সংক্ষেপ করা হয়েছে।" + +#: website/public/showcase/th04/index.html:404 +msgctxt "page:showcase/th04/index.html" +msgid "Read the ring's multiply and divide" +msgstr "বলয়ের গুণ ও ভাগ পড়ুন" + +#. {ph0}: analyze_function +#: website/public/showcase/th04/index.html:408 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "Agent → REA · {ph0}" +msgstr "Agent → REA · {ph0}" + +#: website/public/showcase/th04/index.html:414 +msgctxt "page:showcase/th04/index.html" +msgid "REA → agent · instruction excerpt" +msgstr "REA → agent · instruction-এর অংশ" + +#. {ph0}: SI +#. {ph1}: DS:53AF +#. {ph2}: bullet_template.count +#: website/public/showcase/th04/index.html:422 +#, 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} বুলেটের index ধরে রাখে। Shift এটিকে 256 দিয়ে গুণ করে, তারপর ভাগে " +"ব্যবহৃত হয় {ph1} থেকে পড়া সংখ্যাটি। রক্ষণাবেক্ষণকৃত source-এ সেই field-এর " +"নাম {ph2}। সম্পূর্ণ ক্রমটি নিচে দেওয়া আছে।" + +#: website/public/showcase/th04/index.html:431 +msgctxt "page:showcase/th04/index.html" +msgid "Find where the pattern turns toward the player" +msgstr "প্যাটার্নটি কোথায় খেলোয়াড়ের দিকে ঘোরে খুঁজে বের করুন" + +#: website/public/showcase/th04/index.html:435 +msgctxt "page:showcase/th04/index.html" +msgid "Same function result · aim excerpt" +msgstr "একই function ফলাফল · লক্ষ্য-সংক্রান্ত অংশ" + +#: website/public/showcase/th04/index.html:444 +msgctxt "page:showcase/th04/index.html" +msgid "Corresponding maintained C++" +msgstr "সংশ্লিষ্ট রক্ষণাবেক্ষণকৃত C++" + +#: website/public/showcase/th04/index.html:452 +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 "" +"Instruction-এর operand থেকে দুটো coordinate-এর পার্থক্য এবং একটি direction " +"helper দেখা যায়। এর return মান বলয়ের আপেক্ষিক কোণের সঙ্গে যোগ হয়। Source-" +"এর নাম address-গুলোকে বোধগম্য করে; আর REA agent-কে সেগুলোর পেছনের মূল " +"operation যাচাই করতে দেয়।" + +#: website/public/showcase/th04/index.html:463 +msgctxt "page:showcase/th04/index.html" +msgid "From assembly to readable C++" +msgstr "Assembly থেকে সহজপাঠ্য C++" + +#: website/public/showcase/th04/index.html:464 +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 "" +"মূল instruction-কে কোণের হিসাবের সঙ্গে মেলাতে একটি ধাপ বেছে নিন। এই সারাংশ " +"লক্ষ্যভেদী বলয়ের পথ অনুসরণ করে; পূর্ণ source-এ spread, stack ও random " +"প্যাটার্নও সামলানো হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:475 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}01{ph1} Index" +msgstr "{ph0}01{ph1} Index" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:483 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}02{ph1} Space" +msgstr "{ph0}02{ph1} ব্যবধান" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:491 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}03{ph1} Aim" +msgstr "{ph0}03{ph1} লক্ষ্য" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:499 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}04{ph1} Rotate" +msgstr "{ph0}04{ph1} ঘূর্ণন" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:507 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}05{ph1} Store" +msgstr "{ph0}05{ph1} সংরক্ষণ" + +#: website/public/showcase/th04/index.html:519 +msgctxt "page:showcase/th04/index.html" +msgid "REA · original 16-bit instructions" +msgstr "REA · মূল 16-bit instruction" + +#: website/public/showcase/th04/index.html:553 +msgctxt "page:showcase/th04/index.html" +msgid "Readable C++ · aimed-ring summary" +msgstr "সহজপাঠ্য C++ · লক্ষ্যভেদী বলয়ের সারাংশ" + +#. {ph0}: +#. {ph1}: +#. {ph2}: SI +#: website/public/showcase/th04/index.html:582 +#, 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 · বুলেটের index পড়া।{ph1} Stack argument-টি {ph2}-এ লোড হয়। 16 " +"বুলেটের বলয়ে এই member index 0 থেকে 15 পর্যন্ত যায়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: SHL AX,8 +#. {ph3}: IDIV +#: website/public/showcase/th04/index.html:587 +#, 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 " +"দিয়ে গুণ করে। সংখ্যাটি zero-extend করে একটি word-এ নেওয়া হয়, তারপর {ph3} " +"গুণফলকে সেই সংখ্যা দিয়ে ভাগ করে। সংখ্যা 16 হলে প্রতিটি index 16 কোণ-একক " +"এগোয়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: AX +#: website/public/showcase/th04/index.html:594 +#, 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} দুটো বিয়োগ থেকে পাওয়া যায় " +"খেলোয়াড় বিয়োগ উৎসের coordinate। Direction helper {ph2}-এ একটি কোণ ফেরত " +"দেয়; সেটি যোগ করলে পুরো বলয় খেলোয়াড়ের দিকে ঘুরে যায়।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: ADD AL,[0x53ad] +#: website/public/showcase/th04/index.html:600 +#, 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} template-এর কোণ যোগ করে। " +"Elly-র প্রাথমিক template এটিকে শূন্য রাখে; অন্য প্যাটার্ন একই helper " +"ঘূর্ণনসহ ব্যবহার করতে পারে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: AL +#: website/public/showcase/th04/index.html:606 +#, 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 · চূড়ান্ত কোণ এক byte-এ রাখা।{ph1} Store-টি spawn-angle field-এ " +"{ph2} লেখে। 255-এর পরে মান আবার শুরু থেকে ঘুরে আসে, ঠিক unsigned-byte cast-" +"এর মতোই। আশপাশের source এই কোণ ও গতিকে velocity-তেও রূপান্তর করে।" + +#: website/public/showcase/th04/index.html:615 +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 "" +"Assembly-তে লক্ষ্যভেদী বলয়ের branch, লক্ষ্যের হিসাব এবং চূড়ান্ত store বেছে" +" নেওয়া হয়েছে। ওপরের C++ একটি সহজপাঠ্য সারাংশ। নিচের compiler যাচাই লিংক " +"করা প্রজেক্টের রক্ষণাবেক্ষণকৃত source-এর ক্ষেত্রে প্রযোজ্য।" + +#: website/public/showcase/th04/index.html:621 +msgctxt "page:showcase/th04/index.html" +msgid "Read the maintained ring and aim source" +msgstr "রক্ষণাবেক্ষণকৃত বলয় ও লক্ষ্যের source পড়ুন" + +#: website/public/showcase/th04/index.html:624 +msgctxt "page:showcase/th04/index.html" +msgid "Ring macro · TH04 branch, excerpt" +msgstr "Ring macro · TH04 branch, অংশবিশেষ" + +#: website/public/showcase/th04/index.html:634 +msgctxt "page:showcase/th04/index.html" +msgid "Angle and velocity · source excerpt" +msgstr "কোণ ও velocity · source-এর অংশ" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/showcase/th04/index.html:650 +#, 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}Ring macro{ph1} · {ph2}লক্ষ্য ও velocity-র source{ph3} · {ph4}কোণের " +"উপস্থাপন{ph5}" + +#: website/public/showcase/th04/index.html:670 +msgctxt "page:showcase/th04/index.html" +msgid "Checking the maintained source" +msgstr "রক্ষণাবেক্ষণকৃত source যাচাই" + +#: website/public/showcase/th04/index.html:671 +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 প্রজেক্টের রেকর্ড করা যাচাইগুলো এই helper-সহ bullet তৈরির কোডকে তার " +"নির্দিষ্ট Turbo C++ 4.0J toolchain দিয়ে compile করে।" + +#: website/public/showcase/th04/index.html:678 +msgctxt "page:showcase/th04/index.html" +msgid "2,139 matching bytes" +msgstr "2,139টি byte মিলেছে" + +#: website/public/showcase/th04/index.html:679 +msgctxt "page:showcase/th04/index.html" +msgid "" +"The compiled bullet-generation code matches a 2,139-byte section of the " +"original executable." +msgstr "" +"Compile করা bullet তৈরির কোড মূল executable-এর 2,139 byte-এর একটি অংশের " +"সঙ্গে মিলে যায়।" + +#: website/public/showcase/th04/index.html:685 +msgctxt "page:showcase/th04/index.html" +msgid "Two clean builds" +msgstr "দুটো clean build" + +#: website/public/showcase/th04/index.html:686 +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 "" +"দুটো আলাদা build একই মিলে যাওয়া byte তৈরি করে। রেকর্ড করা input hash এখানে " +"দেখানো রক্ষণাবেক্ষণকৃত source-এর সঙ্গে মেলে।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:692 +#, 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}Compiler যাচাইগুলো পড়ুন{ph1}।" + +#: website/public/showcase/th04/index.html:700 +msgctxt "page:showcase/th04/index.html" +msgid "Target identity and analysis scope" +msgstr "টার্গেটের পরিচয় ও বিশ্লেষণের পরিধি" + +#: website/public/showcase/th04/index.html:705 +msgctxt "page:showcase/th04/index.html" +msgid "Original target" +msgstr "মূল টার্গেট" + +#. {ph0}: MAIN.EXE +#: website/public/showcase/th04/index.html:706 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}, 156,258 bytes, DOS MZ" +msgstr "{ph0}, 156,258 byte, DOS MZ" + +#: website/public/showcase/th04/index.html:709 +msgctxt "page:showcase/th04/index.html" +msgid "Helper entry" +msgstr "Helper-এর entry" + +#. {ph0}: 0x2cfc8 +#: website/public/showcase/th04/index.html:710 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0} in REA's loaded image" +msgstr "REA-এর লোড করা image-এ {ph0}" + +#: website/public/showcase/th04/index.html:713 +msgctxt "page:showcase/th04/index.html" +msgid "Original file offset" +msgstr "মূল ফাইলের offset" + +#. {ph0}: 0x1e7c8 +#. {ph1}: address_to_file_offset +#: website/public/showcase/th04/index.html:714 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}, returned by {ph1}" +msgstr "{ph0}, {ph1} দ্বারা ফেরত দেওয়া" + +#: website/public/showcase/th04/index.html:720 +msgctxt "page:showcase/th04/index.html" +msgid "Recorded code inspection" +msgstr "রেকর্ড করা কোড পরীক্ষা" + +#: website/public/showcase/th04/index.html:721 +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:726 +msgctxt "page:showcase/th04/index.html" +msgid "" +"Compiler checks cover the complete bullet-add code section, including this " +"helper. They also compare its MAP contribution and overlapping relocation." +msgstr "" +"Compiler যাচাই এই helper-সহ সম্পূর্ণ bullet-add কোড section অন্তর্ভুক্ত করে।" +" এগুলো এর MAP অবদান এবং পরস্পর-আচ্ছাদিত relocation-ও তুলনা করে।" + +#. {ph0}: 0x1000 +#: website/public/showcase/th04/index.html:731 +#, 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 load segment {ph0}-এ static DOS load image যাচাই করেছে। এর address-গুলো " +"সেই analysis image-এর। Function-এর ফলাফল 517-byte বিস্তারের মধ্যে দুটো " +"range-এ 503টি body byte জানায়; ওপরের নির্বাচিত instruction-গুলো সেই " +"range-গুলোর ভেতরেই পড়ে।" + +#. {ph0}: 0d72e980 +#: website/public/showcase/th04/index.html:738 +#, 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 "" +"Source-এর নাম ও compiler যাচাই TH04 checkpoint {ph0} থেকে নেওয়া। আগের " +"পুনর্গঠন-পর্যবেক্ষণে প্রজেক্টের নিজস্ব analysis script ব্যবহৃত হয়েছিল; এই " +"পেজে একই মূল টার্গেটের ওপর REA-এর একটি নতুন পরীক্ষা যোগ করা হয়েছে। দেওয়া " +"গেমের পরিচয় তার repository manifest দিয়ে নির্দিষ্ট করা, তবে স্বতন্ত্র " +"pristine-dump provenance-এর প্রশ্নটি এখনো খোলা।" + +#: website/public/showcase/th04/index.html:746 +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 "" +"চিত্রটি কোণের হিসাবের দৃষ্টান্ত। পূর্ণ গেমের control, timing এবং PC-98 " +"হার্ডওয়্যারের আচরণের জন্য পুনর্গঠন প্রজেক্টে আলাদা runtime যাচাই আছে।" + +#: website/public/showcase/th04/index.html:755 +msgctxt "page:showcase/th04/index.html" +msgid "The full TH04 reconstruction" +msgstr "পূর্ণ TH04 পুনর্গঠন" + +#: website/public/showcase/th04/index.html:756 +msgctxt "page:showcase/th04/index.html" +msgid "" +"The project builds the game's four DOS products from maintained C++ and " +"assembly. Beyond bullet generation, the source covers stages, bosses, " +"rendering, input, menus, endings and score handling." +msgstr "" +"প্রজেক্টটি রক্ষণাবেক্ষণকৃত C++ ও assembly থেকে গেমের চারটি DOS product build" +" করে। Bullet তৈরির বাইরেও source-এ আছে stage, boss, rendering, input, menu, " +"ending এবং score ব্যবস্থাপনা।" + +#. {ph0}: +#. {ph1}: +#: website/public/showcase/th04/index.html:762 +#, python-brace-format +msgctxt "page:showcase/th04/index.html" +msgid "{ph0}Explore the TH04 repository{ph1}" +msgstr "{ph0}TH04 repository ঘুরে দেখুন{ph1}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/th04/index.html:768 +#, 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}Bullet তৈরির source{ph1}{ph2}সম্পূর্ণ helper, অন্যান্য প্যাটার্নের ধরন " +"এবং template সমন্বয়।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/th04/index.html:777 +#, 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 build ও চালানোর গাইড{ph1}{ph2}Source build করে প্রজেক্টের PC-98 " +"emulator workflow-তে test করুন।{ph3}" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/showcase/th04/index.html:786 +#, 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 যাচাই এবং আলাদা native x64 " +"port।{ph3}" + +#: website/public/showcase/th04/index.html:6 +msgctxt "page:showcase/th04/index.html" +msgid "TH04 Reverse Engineering: DOS Bullet Patterns — REA" +msgstr "TH04 Reverse Engineering: 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 "" +"REA দিয়ে TH04-এর মূল 16-bit DOS কোড পরীক্ষা করুন। Assembly ও উদ্ধার করা C++" +" অনুসরণ করে দেখুন বুলেটের একটি বলয় কীভাবে সমান ব্যবধানে সাজানো হয় এবং " +"খেলোয়াড়ের দিকে তাক করা হয়।" + +#: website/public/showcase/th04/index.html:262 +msgctxt "page:showcase/th04/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/showcase/th04/index.html:272 +msgctxt "page:showcase/th04/index.html" +msgid "TH04 bullet-pattern case study" +msgstr "TH04 বুলেট-প্যাটার্ন case study" + +#: website/public/showcase/th04/index.html:287 +msgctxt "page:showcase/th04/index.html" +msgid "Copy TH04 example prompt" +msgstr "TH04 উদাহরণ prompt কপি করুন" + +#: website/public/showcase/th04/index.html:315 +msgctxt "page:showcase/th04/index.html" +msgid "" +"TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" +msgstr "" +"TH04-এর স্থির ও লক্ষ্যভেদী বুলেট-বলয়; ছোট স্ক্রিনে পাশাপাশি scroll করুন" + +#: website/public/showcase/th04/index.html:321 +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:343 +msgctxt "page:showcase/th04/index.html" +msgid "Copy TH04 firing template" +msgstr "TH04 firing template কপি করুন" + +#: website/public/showcase/th04/index.html:470 +msgctxt "page:showcase/th04/index.html" +msgid "Follow the TH04 aimed-ring calculation" +msgstr "TH04-এর লক্ষ্যভেদী বলয়ের হিসাব অনুসরণ করুন" + +#: website/public/showcase/th04/index.html:520 +msgctxt "page:showcase/th04/index.html" +msgid "Copy TH04 assembly excerpt" +msgstr "TH04 assembly-র অংশ কপি করুন" + +#: website/public/showcase/th04/index.html:554 +msgctxt "page:showcase/th04/index.html" +msgid "Copy readable aimed-ring calculation" +msgstr "লক্ষ্যভেদী বলয়ের সহজপাঠ্য হিসাব কপি করুন" + +#: website/public/showcase/th04/index.html:812 +msgctxt "page:showcase/th04/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: scripts/website_i18n.py +msgctxt "runtime" +msgid "Translation is being updated. Read this page in English for now." +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 "" +"{total}টির মধ্যে {passed}টি যাচাই সফল (ছয়টি reference case, ছয় ও আট " +"অঙ্কে)।" + +#: website/public/assets/aegis-demo.js:81 +msgctxt "runtime" +msgid "Could not run the reference checks. Try again." +msgstr "Reference যাচাই চালানো যায়নি। আবার চেষ্টা করুন।" + +#: website/public/assets/dino-demo.js:77 +#, python-brace-format +msgctxt "runtime" +msgid "Distance {distance}" +msgstr "দূরত্ব {distance}" + +#: website/public/assets/dino-demo.js:87 +msgctxt "runtime" +msgid "Hit a cactus. Try another speed." +msgstr "ক্যাকটাসে ধাক্কা লেগেছে। অন্য গতিতে চেষ্টা করুন।" + +#: website/public/assets/dino-demo.js:87 +msgctxt "runtime" +msgid "Space or Jump ↑" +msgstr "Space বা লাফ ↑" + +#: website/public/assets/dino-demo.js:97 +msgctxt "runtime" +msgid "Play again" +msgstr "আবার খেলুন" + +#: website/public/assets/dino-demo.js:97 +#: website/public/assets/dino-demo.js:111 +msgctxt "runtime" +msgid "Play" +msgstr "খেলুন" + +#: website/public/assets/dino-demo.js:112 +msgctxt "runtime" +msgid "Press Play, then jump over the cactus." +msgstr "খেলুন চাপুন, তারপর ক্যাকটাসের ওপর দিয়ে লাফ দিন।" + +#: website/public/assets/dino-demo.js:147 +msgctxt "runtime" +msgid "Hit a cactus. Press Play again, or change the speed and restart." +msgstr "" +"ক্যাকটাসে ধাক্কা লেগেছে। আবার খেলুন চাপুন, অথবা গতি বদলে আবার শুরু করুন।" + +#: website/public/assets/dino-demo.js:171 +msgctxt "runtime" +msgid "Pause" +msgstr "বিরতি" + +#: website/public/assets/dino-demo.js:172 +msgctxt "runtime" +msgid "Running. Space or Jump clears a cactus." +msgstr "চলছে। Space বা লাফ বাটনে ক্যাকটাস পার হওয়া যায়।" + +#: website/public/assets/dino-demo.js:183 +#: website/public/assets/dino-demo.js:219 +#: website/public/assets/dino-demo.js:224 +msgctxt "runtime" +msgid "Paused. Press Play to continue." +msgstr "বিরতি চলছে। চালিয়ে যেতে খেলুন চাপুন।" + +#: website/public/assets/dino-demo.js:203 +#, python-brace-format +msgctxt "runtime" +msgid "Fixed speed: {speed}. Space or Jump clears a cactus." +msgstr "নির্দিষ্ট গতি: {speed}। Space বা লাফ বাটনে ক্যাকটাস পার হওয়া যায়।" + +#: website/public/assets/dino-demo.js:206 +#, python-brace-format +msgctxt "runtime" +msgid "Fixed speed: {speed}. Press Play to try it." +msgstr "নির্দিষ্ট গতি: {speed}। চেষ্টা করতে খেলুন চাপুন।" + +#: website/public/assets/dino-demo.js:215 +msgctxt "runtime" +msgid "Recovered rule: start at 6, then increase toward 13." +msgstr "উদ্ধার করা নিয়ম: 6 থেকে শুরু, তারপর 13-এর দিকে বাড়তে থাকে।" + +#: website/public/assets/dino-demo.js:216 +#, python-brace-format +msgctxt "runtime" +msgid "Fixed speed: {speed}." +msgstr "নির্দিষ্ট গতি: {speed}।" + +#: website/public/assets/dino-demo.js:249 +msgctxt "runtime" +msgid "" +"Replayed the recovered rule. All four values match the controlled original-" +"game check when rounded to three decimals." +msgstr "" +"উদ্ধার করা নিয়মটি আবার চালানো হয়েছে। তিন দশমিক ঘর পর্যন্ত রাউন্ড করলে " +"চারটি মানই মূল গেমের নিয়ন্ত্রিত পরীক্ষার সঙ্গে মিলে যায়।" + +#: website/public/assets/dino-demo.js:252 +msgctxt "runtime" +msgid "" +"The replay differs from the recorded original-game values. Compare the speed" +" rule and settings above." +msgstr "" +"পুনরায় চালানো ফলাফল মূল গেমের রেকর্ড করা মানের সঙ্গে মেলেনি। ওপরের গতির " +"নিয়ম ও setting মিলিয়ে দেখুন।" + +#: website/public/assets/home.js:29 +msgctxt "runtime" +msgid "Press % to see what happens to 10." +msgstr "10-এর কী হয় দেখতে % চাপুন।" + +#: website/public/assets/home.js:32 +msgctxt "runtime" +msgid "10% of 200 is 20. Press = to add it." +msgstr "200-এর 10% হলো 20। এটি যোগ করতে = চাপুন।" + +#: website/public/assets/home.js:33 +msgctxt "runtime" +msgid "For multiplication, 10 becomes 0.1. Press = to multiply." +msgstr "গুণের ক্ষেত্রে 10 হয়ে যায় 0.1। গুণ করতে = চাপুন।" + +#: website/public/assets/main.js:21 +msgctxt "runtime" +msgid "Copied" +msgstr "কপি হয়েছে" + +#: website/public/assets/main.js:23 +msgctxt "runtime" +msgid "Code copied to clipboard." +msgstr "কোড clipboard-এ কপি হয়েছে।" + +#: website/public/assets/main.js:32 +msgctxt "runtime" +msgid "Selected" +msgstr "নির্বাচিত" + +#: website/public/assets/main.js:34 +msgctxt "runtime" +msgid "Code selected. Use your keyboard to copy it." +msgstr "কোড নির্বাচিত হয়েছে। কপি করতে কিবোর্ড ব্যবহার করুন।" + +#: website/public/assets/main.js:158 +#, python-brace-format +msgctxt "runtime" +msgid "REA on GitHub ({count})" +msgstr "GitHub-এ REA ({count})" + +#: website/public/assets/figures/analyst-thinking.svg:2 +msgctxt "figure:analyst-thinking.svg" +msgid "An analyst thinking at a computer" +msgstr "কম্পিউটারের সামনে চিন্তামগ্ন একজন analyst" + +#: website/public/assets/figures/ctf-mask-equation.svg:2 +#: website/public/assets/figures/ctf-mask-equation.svg:24 +msgctxt "figure:ctf-mask-equation.svg" +msgid "One check reveals one character" +msgstr "একটি যাচাই একটি অক্ষর প্রকাশ করে" + +#: website/public/assets/figures/ctf-mask-equation.svg:3 +msgctxt "figure:ctf-mask-equation.svg" +msgid "" +"The seventh mask selects only position 21 in the six by six input grid. Its " +"character code must equal 55, so the character is 7. The other masks select " +"different positions and give further equations." +msgstr "" +"সপ্তম mask ছয়-বাই-ছয় input grid-এর শুধু 21 নম্বর অবস্থানটি বেছে নেয়। এর " +"character code অবশ্যই 55 হতে হবে, তাই অক্ষরটি 7। অন্য mask-গুলো ভিন্ন " +"অবস্থান বেছে নেয় এবং আরও সমীকরণ দেয়।" + +#: website/public/assets/figures/ctf-mask-equation.svg:25 +msgctxt "figure:ctf-mask-equation.svg" +msgid "The seventh check. Cell labels are input positions, starting at 0." +msgstr "সপ্তম যাচাই। ঘরের লেবেলগুলো input-এর অবস্থান, 0 থেকে শুরু।" + +#: website/public/assets/figures/ctf-mask-equation.svg:27 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Encoded mask: −21, +1, −14, 0" +msgstr "Encode করা mask: −21, +1, −14, 0" + +#: website/public/assets/figures/ctf-mask-equation.svg:28 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Skip 21 cells. Select 1. Skip 14. Stop at 0." +msgstr "21টি ঘর বাদ দিন। 1টি বেছে নিন। 14টি বাদ দিন। 0-তে থামুন।" + +#: website/public/assets/figures/ctf-mask-equation.svg:32 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Only one cell contributes to this sum" +msgstr "এই যোগফলে শুধু একটি ঘর অবদান রাখে" + +#: website/public/assets/figures/ctf-mask-equation.svg:35 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Position 21 in the flag must contain 7." +msgstr "Flag-এর 21 নম্বর অবস্থানে অবশ্যই 7 থাকতে হবে।" + +#: website/public/assets/figures/ctf-mask-equation.svg:37 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Selected: one cell" +msgstr "নির্বাচিত: একটি ঘর" + +#: website/public/assets/figures/ctf-mask-equation.svg:38 +msgctxt "figure:ctf-mask-equation.svg" +msgid "26 masks give 26 equations." +msgstr "26টি mask থেকে 26টি সমীকরণ।" + +#: website/public/assets/figures/ctf-mask-equation.svg:39 +msgctxt "figure:ctf-mask-equation.svg" +msgid "Solve them together to find the flag." +msgstr "Flag খুঁজে পেতে সেগুলো একসঙ্গে সমাধান করুন।" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:2 +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:20 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "DX-Ball sound-pan investigation" +msgstr "DX-Ball sound-pan অনুসন্ধান" + +#: 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 function-এর instruction, caller এবং byte-read-এর প্রমাণ " +"দেয়। একটি stack input-কে 1.5625 দিয়ে গুণ করে, 500 বিয়োগ করে, scale করে " +"integer-এ রূপান্তর করা হয়। রক্ষণাবেক্ষণকৃত C কোডটি মূল x86-এর 3,205টি case " +"এবং আলাদা একটি 63-byte compiler replay দিয়ে যাচাই করা হয়েছে।" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:39 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Stack" +msgstr "Stack" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:40 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "input x" +msgstr "input x" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:44 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Integer" +msgstr "Integer" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:45 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "return" +msgstr "return" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:46 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Reconstructed function" +msgstr "পুনর্গঠিত function" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:47 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Maintained C" +msgstr "রক্ষণাবেক্ষণকৃত C" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:48 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Brick-hit caller" +msgstr "Brick-hit caller" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:49 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "20 + 30 × tile_x" +msgstr "20 + 30 × tile_x" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:50 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "Original code" +msgstr "মূল কোড" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:51 +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:54 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "comparison" +msgstr "তুলনা" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:52 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "3,205 cases" +msgstr "3,205টি case" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:53 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "VC4.0 build" +msgstr "VC4.0 build" + +#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:55 +msgctxt "figure:dx-ball-sound-pan-investigation.svg" +msgid "63 matching bytes" +msgstr "63টি byte মিলেছে" + +#: website/public/assets/figures/rea-investigation-flow.svg:2 +#: website/public/assets/figures/rea-investigation-flow.svg:22 +msgctxt "figure:rea-investigation-flow.svg" +msgid "REA investigation flow" +msgstr "REA অনুসন্ধানের ধারা" + +#: website/public/assets/figures/rea-investigation-flow.svg:3 +msgctxt "figure:rea-investigation-flow.svg" +msgid "" +"Ask a question about a local target. REA inspects and traces through local " +"analysis adapters, returns evidence, and supports follow-up questions as " +"your agent explains, implements and tests." +msgstr "" +"একটি local টার্গেট সম্পর্কে প্রশ্ন করুন। REA local analysis adapter দিয়ে " +"পরীক্ষা ও trace করে, প্রমাণ ফেরত দেয়, এবং আপনার agent যখন ব্যাখ্যা, " +"implementation ও test করে তখন পরবর্তী প্রশ্নেও সহায়তা করে।" + +#: website/public/assets/figures/rea-investigation-flow.svg:31 +msgctxt "figure:rea-investigation-flow.svg" +msgid "1. Ask" +msgstr "1. জিজ্ঞাসা" + +#: website/public/assets/figures/rea-investigation-flow.svg:32 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Your agent + local target" +msgstr "আপনার agent + local টার্গেট" + +#: website/public/assets/figures/rea-investigation-flow.svg:33 +msgctxt "figure:rea-investigation-flow.svg" +msgid "App / binary / browser" +msgstr "অ্যাপ / বাইনারি / ব্রাউজার" + +#: website/public/assets/figures/rea-investigation-flow.svg:34 +msgctxt "figure:rea-investigation-flow.svg" +msgid "2. Inspect & trace" +msgstr "2. পরীক্ষা ও trace" + +#: website/public/assets/figures/rea-investigation-flow.svg:36 +msgctxt "figure:rea-investigation-flow.svg" +msgid "CLI / MCP" +msgstr "CLI / MCP" + +#: website/public/assets/figures/rea-investigation-flow.svg:37 +msgctxt "figure:rea-investigation-flow.svg" +msgid "3. Read the evidence" +msgstr "3. প্রমাণ পড়ুন" + +#: website/public/assets/figures/rea-investigation-flow.svg:38 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Code / references /" +msgstr "কোড / reference /" + +#: website/public/assets/figures/rea-investigation-flow.svg:39 +msgctxt "figure:rea-investigation-flow.svg" +msgid "unknowns" +msgstr "অজানা বিষয়" + +#: website/public/assets/figures/rea-investigation-flow.svg:40 +msgctxt "figure:rea-investigation-flow.svg" +msgid "4. Use what you learn" +msgstr "4. যা শিখলেন তা কাজে লাগান" + +#: website/public/assets/figures/rea-investigation-flow.svg:41 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Your agent" +msgstr "আপনার agent" + +#: website/public/assets/figures/rea-investigation-flow.svg:42 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Explain / implement / test" +msgstr "ব্যাখ্যা / implementation / test" + +#: website/public/assets/figures/rea-investigation-flow.svg:43 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Analysis tools" +msgstr "Analysis টুল" + +#: website/public/assets/figures/rea-investigation-flow.svg:44 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Local analysis adapters" +msgstr "Local analysis adapter" + +#: website/public/assets/figures/rea-investigation-flow.svg:45 +msgctxt "figure:rea-investigation-flow.svg" +msgid "Follow-up question" +msgstr "পরবর্তী প্রশ্ন" + +#: website/public/assets/figures/th04-bullet-ring.svg:2 +msgctxt "figure:th04-bullet-ring.svg" +msgid "TH04: spacing and aiming a ring of bullets" +msgstr "TH04: বুলেটের একটি বলয়ের ব্যবধান ও লক্ষ্য নির্ধারণ" + +#: website/public/assets/figures/th04-bullet-ring.svg:3 +msgctxt "figure:th04-bullet-ring.svg" +msgid "" +"A full clockwise turn has 256 angle units. Sixteen bullets start at angles " +"zero, sixteen, thirty-two, through 240. Adding an example player direction " +"of forty turns all sixteen directions together; the first bullet points at " +"the player. Template rotation is zero." +msgstr "" +"ঘড়ির কাঁটার দিকে একটি পূর্ণ ঘূর্ণনে 256 কোণ-একক। ষোলোটি বুলেট শূন্য, ষোলো, " +"বত্রিশ থেকে শুরু করে 240 পর্যন্ত কোণে শুরু হয়। উদাহরণস্বরূপ খেলোয়াড়ের দিক" +" চল্লিশ যোগ করলে ষোলোটি দিকই একসঙ্গে ঘুরে যায়; প্রথম বুলেটটি খেলোয়াড়ের " +"দিকে তাক করা থাকে। Template rotation শূন্য।" + +#: website/public/assets/figures/th04-bullet-ring.svg:24 +msgctxt "figure:th04-bullet-ring.svg" +msgid "Fixed ring" +msgstr "স্থির বলয়" + +#: website/public/assets/figures/th04-bullet-ring.svg:25 +msgctxt "figure:th04-bullet-ring.svg" +msgid "First bullet: angle 0" +msgstr "প্রথম বুলেট: কোণ 0" + +#: website/public/assets/figures/th04-bullet-ring.svg:26 +msgctxt "figure:th04-bullet-ring.svg" +msgid "Aimed ring" +msgstr "লক্ষ্যভেদী বলয়" + +#: website/public/assets/figures/th04-bullet-ring.svg:27 +msgctxt "figure:th04-bullet-ring.svg" +msgid "First bullet: player direction" +msgstr "প্রথম বুলেট: খেলোয়াড়ের দিক" + +#: website/public/assets/figures/th04-bullet-ring.svg:64 +#: website/public/assets/figures/th04-bullet-ring.svg:102 +msgctxt "figure:th04-bullet-ring.svg" +msgid "Origin" +msgstr "উৎস" + +#: website/public/assets/figures/th04-bullet-ring.svg:105 +msgctxt "figure:th04-bullet-ring.svg" +msgid "Player" +msgstr "খেলোয়াড়" + +#: website/public/assets/figures/th04-bullet-ring.svg:110 +msgctxt "figure:th04-bullet-ring.svg" +msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" +msgstr "একই ব্যবধান: 256 ÷ 16 = 16 কোণ-একক = 22.5°" + +#. {ph0}: +#. {ph1}: +#: website/public/guides/browser/index.html:491 +#, python-brace-format +msgctxt "page:guides/browser/index.html" +msgid "" +"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ " +"captures, MCP and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA " +"capture Evidence, or connect Everywhere's MCP server to inspect captured " +"traffic with your agent." +msgstr "" +"HTTP request ও response body-র জন্য {ph0}Fiddler Everywhere: SAZ capture, " +"MCP এবং public skill{ph1} ব্যবহার করুন। offline REA capture Evidence-এর জন্য" +" SAZ বা HAR 1.2 export করুন, অথবা আপনার agent দিয়ে capture করা traffic " +"পরীক্ষা করতে Everywhere-এর MCP server যুক্ত করুন।" + +#: website/public/assets/theme.js:52 +msgctxt "runtime" +msgid "Switch to light mode" +msgstr "লাইট মোডে যান" + +#: website/public/assets/theme.js:53 +msgctxt "runtime" +msgid "Switch to dark mode" +msgstr "ডার্ক মোডে যান" + +#. {ph0}:
+#: website/public/blog/index.html:211 +#, python-brace-format +msgctxt "page:blog/index.html" +msgid "Model specialization{ph0}Essay" +msgstr "মডেল বিশেষায়ন{ph0}প্রবন্ধ" + +#: website/public/blog/index.html:213 +msgctxt "page:blog/index.html" +msgid "Does reverse engineering need a bigger model?" +msgstr "Reverse engineering-এর কি আরও বড় মডেল দরকার?" + +#: website/public/blog/index.html:214 +msgctxt "page:blog/index.html" +msgid "" +"What Touhou reconstruction suggests about general models, specialist models " +"and learning from compiler feedback." +msgstr "" +"সাধারণ মডেল, বিশেষায়িত মডেল এবং compiler feedback থেকে শেখা নিয়ে Touhou " +"পুনর্গঠন কী ইঙ্গিত দেয়।" + +#: website/public/blog/index.html:221 +msgctxt "page:blog/index.html" +msgid "By N0zoM1z0 · 13 October 2026" +msgstr "লিখেছেন N0zoM1z0 · 13 অক্টোবর 2026" + +#: website/public/blog/reverse-engineering-models/index.html:113 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/reverse-engineering-models/index.html:205 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" +msgstr "{ph0}হোম{ph1} / {ph2}ব্লগ{ph3} / মডেল ও RE" + +#: website/public/blog/reverse-engineering-models/index.html:208 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Essay" +msgstr "প্রবন্ধ" + +#: website/public/blog/reverse-engineering-models/index.html:209 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Does reverse engineering need a bigger model?" +msgstr "Reverse engineering-এর কি আরও বড় মডেল দরকার?" + +#: website/public/blog/reverse-engineering-models/index.html:210 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "By N0zoM1z0 · 13 October 2026" +msgstr "লিখেছেন N0zoM1z0 · 13 অক্টোবর 2026" + +#: website/public/blog/reverse-engineering-models/index.html:212 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Takeaway" +msgstr "মূল কথা" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:214 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later " +"sessions have solved problems that earlier work left unresolved." +msgstr "" +"{ph0}মডেলের সক্ষমতা বদলালে agent কোন hypothesis খুঁজে পায় তাও বদলায়।{ph1} " +"পরের session-গুলো এমন সমস্যার সমাধান করেছে যা আগের কাজে অমীমাংসিত থেকে " +"গিয়েছিল।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:222 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}A familiar compiler gives specialization something concrete to " +"learn.{ph1} Some exact matches depend on narrow, reusable source patterns." +msgstr "" +"{ph0}পরিচিত একটি compiler বিশেষায়নকে শেখার মতো সুনির্দিষ্ট কিছু দেয়।{ph1} " +"কিছু exact match নির্ভর করে সংকীর্ণ, পুনর্ব্যবহারযোগ্য source pattern-এর " +"ওপর।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:229 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with " +"good retrieval may already know enough to make progress." +msgstr "" +"{ph0}Repository-র জ্ঞানকে ন্যায্য তুলনার সুযোগ দিন।{ph1} ভালো retrieval থাকা" +" একটি ছোট মডেল হয়তো অগ্রগতির জন্য যথেষ্ট আগে থেকেই জানে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:234 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value " +"of feedback depends on what the checker actually verifies." +msgstr "" +"{ph0}পরবর্তী কার্যকর পরীক্ষাটি বেছে নিতে প্রশিক্ষণ দিন, এবং তার oracle-কেও " +"পরীক্ষা করুন।{ph1} Feedback-এর মূল্য নির্ভর করে checker আসলে কী যাচাই করে " +"তার ওপর।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:241 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the" +" result I want from the whole agent." +msgstr "" +"{ph0}গৃহীত পুনর্গঠনকে সময় ও খরচের সাপেক্ষে মাপুন।{ph1} পুরো agent থেকে আমি " +"এই ফলাফলটিই চাই।" + +#: website/public/blog/reverse-engineering-models/index.html:252 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "In this article" +msgstr "এই লেখায়" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:254 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}What better models changed{ph1}" +msgstr "{ph0}উন্নত মডেল কী বদলেছে{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:255 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}Why specialize?{ph1}" +msgstr "{ph0}বিশেষায়ন কেন?{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:256 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}Where experience lives{ph1}" +msgstr "{ph0}অভিজ্ঞতা কোথায় থাকে{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:257 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}Learning the next experiment{ph1}" +msgstr "{ph0}পরবর্তী পরীক্ষা শেখা{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:258 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}RE and reinforcement learning{ph1}" +msgstr "{ph0}RE এবং reinforcement learning{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:259 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}When the oracle is wrong{ph1}" +msgstr "{ph0}যখন oracle ভুল{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:260 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}A comparison worth running{ph1}" +msgstr "{ph0}চালানোর মতো একটি তুলনা{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:261 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "{ph0}What kind of agent?{ph1}" +msgstr "{ph0}কেমন agent?{ph1}" + +#: website/public/blog/reverse-engineering-models/index.html:269 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "What better models changed" +msgstr "উন্নত মডেল কী বদলেছে" + +#: website/public/blog/reverse-engineering-models/index.html:270 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Since August 2026, I have been exploring how much reverse engineering an " +"agent can carry out with access to a program and a way to check its work. " +"Most of my experience comes from reconstructing games, especially Touhou. As" +" I have changed models, the repositories have kept a record of what each " +"session managed to recover." +msgstr "" +"আগস্ট 2026 থেকে আমি খুঁজে দেখছি, একটি program-এ প্রবেশাধিকার এবং নিজের কাজ " +"যাচাইয়ের একটি উপায় পেলে একটি agent কতটা reverse engineering করতে পারে। " +"আমার বেশিরভাগ অভিজ্ঞতা এসেছে গেম পুনর্গঠন থেকে, বিশেষ করে Touhou। মডেল " +"বদলানোর সঙ্গে সঙ্গে repository-গুলো প্রতিটি session কী উদ্ধার করতে পেরেছে " +"তার রেকর্ড রেখে গেছে।" + +#: website/public/blog/reverse-engineering-models/index.html:278 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Much of that work aims at exact reconstruction: we compile the maintained " +"source under a pinned historical toolchain and check whether it reproduces " +"the target function. When a later model succeeds where earlier work stalled," +" the source changes show what made that progress possible." +msgstr "" +"সেই কাজের বেশিরভাগের লক্ষ্য exact পুনর্গঠন: আমরা রক্ষণাবেক্ষণকৃত source-কে " +"একটি নির্দিষ্ট ঐতিহাসিক toolchain-এ compile করি এবং দেখি সেটি টার্গেট " +"function-কে হুবহু পুনরুৎপাদন করে কি না। আগের কাজ যেখানে আটকে গিয়েছিল সেখানে" +" পরের কোনো মডেল সফল হলে, source-এর পরিবর্তনগুলো দেখায় কী সেই অগ্রগতি সম্ভব " +"করেছে।" + +#: website/public/blog/reverse-engineering-models/index.html:285 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "The temporary values had to stay alive together" +msgstr "অস্থায়ী মানগুলোকে একসঙ্গে বাঁচিয়ে রাখতে হয়েছিল" + +#: website/public/blog/reverse-engineering-models/index.html:286 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Much of a TH09 attack function's logic had already been reconstructed, but " +"the compiler still stored temporary results differently from the original. " +"The remaining problem was how long those results needed to stay alive and " +"when their storage could be reused." +msgstr "" +"TH09-এর একটি attack function-এর logic-এর বেশিরভাগ আগেই পুনর্গঠন করা হয়েছিল," +" কিন্তু compiler তখনো অস্থায়ী ফলাফলগুলো মূলটির চেয়ে ভিন্নভাবে সংরক্ষণ " +"করছিল। বাকি সমস্যা ছিল সেই ফলাফলগুলোকে কতক্ষণ বাঁচিয়ে রাখতে হবে এবং কখন " +"তাদের storage পুনর্ব্যবহার করা যাবে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/reverse-engineering-models/index.html:293 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing " +"several ordinary source arrangements. When {ph2}GPT-6.1-Sol returned to the " +"problem{ph3}, it found a useful hypothesis about how long those temporary " +"values needed to stay alive." +msgstr "" +"একটি {ph0}GPT-6-Sol checkpoint{ph1} কয়েকটি সাধারণ source বিন্যাস পরীক্ষা " +"করার পর এই অমিল রেকর্ড করেছিল। {ph2}GPT-6.1-Sol যখন সমস্যাটিতে ফিরে " +"আসে{ph3}, তখন সেই অস্থায়ী মানগুলো কতক্ষণ বাঁচিয়ে রাখতে হবে সে বিষয়ে একটি " +"কার্যকর hypothesis খুঁজে পায়।" + +#: website/public/blog/reverse-engineering-models/index.html:307 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The function produced temporary results and copied them into animation " +"positions. In C++, a temporary result stays alive until the expression using" +" it finishes. Grouping the real operations into one expression kept those " +"results alive together, so the compiler could no longer reuse the same " +"storage for all of them." +msgstr "" +"Function-টি অস্থায়ী ফলাফল তৈরি করে সেগুলো animation position-এ কপি করত। " +"C++-এ একটি অস্থায়ী ফলাফল ততক্ষণ বেঁচে থাকে যতক্ষণ না তাকে ব্যবহারকারী " +"expression শেষ হয়। আসল operation-গুলোকে একটি expression-এ একত্র করায় সেই " +"ফলাফলগুলো একসঙ্গে বেঁচে রইল, ফলে compiler আর সবগুলোর জন্য একই storage " +"পুনর্ব্যবহার করতে পারল না।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:314 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"One result still shared storage with a value used later for collision " +"checks. Giving that value its own lifetime resolved the remaining overlap. " +"After several targeted experiments, {ph0}a clean rebuild confirmed that the " +"full function matched{ph1}." +msgstr "" +"একটি ফলাফল তখনো পরে collision check-এ ব্যবহৃত একটি মানের সঙ্গে storage ভাগ " +"করছিল। সেই মানটিকে নিজস্ব lifetime দেওয়ায় বাকি overlap মিটে গেল। কয়েকটি " +"লক্ষ্যভিত্তিক পরীক্ষার পর {ph0}একটি clean rebuild নিশ্চিত করল যে পুরো " +"function মিলে গেছে{ph1}।" + +#: website/public/blog/reverse-engineering-models/index.html:323 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"What interests me is how the discovery and the tests worked together. The " +"lifetime hypothesis gave the agent a new direction; compiler feedback helped" +" it refine that hypothesis into a source arrangement that matched." +msgstr "" +"আমার আগ্রহ হলো আবিষ্কার আর পরীক্ষাগুলো কীভাবে একসঙ্গে কাজ করেছে। Lifetime " +"hypothesis agent-কে একটি নতুন দিশা দিয়েছিল; compiler feedback সেই " +"hypothesis-কে মিলে যাওয়া একটি source বিন্যাসে পরিমার্জন করতে সাহায্য করেছে।" + +#: website/public/blog/reverse-engineering-models/index.html:329 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "A different control-flow graph" +msgstr "একটি ভিন্ন control-flow graph" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:330 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"A second TH09 function shows why that new direction can matter. Here, the " +"obstacle was how several branches shared their final work. " +"{ph0}GPT-6.1-Sol's earlier work{ph1} got parts of the function to match, but" +" the branches still joined up differently from the original." +msgstr "" +"TH09-এর দ্বিতীয় একটি function দেখায় কেন সেই নতুন দিশা গুরুত্বপূর্ণ হতে " +"পারে। এখানে বাধা ছিল কয়েকটি branch কীভাবে তাদের শেষ কাজ ভাগ করে নেয়। " +"{ph0}GPT-6.1-Sol-এর আগের কাজ{ph1} function-এর কিছু অংশ মিলিয়ে ফেলেছিল, " +"কিন্তু branch-গুলো তখনো মূলটির চেয়ে ভিন্নভাবে যুক্ত হচ্ছিল।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/reverse-engineering-models/index.html:341 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main " +"paths now led to a shared final update and return. In that source structure," +" the compiler combined the branches in the same way as the original. The " +"complete function matched, and a {ph2}separate rebuild check confirmed " +"it{ph3}." +msgstr "" +"{ph0}GPT-6-Astra আশপাশের control-flow graph বদলে দিল{ph1}। মূল path-গুলো এখন" +" একটি সাধারণ শেষ update এবং return-এ গিয়ে পৌঁছাল। সেই source কাঠামোয় " +"compiler branch-গুলোকে মূলটির মতোই একত্র করল। সম্পূর্ণ function মিলে গেল, " +"এবং একটি {ph2}আলাদা rebuild check তা নিশ্চিত করল{ph3}।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:353 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Changing the representation opened a more productive search space.{ph1}" +" Both cases give me a reason to take general model capability seriously: an " +"agent can keep trying local variations for a long time before finding a " +"better way to express the surrounding work." +msgstr "" +"{ph0}Representation বদলানোয় আরও ফলপ্রসূ একটি search space খুলে গেল।{ph1} " +"দুটি ঘটনাই আমাকে সাধারণ মডেলের সক্ষমতাকে গুরুত্ব দেওয়ার কারণ দেয়: আশপাশের " +"কাজ প্রকাশের একটি ভালো উপায় খুঁজে পাওয়ার আগে একটি agent দীর্ঘ সময় ধরে " +"স্থানীয় ভিন্নতা চেষ্টা করে যেতে পারে।" + +#: website/public/blog/reverse-engineering-models/index.html:362 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"At the same time, the later sessions started with earlier source and " +"recorded failures. That accumulated work was part of their advantage. The " +"history lets us inspect the discoveries and their checks; a controlled " +"comparison would help separate the effect of the model from the experience " +"it inherited." +msgstr "" +"একই সঙ্গে, পরের session-গুলো শুরু করেছিল আগের source এবং রেকর্ড করা ব্যর্থতা" +" নিয়ে। সেই জমা কাজ তাদের সুবিধার একটি অংশ ছিল। ইতিহাস আমাদের আবিষ্কার ও " +"তাদের যাচাই পরীক্ষা করতে দেয়; একটি নিয়ন্ত্রিত তুলনা মডেলের প্রভাবকে " +"উত্তরাধিকারসূত্রে পাওয়া অভিজ্ঞতা থেকে আলাদা করতে সাহায্য করবে।" + +#: website/public/blog/reverse-engineering-models/index.html:369 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"This is where the question becomes interesting to me. Some of the progress " +"came from finding a new representation, while much of the remaining work " +"involved testing source forms against a familiar compiler. How much needs " +"broad reasoning ability, and how much could a model learn through repeated " +"experience with that compiler and code?" +msgstr "" +"এখানেই প্রশ্নটি আমার কাছে আকর্ষণীয় হয়ে ওঠে। অগ্রগতির কিছু অংশ এসেছে নতুন " +"representation খুঁজে পাওয়া থেকে, আর বাকি কাজের বড় অংশ ছিল পরিচিত একটি " +"compiler-এর বিপরীতে source রূপ পরীক্ষা করা। এর কতটা বিস্তৃত যুক্তিক্ষমতা " +"দাবি করে, আর কতটা একটি মডেল সেই compiler ও code-এর সঙ্গে বারবার অভিজ্ঞতার " +"মাধ্যমে শিখতে পারে?" + +#: website/public/blog/reverse-engineering-models/index.html:379 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Why might a specialist do well?" +msgstr "একটি বিশেষায়িত মডেল কেন ভালো করতে পারে?" + +#: website/public/blog/reverse-engineering-models/index.html:380 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Touhou gives us a concrete reason to expect that experience to help. Much of" +" the game code comes from the same author, ZUN, so recurring habits are a " +"reasonable starting assumption. The repositories back that up with useful " +"examples: related loops and helper arrangements have supplied hypotheses " +"across games." +msgstr "" +"Touhou আমাদের সেই অভিজ্ঞতা কাজে লাগবে বলে আশা করার একটি সুনির্দিষ্ট কারণ " +"দেয়। গেমের code-এর বেশিরভাগ একই লেখক ZUN-এর, তাই পুনরাবৃত্ত অভ্যাস ধরে " +"নেওয়া একটি যুক্তিসংগত শুরু। Repository-গুলো কার্যকর উদাহরণ দিয়ে তা সমর্থন " +"করে: সম্পর্কিত loop ও helper বিন্যাস বিভিন্ন গেমে hypothesis জুগিয়েছে।" + +#: website/public/blog/reverse-engineering-models/index.html:387 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Those source patterns become more specific when we include the compiler. " +"Under a particular version and set of options, small changes in source can " +"produce repeatable differences in machine code. Some of those differences " +"are surprisingly obscure." +msgstr "" +"Compiler-কে অন্তর্ভুক্ত করলে সেই source pattern-গুলো আরও নির্দিষ্ট হয়ে ওঠে।" +" একটি নির্দিষ্ট version ও option-এর সেটে source-এর ছোট পরিবর্তন machine " +"code-এ পুনরাবৃত্তিযোগ্য পার্থক্য তৈরি করতে পারে। এর কিছু পার্থক্য " +"আশ্চর্যজনকভাবে অস্পষ্ট।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: Supervisor::LoadDat +#. {ph4}: +#: website/public/blog/reverse-engineering-models/index.html:393 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"In TH095, for example, {ph0}even the name used for a local variable could " +"change where VC7.1 stored it{ph1}. Moving the declaration alone did not " +"solve the layout, but an earlier background function had revealed a naming " +"pattern that affected the compiler's choice. That gave us a more promising " +"hypothesis for {ph2}the reconstruction of {ph3}{ph4}." +msgstr "" +"যেমন TH095-এ {ph0}একটি local variable-এর নামও VC7.1 সেটি কোথায় রাখবে তা " +"বদলে দিতে পারত{ph1}। শুধু declaration সরালে layout মেলেনি, কিন্তু আগের একটি " +"background function এমন একটি নামকরণ pattern প্রকাশ করেছিল যা compiler-এর " +"পছন্দকে প্রভাবিত করত। তা {ph2}{ph3}{ph4}-এর পুনর্গঠনের জন্য আমাদের আরও " +"সম্ভাবনাময় একটি hypothesis দিল।" + +#: website/public/blog/reverse-engineering-models/index.html:407 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Reusing that pattern for the file-size variable produced the required layout" +" without adding storage. The full function then matched." +msgstr "" +"File-size variable-এর জন্য সেই pattern পুনর্ব্যবহার করায় অতিরিক্ত storage " +"যোগ না করেই প্রয়োজনীয় layout পাওয়া গেল। এরপর পুরো function মিলে গেল।" + +#: website/public/blog/reverse-engineering-models/index.html:412 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"This is the sort of narrow detail a general model may not know when it " +"arrives. A specialist trained on this compiler could encounter many such " +"cases and learn which source variations are worth testing first." +msgstr "" +"এ ধরনের সংকীর্ণ খুঁটিনাটি একটি সাধারণ মডেল শুরুতে না-ও জানতে পারে। এই " +"compiler-এ প্রশিক্ষিত একটি বিশেষায়িত মডেল এমন অনেক ঘটনার মুখোমুখি হয়ে " +"শিখতে পারে কোন source ভিন্নতাগুলো আগে পরীক্ষা করা উচিত।" + +#: website/public/blog/reverse-engineering-models/index.html:418 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The opportunity is especially clear in final matching problems where we " +"already understand the behavior. We are then asking which ordinary source " +"form this compiler turns into the observed instructions. Specialization " +"could help the model propose those forms more efficiently, while the target " +"still determines which hypotheses survive." +msgstr "" +"সুযোগটি বিশেষভাবে স্পষ্ট শেষ পর্যায়ের matching সমস্যায়, যেখানে আচরণ আমরা " +"আগেই বুঝি। তখন আমরা জানতে চাই কোন সাধারণ source রূপকে এই compiler " +"পর্যবেক্ষিত instruction-এ রূপান্তর করে। বিশেষায়ন মডেলকে সেই রূপগুলো আরও " +"দক্ষতার সঙ্গে প্রস্তাব করতে সাহায্য করতে পারে, যদিও কোন hypothesis টিকবে তা " +"টার্গেটই নির্ধারণ করে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:426 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The useful patterns would have to retain their context, though. TH08 uses an" +" earlier Visual C++ version than TH095 and TH09. TH04 uses a different DOS-" +"era compiler, and its {ph0}player reconstruction{ph1} needed different " +"hypotheses about source patterns and how the compiled code was combined into" +" an executable. Shared authorship gives us a prior, but each target tells us" +" whether it applies. Distinguishing those contexts is part of what a " +"specialist would need to learn." +msgstr "" +"তবে কার্যকর pattern-গুলোকে তাদের প্রেক্ষাপট ধরে রাখতে হবে। TH08 ব্যবহার করে " +"TH095 ও TH09-এর চেয়ে পুরোনো একটি Visual C++ version। TH04 ব্যবহার করে ভিন্ন" +" একটি DOS-যুগের compiler, এবং এর {ph0}player পুনর্গঠনে{ph1} source pattern " +"এবং compiled code কীভাবে একটি executable-এ একত্র হয়েছে সে বিষয়ে ভিন্ন " +"hypothesis লেগেছিল। একই লেখক হওয়া আমাদের একটি prior দেয়, কিন্তু তা " +"প্রযোজ্য কি না প্রতিটি টার্গেটই বলে দেয়। এই প্রেক্ষাপটগুলো আলাদা করতে পারা " +"একটি বিশেষায়িত মডেলের শেখার বিষয়ের অংশ।" + +#: website/public/blog/reverse-engineering-models/index.html:442 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Where should that experience live?" +msgstr "সেই অভিজ্ঞতা কোথায় থাকা উচিত?" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:443 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Before deciding to teach those patterns through model training, I would look" +" at the knowledge we already keep in the repository. In the {ph0}previous " +"essay{ph1}, I wrote about it becoming the project's working memory. That " +"memory includes compiler lessons, along with the source and failed " +"experiments that made them useful." +msgstr "" +"মডেল প্রশিক্ষণের মাধ্যমে সেই pattern শেখানোর সিদ্ধান্ত নেওয়ার আগে আমি " +"repository-তে আমরা যে জ্ঞান আগেই রাখি সেটি দেখব। {ph0}আগের প্রবন্ধে{ph1} আমি" +" লিখেছিলাম কীভাবে এটি প্রকল্পের working memory হয়ে উঠছে। সেই memory-তে আছে " +"compiler-এর শিক্ষা, সঙ্গে সেই source ও ব্যর্থ পরীক্ষাগুলো যা সেগুলোকে " +"কার্যকর করেছে।" + +#: website/public/blog/reverse-engineering-models/index.html:452 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"By retrieving that record, an agent can start with a known result and " +"inspect how we reached it. It can also avoid alternatives that have already " +"failed in the same context. The starting point improves without changing the" +" model's weights." +msgstr "" +"সেই রেকর্ড retrieve করে একটি agent একটি জানা ফলাফল দিয়ে শুরু করতে পারে এবং " +"আমরা কীভাবে সেখানে পৌঁছেছি তা পরীক্ষা করতে পারে। একই প্রেক্ষাপটে আগেই ব্যর্থ" +" হওয়া বিকল্পগুলোও সে এড়াতে পারে। মডেলের weight না বদলেই শুরুর অবস্থান " +"উন্নত হয়।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:458 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max " +"session{ph1} drew a hypothesis from TH08's corresponding source family. That" +" earlier source suggested how to structure the loop and handle failures " +"within it. TH09's own evidence supplied the game-specific details, and clean" +" rebuilds confirmed the complete match." +msgstr "" +"TH09-এর enemy-spawn function পুনর্গঠনের সময় একটি {ph0}GPT-6-Luna-max " +"session{ph1} TH08-এর সংশ্লিষ্ট source family থেকে একটি hypothesis নিয়েছিল। " +"সেই আগের source ইঙ্গিত দিয়েছিল loop-টি কীভাবে সাজাতে হবে এবং তার ভেতরের " +"ব্যর্থতা কীভাবে সামলাতে হবে। TH09-এর নিজস্ব প্রমাণ গেম-নির্দিষ্ট খুঁটিনাটি " +"জুগিয়েছে, এবং clean rebuild সম্পূর্ণ match নিশ্চিত করেছে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:469 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}\"The model did not know that compiler quirk\" and \"the model could " +"not use it\" are different problems.{ph1} Retrieval may solve the first, but" +" turning that fact into a useful candidate still takes work. And if the " +"candidate fails, the model must decide what the result means for its next " +"attempt. Knowing the relevant pattern is only the beginning of that process." +msgstr "" +"{ph0}\"মডেল সেই compiler quirk জানত না\" আর \"মডেল সেটি ব্যবহার করতে " +"পারেনি\" দুটি ভিন্ন সমস্যা।{ph1} প্রথমটির সমাধান retrieval দিতে পারে, কিন্তু" +" সেই তথ্যকে একটি কার্যকর candidate-এ পরিণত করতে এখনো কাজ লাগে। আর candidate " +"ব্যর্থ হলে মডেলকে সিদ্ধান্ত নিতে হয় পরের চেষ্টার জন্য ফলাফলটির অর্থ কী। " +"প্রাসঙ্গিক pattern জানা সেই প্রক্রিয়ার কেবল শুরু।" + +#: website/public/blog/reverse-engineering-models/index.html:479 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"For that reason, I would include a smaller general model with good retrieval" +" in any comparison. Giving it the same library of experience would help us " +"identify what training adds: better candidate generation, better decisions " +"after feedback, or both." +msgstr "" +"এই কারণে আমি যেকোনো তুলনায় ভালো retrieval থাকা একটি ছোট সাধারণ মডেল রাখব। " +"তাকে একই অভিজ্ঞতার library দিলে আমরা বুঝতে পারব প্রশিক্ষণ কী যোগ করে: ভালো " +"candidate তৈরি, feedback-এর পর ভালো সিদ্ধান্ত, নাকি দুটোই।" + +#: website/public/blog/reverse-engineering-models/index.html:487 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Learning the next useful experiment" +msgstr "পরবর্তী কার্যকর পরীক্ষা শেখা" + +#: website/public/blog/reverse-engineering-models/index.html:488 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Those decisions after feedback are what I would most like to study. In " +"agentic reconstruction, the model proposes an explanation and tests it " +"against the program. Even when the candidate fails, the result can narrow " +"the remaining possibilities and suggest a more useful next experiment." +msgstr "" +"Feedback-এর পরের সেই সিদ্ধান্তগুলোই আমি সবচেয়ে বেশি অধ্যয়ন করতে চাই। " +"Agentic পুনর্গঠনে মডেল একটি ব্যাখ্যা প্রস্তাব করে এবং program-এর বিপরীতে তা " +"পরীক্ষা করে। Candidate ব্যর্থ হলেও ফলাফলটি বাকি সম্ভাবনাগুলো সংকুচিত করতে " +"পারে এবং আরও কার্যকর পরবর্তী পরীক্ষার ইঙ্গিত দিতে পারে।" + +#: website/public/blog/reverse-engineering-models/index.html:495 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Consider the temporary-results example again. Its final source shows the " +"arrangement that worked, but the route to that source contains more " +"information. Each of the following experiments helped identify what still " +"needed to change." +msgstr "" +"অস্থায়ী ফলাফলের উদাহরণটি আবার ধরুন। এর চূড়ান্ত source কার্যকর বিন্যাসটি " +"দেখায়, কিন্তু সেই source-এ পৌঁছানোর পথে আরও তথ্য আছে। নিচের প্রতিটি পরীক্ষা" +" চিহ্নিত করতে সাহায্য করেছে আর কী বদলানো দরকার ছিল।" + +#: website/public/blog/reverse-engineering-models/index.html:508 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Experiment" +msgstr "পরীক্ষা" + +#: website/public/blog/reverse-engineering-models/index.html:509 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "What its result taught us" +msgstr "এর ফলাফল আমাদের কী শিখিয়েছে" + +#: website/public/blog/reverse-engineering-models/index.html:514 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Try a different way to copy the results" +msgstr "ফলাফল কপি করার একটি ভিন্ন উপায় চেষ্টা করা" + +#: website/public/blog/reverse-engineering-models/index.html:515 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "The copy code changes, but the function still differs." +msgstr "কপি করার code বদলায়, কিন্তু function তখনো ভিন্ন থাকে।" + +#: website/public/blog/reverse-engineering-models/index.html:520 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Use the returned values directly" +msgstr "ফেরত আসা মানগুলো সরাসরি ব্যবহার করা" + +#: website/public/blog/reverse-engineering-models/index.html:521 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Copying follows the original pattern, but temporary storage still differs." +msgstr "কপি করা মূল pattern অনুসরণ করে, কিন্তু অস্থায়ী storage তখনো ভিন্ন।" + +#: website/public/blog/reverse-engineering-models/index.html:527 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Keep the temporary results alive together" +msgstr "অস্থায়ী ফলাফলগুলোকে একসঙ্গে বাঁচিয়ে রাখা" + +#: website/public/blog/reverse-engineering-models/index.html:528 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"They get separate storage, but one still overlaps a value used later for " +"collision checks." +msgstr "" +"সেগুলো আলাদা storage পায়, কিন্তু একটি তখনো পরে collision check-এ ব্যবহৃত " +"একটি মানের সঙ্গে overlap করে।" + +#: website/public/blog/reverse-engineering-models/index.html:534 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Keep the collision-check value separate" +msgstr "Collision-check মানটিকে আলাদা রাখা" + +#: website/public/blog/reverse-engineering-models/index.html:535 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "A clean rebuild confirms the complete match." +msgstr "একটি clean rebuild সম্পূর্ণ match নিশ্চিত করে।" + +#: website/public/blog/reverse-engineering-models/index.html:540 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Selected experiments from the attack-function reconstruction above, grouped " +"by what they taught us." +msgstr "" +"ওপরের attack-function পুনর্গঠন থেকে বাছাই করা পরীক্ষা, সেগুলো আমাদের কী " +"শিখিয়েছে সেই অনুযায়ী সাজানো।" + +#: website/public/blog/reverse-engineering-models/index.html:544 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"A training record that keeps this sequence can teach more than the final " +"source alone. It connects each proposed change to an observed result and the" +" next decision. Keeping ineffective variations matters too: they tell a " +"later agent which hypotheses have already been tested in that context." +msgstr "" +"এই ক্রম ধরে রাখা একটি training রেকর্ড শুধু চূড়ান্ত source-এর চেয়ে বেশি " +"শেখাতে পারে। এটি প্রতিটি প্রস্তাবিত পরিবর্তনকে একটি পর্যবেক্ষিত ফলাফল ও " +"পরবর্তী সিদ্ধান্তের সঙ্গে যুক্ত করে। অকার্যকর ভিন্নতাগুলো রাখাও " +"গুরুত্বপূর্ণ: সেগুলো পরের agent-কে জানায় সেই প্রেক্ষাপটে কোন hypothesis " +"আগেই পরীক্ষা করা হয়েছে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:551 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral " +"result is a reason to reconsider the variation; a changed mismatch may point" +" to another cause. When local edits stop being informative, the agent should" +" be able to revisit the source representation or inspect the evidence again." +msgstr "" +"{ph0}আমি চাই মডেল feedback কীভাবে ব্যবহার করতে হয় তা শিখুক।{ph1} একটি " +"নিরপেক্ষ ফলাফল ভিন্নতাটি পুনর্বিবেচনার কারণ; বদলে যাওয়া mismatch অন্য কোনো " +"কারণের দিকে ইঙ্গিত করতে পারে। স্থানীয় edit আর তথ্য না দিলে agent-এর উচিত " +"source representation-এ ফিরে যাওয়া বা প্রমাণ আবার পরীক্ষা করা।" + +#: website/public/blog/reverse-engineering-models/index.html:560 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Learning to make those choices requires autonomy. Sometimes the useful next " +"step is inspecting another caller rather than compiling another edit. A " +"rigid sequence of required rewrites would remove that choice, along with " +"part of the behavior we want the model to learn." +msgstr "" +"সেই পছন্দগুলো করতে শেখার জন্য স্বাধীনতা দরকার। কখনো কখনো কার্যকর পরবর্তী ধাপ" +" হলো আরেকটি edit compile না করে অন্য একটি caller পরীক্ষা করা। প্রয়োজনীয় " +"rewrite-এর একটি অনমনীয় ক্রম সেই পছন্দ সরিয়ে দেবে, সঙ্গে আমরা মডেলকে যে " +"আচরণ শেখাতে চাই তার একটি অংশও।" + +#: website/public/blog/reverse-engineering-models/index.html:569 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Why RE is interesting for reinforcement learning" +msgstr "RE কেন reinforcement learning-এর জন্য আকর্ষণীয়" + +#: website/public/blog/reverse-engineering-models/index.html:570 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Bounded reconstruction gives us a practical environment for studying these " +"choices. Once the target and compiler are pinned, many source experiments " +"produce quick, repeatable feedback. The agent can compile a candidate, " +"inspect the mismatch and use that observation to choose its next step." +msgstr "" +"সীমাবদ্ধ পুনর্গঠন এই পছন্দগুলো অধ্যয়নের জন্য একটি ব্যবহারিক পরিবেশ দেয়। " +"টার্গেট ও compiler নির্দিষ্ট হয়ে গেলে অনেক source পরীক্ষা দ্রুত, " +"পুনরাবৃত্তিযোগ্য feedback দেয়। Agent একটি candidate compile করতে, mismatch " +"পরীক্ষা করতে এবং সেই পর্যবেক্ষণ দিয়ে পরের ধাপ বেছে নিতে পারে।" + +#: website/public/blog/reverse-engineering-models/index.html:577 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Reinforcement learning could train that decision-making process through the " +"feedback it receives. A candidate accepted by a defined check gives us a " +"concrete outcome, while the sequence of attempts lets us observe how much " +"work it took to reach it." +msgstr "" +"Reinforcement learning পাওয়া feedback-এর মাধ্যমে সেই সিদ্ধান্ত নেওয়ার " +"প্রক্রিয়াকে প্রশিক্ষণ দিতে পারে। একটি সংজ্ঞায়িত check-এ গৃহীত candidate " +"আমাদের একটি সুনির্দিষ্ট ফলাফল দেয়, আর চেষ্টার ক্রম দেখায় সেখানে পৌঁছাতে " +"কতটা কাজ লেগেছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/blog/reverse-engineering-models/index.html:583 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"There is already research supporting this direction. {ph0}LLM4Decompile{ph1}" +" studies models specialized for decompilation. {ph2}AutoDecompiler{ph3} " +"trains multi-turn refinement using compiler and execution feedback. Their " +"studies focus on functional recovery. For this work, I would use them as a " +"starting point for the related task of finding source that matches a " +"historical compiler's output." +msgstr "" +"এই দিকটিকে সমর্থন করে এমন গবেষণা আগেই আছে। {ph0}LLM4Decompile{ph1} " +"decompilation-এর জন্য বিশেষায়িত মডেল অধ্যয়ন করে। {ph2}AutoDecompiler{ph3} " +"compiler ও execution feedback ব্যবহার করে multi-turn পরিমার্জন প্রশিক্ষণ " +"দেয়। তাদের গবেষণা functional recovery-তে কেন্দ্রীভূত। এই কাজের জন্য আমি " +"সেগুলোকে একটি সম্পর্কিত কাজের শুরুর বিন্দু হিসেবে ব্যবহার করব: এমন source " +"খুঁজে পাওয়া যা একটি ঐতিহাসিক compiler-এর output-এর সঙ্গে মেলে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:595 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"To reach such a well-defined task, though, we may first need to establish " +"what a function owns or devise a new runtime measurement. In TH08, for " +"example, a {ph0}collision difference led back to how the original program " +"handled floating-point calculations{ph1}. Before the agent could test a " +"useful correction, it had to work out what to measure." +msgstr "" +"তবে এমন সুসংজ্ঞায়িত কাজে পৌঁছাতে আমাদের হয়তো আগে নির্ধারণ করতে হবে একটি " +"function কীসের মালিক, অথবা নতুন একটি runtime পরিমাপ তৈরি করতে হবে। যেমন " +"TH08-এ একটি {ph0}collision পার্থক্য আমাদের ফিরিয়ে নিয়ে গেল মূল program " +"কীভাবে floating-point হিসাব সামলাত সেখানে{ph1}। Agent একটি কার্যকর সংশোধন " +"পরীক্ষা করার আগে তাকে বের করতে হয়েছিল কী মাপতে হবে।" + +#: website/public/blog/reverse-engineering-models/index.html:606 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"This suggests another role for a broadly capable model: helping make the " +"problem checkable in the first place. Once that check exists, we can " +"investigate how far a learned search policy can get with it." +msgstr "" +"এটি একটি বিস্তৃত সক্ষম মডেলের আরেকটি ভূমিকার ইঙ্গিত দেয়: প্রথমেই সমস্যাটিকে" +" যাচাইযোগ্য করে তুলতে সাহায্য করা। সেই check তৈরি হয়ে গেলে আমরা খুঁজে দেখতে" +" পারি একটি শেখা search policy তা দিয়ে কতদূর যেতে পারে।" + +#: website/public/blog/reverse-engineering-models/index.html:614 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "When the oracle is wrong" +msgstr "যখন oracle ভুল" + +#: website/public/blog/reverse-engineering-models/index.html:615 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Once we train against that check, its coverage becomes part of what the " +"model learns. I call the reference or checker an oracle. Even if it gives a " +"repeatable answer, we still need to understand what that answer covers." +msgstr "" +"সেই check-এর বিপরীতে প্রশিক্ষণ দিলে এর coverage মডেলের শেখার অংশ হয়ে যায়। " +"Reference বা checker-কে আমি oracle বলি। এটি পুনরাবৃত্তিযোগ্য উত্তর দিলেও " +"আমাদের বুঝতে হবে সেই উত্তর কী কী কভার করে।" + +#: website/public/blog/reverse-engineering-models/index.html:621 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"TH08 showed how much can hide outside that coverage. Some reconstructed " +"functions passed their exact comparisons with wrong floating constants. The " +"comparator adjusted relocated addresses before checking instructions, but it" +" checked the values behind those addresses only when they had been " +"explicitly recorded for verification. Other literal references could pass " +"without their values being examined." +msgstr "" +"TH08 দেখিয়েছে সেই coverage-এর বাইরে কতটা লুকিয়ে থাকতে পারে। কিছু পুনর্গঠিত" +" function ভুল floating constant নিয়েও exact তুলনায় পাস করেছিল। Comparator " +"instruction যাচাইয়ের আগে relocated address সমন্বয় করত, কিন্তু সেই address-" +"এর পেছনের মান যাচাই করত কেবল তখনই যখন সেগুলো যাচাইয়ের জন্য স্পষ্টভাবে " +"রেকর্ড করা থাকত। অন্যান্য literal reference তাদের মান পরীক্ষা ছাড়াই পাস " +"করতে পারত।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 1.0f +#. {ph3}: 32.0f +#: website/public/blog/reverse-engineering-models/index.html:630 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in " +"functions that had already been accepted. In one calculation, the " +"reconstructed source added {ph2} where the original added {ph3}." +msgstr "" +"সেই ফাঁক বন্ধ করতে একটি {ph0}বিস্তৃত audit{ph1} আগেই গৃহীত function-এ ভুল " +"constant খুঁজে পায়। একটি হিসাবে পুনর্গঠিত source যোগ করছিল {ph2}, যেখানে " +"মূলটি যোগ করত {ph3}।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:640 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}A learner rewarded by the old check could learn to produce the wrong " +"reconstruction.{ph1} We had not trained an RL model against this oracle; the" +" observed failure was in the check itself. But using that check as a reward " +"would have made the same blind spot part of the learning environment." +msgstr "" +"{ph0}পুরোনো check দ্বারা পুরস্কৃত একটি learner ভুল পুনর্গঠন তৈরি করতে শিখতে " +"পারত।{ph1} আমরা এই oracle-এর বিপরীতে কোনো RL মডেল প্রশিক্ষণ দিইনি; " +"পর্যবেক্ষিত ব্যর্থতাটি ছিল check-এর নিজের মধ্যে। কিন্তু সেই check-কে reward " +"হিসেবে ব্যবহার করলে একই অন্ধ জায়গাটি learning পরিবেশের অংশ হয়ে যেত।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:650 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"A functional test can have a similar blind spot. {ph0}Differential-fuzzing " +"research on LLM decompilers{ph1} has found behavior differences beyond the " +"supplied tests. Passing those tests therefore needs to be read in terms of " +"the cases they exercise, just as an instruction match needs to be read in " +"terms of the bytes and data it checks." +msgstr "" +"একটি functional test-এরও একই রকম অন্ধ জায়গা থাকতে পারে। {ph0}LLM decompiler" +" নিয়ে differential-fuzzing গবেষণা{ph1} সরবরাহকৃত test-এর বাইরে আচরণগত " +"পার্থক্য খুঁজে পেয়েছে। তাই সেই test পাস করাকে তারা কোন case যাচাই করে সেই " +"অনুযায়ী পড়তে হবে, ঠিক যেমন একটি instruction match-কে পড়তে হয় তা কোন byte" +" ও data যাচাই করে সেই অনুযায়ী।" + +#: website/public/blog/reverse-engineering-models/index.html:660 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Before using either kind of check as a reward, I would test it with " +"deliberate failures. I would also keep final acceptance outside the " +"candidate's editable source, so the model has to satisfy the check through " +"its reconstruction. Otherwise, something like a byte array copied from the " +"target could satisfy a naive score without recovering useful source." +msgstr "" +"যেকোনো ধরনের check-কে reward হিসেবে ব্যবহারের আগে আমি ইচ্ছাকৃত ব্যর্থতা " +"দিয়ে সেটি পরীক্ষা করব। চূড়ান্ত গ্রহণযোগ্যতাকেও candidate-এর সম্পাদনযোগ্য " +"source-এর বাইরে রাখব, যাতে মডেলকে তার পুনর্গঠনের মাধ্যমেই check সন্তুষ্ট " +"করতে হয়। নইলে টার্গেট থেকে কপি করা byte array-র মতো কিছু কার্যকর source " +"উদ্ধার না করেই একটি সরল score সন্তুষ্ট করতে পারত।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:668 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Improving the learner and improving its oracle belong to the same " +"research problem.{ph1} As the learner gets better at optimizing the feedback" +" we give it, understanding that feedback becomes more important too." +msgstr "" +"{ph0}Learner-এর উন্নতি আর তার oracle-এর উন্নতি একই গবেষণা সমস্যার অংশ।{ph1} " +"আমরা যে feedback দিই তা optimize করতে learner যত দক্ষ হয়, সেই feedback " +"বোঝাও তত গুরুত্বপূর্ণ হয়ে ওঠে।" + +#: website/public/blog/reverse-engineering-models/index.html:678 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "A comparison worth running" +msgstr "চালানোর মতো একটি তুলনা" + +#: website/public/blog/reverse-engineering-models/index.html:679 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"With those checks in place, I would start the comparison on a fixed VC7.1 " +"task family. First, I would establish baselines for a strong general model " +"and a smaller one. Adding repository knowledge to the smaller model would " +"show what retrieval changes. From there, supervised specialization and an " +"RL-trained version would let us examine what training adds." +msgstr "" +"সেই check-গুলো প্রস্তুত থাকলে আমি একটি নির্দিষ্ট VC7.1 task family দিয়ে " +"তুলনা শুরু করব। প্রথমে একটি শক্তিশালী সাধারণ মডেল ও একটি ছোট মডেলের baseline" +" স্থাপন করব। ছোট মডেলে repository-র জ্ঞান যোগ করলে দেখা যাবে retrieval কী " +"বদলায়। সেখান থেকে supervised বিশেষায়ন এবং একটি RL-প্রশিক্ষিত version " +"আমাদের পরীক্ষা করতে দেবে প্রশিক্ষণ কী যোগ করে।" + +#: website/public/blog/reverse-engineering-models/index.html:687 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"To make those comparisons informative, each model would receive the same " +"target evidence and tools. For the training-specific comparisons, I would " +"keep the base model and available knowledge fixed as well. Repeated trials " +"would help distinguish a reliable search strategy from a lucky candidate." +msgstr "" +"সেই তুলনাগুলো তথ্যপূর্ণ করতে প্রতিটি মডেল একই টার্গেট প্রমাণ ও টুল পাবে। " +"প্রশিক্ষণ-নির্দিষ্ট তুলনার জন্য base মডেল ও উপলব্ধ জ্ঞানও স্থির রাখব। " +"পুনরাবৃত্ত trial একটি নির্ভরযোগ্য search কৌশলকে ভাগ্যক্রমে পাওয়া candidate " +"থেকে আলাদা করতে সাহায্য করবে।" + +#: website/public/blog/reverse-engineering-models/index.html:694 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"I would then separate two starting conditions: reconstructing a function " +"from its instructions, and closing the last few differences in maintained " +"source. A specialist might be excellent at the second task while a general " +"model does much of the work needed to reach it. Measuring them separately " +"would reveal that division of work." +msgstr "" +"এরপর আমি দুটি শুরুর অবস্থা আলাদা করব: instruction থেকে একটি function " +"পুনর্গঠন, এবং রক্ষণাবেক্ষণকৃত source-এ শেষ কয়েকটি পার্থক্য মেটানো। একটি " +"বিশেষায়িত মডেল দ্বিতীয় কাজে চমৎকার হতে পারে, যখন সেখানে পৌঁছানোর জন্য " +"প্রয়োজনীয় কাজের বেশিরভাগ করে একটি সাধারণ মডেল। আলাদাভাবে মাপলে কাজের সেই " +"ভাগ স্পষ্ট হবে।" + +#: website/public/blog/reverse-engineering-models/index.html:702 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Both tasks need genuinely held-out examples. Because related Touhou games " +"share engine code, holding out a game's name would still allow nearly " +"identical functions to appear in training. I would instead hold out source " +"families and keep their accepted answers out of both training and retrieval." +msgstr "" +"দুটি কাজেরই সত্যিকারের held-out উদাহরণ দরকার। সম্পর্কিত Touhou গেমগুলো " +"engine code ভাগ করে বলে একটি গেমের নাম held out রাখলেও প্রায় অভিন্ন " +"function training-এ চলে আসতে পারে। তার বদলে আমি source family held out রাখব " +"এবং তাদের গৃহীত উত্তর training ও retrieval দুটো থেকেই বাইরে রাখব।" + +#: website/public/blog/reverse-engineering-models/index.html:709 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"On those examples, the outcome would be complete, independently validated " +"matches. Giving each model the same candidate or compile budget would help " +"compare search quality. Measuring elapsed time and total cost, including " +"compilation, would tell us whether that quality produces an efficient " +"workflow. Training costs would need their own accounting too." +msgstr "" +"সেই উদাহরণগুলোতে ফলাফল হবে সম্পূর্ণ, স্বাধীনভাবে যাচাই করা match। প্রতিটি " +"মডেলকে একই candidate বা compile বাজেট দিলে search-এর মান তুলনা করা সহজ হবে। " +"Compilation-সহ অতিবাহিত সময় ও মোট খরচ মাপলে জানা যাবে সেই মান একটি দক্ষ " +"workflow তৈরি করে কি না। Training খরচেরও আলাদা হিসাব রাখতে হবে।" + +#: website/public/blog/reverse-engineering-models/index.html:717 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Both views matter because a cheaper proposal can become an expensive " +"workflow if it causes more uninformative compiles. Conversely, a slower " +"model may pay for itself by finding a useful experiment sooner. The " +"comparison should capture those costs." +msgstr "" +"দুটি দৃষ্টিভঙ্গিই গুরুত্বপূর্ণ, কারণ একটি সস্তা প্রস্তাব যদি বেশি " +"অ-তথ্যপূর্ণ compile ঘটায় তবে তা ব্যয়বহুল workflow হয়ে উঠতে পারে। " +"উল্টোদিকে, একটি ধীর মডেল আগেভাগে কার্যকর পরীক্ষা খুঁজে পেয়ে নিজের খরচ " +"পুষিয়ে দিতে পারে। তুলনাটিকে সেই খরচগুলো ধরতে হবে।" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:723 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"Counting accepted results also keeps intermediate progress in perspective. " +"One TH09 {ph0}replay-save candidate{ph1} looked promising because the " +"compiled function had the expected size, but a full comparison still found " +"substantial differences. Changes in how the compiler arranges instructions " +"can also make a candidate look closer without resolving the underlying " +"problem. Such diagnostics can guide the next experiment, but I would " +"validate any reward for \"getting closer\" against the full acceptance " +"check." +msgstr "" +"গৃহীত ফলাফল গোনা মধ্যবর্তী অগ্রগতিকেও সঠিক প্রেক্ষাপটে রাখে। TH09-এর একটি " +"{ph0}replay-save candidate{ph1} আশাব্যঞ্জক মনে হয়েছিল কারণ compiled " +"function-এর আকার প্রত্যাশিত ছিল, কিন্তু পূর্ণ তুলনায় তখনো উল্লেখযোগ্য " +"পার্থক্য পাওয়া গেল। Compiler কীভাবে instruction সাজায় তার পরিবর্তনও মূল " +"সমস্যা না মিটিয়েই একটি candidate-কে কাছাকাছি দেখাতে পারে। এমন diagnostic " +"পরের পরীক্ষাকে পথ দেখাতে পারে, কিন্তু \"কাছাকাছি পৌঁছানোর\" যেকোনো reward " +"আমি পূর্ণ acceptance check-এর বিপরীতে যাচাই করব।" + +#: website/public/blog/reverse-engineering-models/index.html:738 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"I would be interested in the pattern across these results. If a specialist " +"does well within a familiar compiler family, does that advantage survive a " +"toolchain change? And once both models have good retrieval, how much does " +"training still add? The answers would help us decide where each kind of " +"model is most useful." +msgstr "" +"এই ফলাফলগুলোর সামগ্রিক pattern-এ আমার আগ্রহ থাকবে। একটি বিশেষায়িত মডেল " +"পরিচিত compiler family-তে ভালো করলে toolchain বদলালেও কি সেই সুবিধা টিকে " +"থাকে? আর দুটি মডেলেরই ভালো retrieval থাকলে প্রশিক্ষণ আর কতটা যোগ করে? " +"উত্তরগুলো আমাদের ঠিক করতে সাহায্য করবে কোন ধরনের মডেল কোথায় সবচেয়ে " +"কার্যকর।" + +#: website/public/blog/reverse-engineering-models/index.html:747 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "What kind of agent does this suggest?" +msgstr "এটি কেমন agent-এর ইঙ্গিত দেয়?" + +#: website/public/blog/reverse-engineering-models/index.html:748 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"If the models turn out to help at different stages, a useful arrangement " +"might be a broad agent with access to a specialist. Once a task becomes a " +"familiar compiler search, it could ask the specialist for candidates. If the" +" results stop making sense, the broader agent could return to the target " +"evidence or investigate the measurement itself." +msgstr "" +"মডেলগুলো যদি ভিন্ন ভিন্ন পর্যায়ে সাহায্য করে, তবে একটি কার্যকর বিন্যাস হতে " +"পারে একটি বিস্তৃত agent যার কাছে একটি বিশেষায়িত মডেলের প্রবেশাধিকার আছে। " +"কোনো কাজ পরিচিত compiler search-এ পরিণত হলে সে বিশেষায়িত মডেলের কাছে " +"candidate চাইতে পারে। ফলাফল অর্থহীন হতে শুরু করলে বিস্তৃত agent টার্গেট " +"প্রমাণে ফিরে যেতে বা পরিমাপটিকেই পরীক্ষা করতে পারে।" + +#: website/public/blog/reverse-engineering-models/index.html:756 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"In that arrangement, specialization becomes a tool the agent can choose as " +"the investigation develops. The agent keeps the freedom to change direction " +"that made the earlier breakthroughs possible." +msgstr "" +"সেই বিন্যাসে বিশেষায়ন হয়ে ওঠে এমন একটি টুল যা অনুসন্ধান এগোনোর সঙ্গে agent" +" বেছে নিতে পারে। Agent দিক বদলানোর সেই স্বাধীনতা ধরে রাখে যা আগের " +"অগ্রগতিগুলো সম্ভব করেছিল।" + +#: website/public/blog/reverse-engineering-models/index.html:761 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"This follows naturally from the industrial shift I described in the previous" +" essay. Being able to run many more experiments changes how we organize the " +"work. It also gives us a reason to ask which decisions need broad judgment " +"and which improve through repeated experience with a particular craft." +msgstr "" +"আগের প্রবন্ধে আমি যে শিল্পায়নমুখী পরিবর্তনের কথা বলেছিলাম, এটি " +"স্বাভাবিকভাবেই তা থেকে আসে। অনেক বেশি পরীক্ষা চালাতে পারা আমাদের কাজ সংগঠনের" +" ধরন বদলে দেয়। এটি আমাদের প্রশ্ন করারও কারণ দেয়: কোন সিদ্ধান্তে বিস্তৃত " +"বিচারবুদ্ধি লাগে, আর কোনগুলো একটি নির্দিষ্ট দক্ষতায় বারবার অভিজ্ঞতার " +"মাধ্যমে উন্নত হয়।" + +#: website/public/blog/reverse-engineering-models/index.html:768 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"For now, the strongest general model has earned its place in my workflow by " +"opening problems I had left unresolved. Those successes are what make me " +"want to examine the work more closely: how much depended on the model's " +"breadth, and how much could be handled by a model trained in this particular" +" kind of reconstruction?" +msgstr "" +"আপাতত, সবচেয়ে শক্তিশালী সাধারণ মডেল আমার অমীমাংসিত রেখে দেওয়া সমস্যাগুলো " +"খুলে দিয়ে আমার workflow-তে জায়গা করে নিয়েছে। সেই সাফল্যগুলোই আমাকে কাজটি " +"আরও কাছ থেকে পরীক্ষা করতে উৎসাহিত করে: এর কতটা মডেলের বিস্তৃতির ওপর নির্ভর " +"করেছে, আর কতটা এই নির্দিষ্ট ধরনের পুনর্গঠনে প্রশিক্ষিত একটি মডেল সামলাতে " +"পারত?" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:776 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}The repositories give us a way to test the question.{ph1} I would like " +"to use that record to build the comparison and see what we learn." +msgstr "" +"{ph0}Repository-গুলো আমাদের প্রশ্নটি পরীক্ষা করার একটি উপায় দেয়।{ph1} আমি " +"সেই রেকর্ড ব্যবহার করে তুলনাটি তৈরি করতে এবং আমরা কী শিখি তা দেখতে চাই।" + +#: website/public/blog/reverse-engineering-models/index.html:786 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Evidence and model attribution" +msgstr "প্রমাণ ও মডেল attribution" + +#. {ph0}: +#. {ph1}: +#: website/public/blog/reverse-engineering-models/index.html:787 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and " +"experiment context." +msgstr "" +"{ph0}বিস্তারিত প্রমাণ নোটে{ph1} রেকর্ড করা তুলনা ও পরীক্ষার প্রেক্ষাপট " +"রয়েছে।" + +#: website/public/blog/reverse-engineering-models/index.html:794 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The examples describe historical function-level comparisons recorded in the " +"linked commits. Whole-game runtime checks are separate milestones. Source " +"and matching records were reviewed on 13 October 2026." +msgstr "" +"উদাহরণগুলো লিঙ্ক করা commit-এ রেকর্ড করা ঐতিহাসিক function-স্তরের তুলনা " +"বর্ণনা করে। পুরো গেমের runtime check আলাদা milestone। Source ও matching " +"রেকর্ড 13 অক্টোবর 2026-এ পর্যালোচনা করা হয়েছে।" + +#. {ph0}: gpt-dots +#. {ph1}: gpt-web +#: website/public/blog/reverse-engineering-models/index.html:800 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model " +"used at the time, so that label alone does not identify an individual run. " +"Explicit model names in the other cited commits establish their recorded " +"attribution; the histories do not contain uniform per-run cost or effort " +"measurements." +msgstr "" +"TH09-এর label {ph0} GPT-6-Astra-কে চিহ্নিত করে। {ph1} সেই সময়ে ব্যবহৃত " +"মডেলের সঙ্গে বদলেছে, তাই শুধু সেই label দিয়ে কোনো একক run চিহ্নিত হয় না। " +"অন্যান্য উদ্ধৃত commit-এ স্পষ্ট মডেলের নাম তাদের রেকর্ড করা attribution " +"প্রতিষ্ঠা করে; ইতিহাসে প্রতি run-এর খরচ বা পরিশ্রমের অভিন্ন পরিমাপ নেই।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/blog/reverse-engineering-models/index.html:809 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and" +" {ph4}complete cold reconstruction{ph5}." +msgstr "" +"{ph0}TH09 অস্থায়ী lifetime:{ph1} {ph2}আগের প্রেক্ষাপট পর্যালোচনা{ph3} এবং " +"{ph4}সম্পূর্ণ cold পুনর্গঠন{ph5}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/blog/reverse-engineering-models/index.html:821 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, " +"{ph4}Astra's new graph{ph5} and its {ph6}accepted recompile replay{ph7}." +msgstr "" +"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic অঞ্চল{ph3}, " +"{ph4}Astra-র নতুন graph{ph5} এবং এর {ph6}গৃহীত recompile replay{ph7}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/blog/reverse-engineering-models/index.html:837 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, " +"{ph4}TH04 player source and linker order{ph5} and {ph6}Luna's TH09 enemy-" +"spawn closure{ph7}." +msgstr "" +"{ph0}Compiler-এর জ্ঞান:{ph1} {ph2}TH095 identifier-bucket পুনর্ব্যবহার{ph3}," +" {ph4}TH04 player source ও linker order{ph5} এবং {ph6}Luna-র TH09 enemy-" +"spawn closure{ph7}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/blog/reverse-engineering-models/index.html:853 +#, python-brace-format +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, " +"{ph4}TH08 numerical investigation{ph5} and {ph6}TH09 replay-save " +"reconstruction{ph7}." +msgstr "" +"{ph0}Check ও diagnostic:{ph1} {ph2}TH08 floating-literal audit{ph3}, " +"{ph4}TH08 সংখ্যাগত অনুসন্ধান{ph5} এবং {ph6}TH09 replay-save পুনর্গঠন{ph7}।" + +#: website/public/blog/reverse-engineering-models/index.html:870 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"The proposed specialist and RL comparisons are future experiments. The " +"project histories motivate them; no trained specialist was evaluated for " +"this essay." +msgstr "" +"প্রস্তাবিত বিশেষায়িত মডেল ও RL তুলনাগুলো ভবিষ্যতের পরীক্ষা। প্রকল্পের " +"ইতিহাস এগুলোর অনুপ্রেরণা; এই প্রবন্ধের জন্য কোনো প্রশিক্ষিত বিশেষায়িত মডেল " +"মূল্যায়ন করা হয়নি।" + +#: website/public/blog/reverse-engineering-models/index.html:6 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Does reverse engineering need a bigger model? | REA" +msgstr "Reverse engineering-এর কি আরও বড় মডেল দরকার? | REA" + +#: website/public/blog/reverse-engineering-models/index.html:7 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "" +"What Touhou reconstruction taught me about general models, specialist models" +" and learning to propose better hypotheses from compiler feedback." +msgstr "" +"সাধারণ মডেল, বিশেষায়িত মডেল এবং compiler feedback থেকে আরও ভালো hypothesis " +"প্রস্তাব করতে শেখা নিয়ে Touhou পুনর্গঠন আমাকে যা শিখিয়েছে।" + +#: website/public/blog/reverse-engineering-models/index.html:251 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "On this page" +msgstr "এই পেজে" + +#: website/public/blog/reverse-engineering-models/index.html:264 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Models and reverse engineering essay" +msgstr "মডেল ও reverse engineering প্রবন্ধ" + +#: website/public/blog/reverse-engineering-models/index.html:502 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Selected reconstruction experiments" +msgstr "বাছাই করা পুনর্গঠন পরীক্ষা" + +#: website/public/blog/reverse-engineering-models/index.html:895 +msgctxt "page:blog/reverse-engineering-models/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/get-started/index.html:207 +msgctxt "page:get-started/index.html" +msgid "" +"Set up your computer and coding agent, connect REA, then investigate a small" +" app." +msgstr "" +"আপনার কম্পিউটার ও কোডিং এজেন্ট প্রস্তুত করুন, REA যুক্ত করুন, তারপর একটি ছোট" +" অ্যাপ অনুসন্ধান করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:211 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"New to this? Follow the four steps below. Already have an agent? Go straight" +" to {ph0}Connect REA{ph1}." +msgstr "" +"এ বিষয়ে নতুন? নিচের চারটি ধাপ অনুসরণ করুন। আগে থেকেই এজেন্ট আছে? সরাসরি " +"{ph0}REA যুক্ত করুন{ph1} অংশে যান।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:220 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}1. Prepare your computer{ph1}" +msgstr "{ph0}১. আপনার কম্পিউটার প্রস্তুত করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:221 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}2. Choose an agent{ph1}" +msgstr "{ph0}২. একটি এজেন্ট বেছে নিন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:222 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}3. Connect REA{ph1}" +msgstr "{ph0}৩. REA যুক্ত করুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:223 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}4. Try an investigation{ph1}" +msgstr "{ph0}৪. একটি অনুসন্ধান করে দেখুন{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:224 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Other targets and providers{ph1}" +msgstr "{ph0}অন্যান্য টার্গেট ও প্রোভাইডার{ph1}" + +#: website/public/get-started/index.html:231 +msgctxt "page:get-started/index.html" +msgid "1. Prepare your computer" +msgstr "১. আপনার কম্পিউটার প্রস্তুত করুন" + +#: website/public/get-started/index.html:232 +msgctxt "page:get-started/index.html" +msgid "" +"Use the computer where your target files are stored. A local coding agent " +"can read those files and run tools for you." +msgstr "" +"যে কম্পিউটারে আপনার টার্গেট ফাইলগুলো রাখা আছে সেটি ব্যবহার করুন। একটি লোকাল " +"কোডিং এজেন্ট সেই ফাইলগুলো পড়তে এবং আপনার হয়ে টুল চালাতে পারে।" + +#: website/public/get-started/index.html:257 +msgctxt "page:get-started/index.html" +msgid "" +"Commands go in the terminal. Prompts labeled “Your coding agent” go in the " +"agent's chat." +msgstr "" +"কমান্ডগুলো টার্মিনালে দিন। “আপনার কোডিং এজেন্ট” লেবেলযুক্ত প্রম্পটগুলো " +"এজেন্টের চ্যাটে দিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:313 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." +msgstr "winget না থাকলে {ph0}Node.js ইনস্টলার ডাউনলোড করুন{ph1}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: npx +#. {ph3}: npx.cmd +#. {ph4}: npm.cmd +#: website/public/get-started/index.html:319 +#, 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}, use {ph3} instead. For npm, use {ph4}:" +msgstr "" +"পরে {ph2} চালানোর সময় PowerShell যদি {ph0}\"running scripts is disabled on " +"this system\"{ph1} বলে, তাহলে এর বদলে {ph3} ব্যবহার করুন। npm-এর জন্য {ph4} " +"ব্যবহার করুন:" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:342 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"For a first installation, download the {ph0}Node.js 24 LTS macOS installer " +"(.pkg){ph1}, open it and follow the installer. Then reopen Terminal." +msgstr "" +"প্রথমবার ইনস্টলের জন্য {ph0}Node.js 24 LTS macOS ইনস্টলার (.pkg){ph1} " +"ডাউনলোড করুন, সেটি খুলে ইনস্টলারের নির্দেশনা অনুসরণ করুন। তারপর Terminal " +"আবার খুলুন।" + +#: website/public/get-started/index.html:349 +msgctxt "page:get-started/index.html" +msgid "Already use Homebrew?" +msgstr "আগে থেকেই Homebrew ব্যবহার করেন?" + +#. {ph0}: sudo apt install curl unzip +#: website/public/get-started/index.html:368 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Install curl and unzip first if they are missing. On Debian or Ubuntu, run " +"{ph0}; on other distributions, use your package manager." +msgstr "" +"curl ও unzip না থাকলে আগে সেগুলো ইনস্টল করুন। Debian বা Ubuntu-তে {ph0} " +"চালান; অন্য ডিস্ট্রিবিউশনে আপনার প্যাকেজ ম্যানেজার ব্যবহার করুন।" + +#: website/public/get-started/index.html:387 +msgctxt "page:get-started/index.html" +msgid "Close the terminal, open it again, then:" +msgstr "টার্মিনাল বন্ধ করে আবার খুলুন, তারপর:" + +#: website/public/get-started/index.html:417 +msgctxt "page:get-started/index.html" +msgid "Make a working folder for your agent" +msgstr "আপনার এজেন্টের জন্য একটি কাজের ফোল্ডার তৈরি করুন" + +#: website/public/get-started/index.html:418 +msgctxt "page:get-started/index.html" +msgid "In your terminal, make a folder for the exercise, then move into it:" +msgstr "" +"টার্মিনালে এই অনুশীলনের জন্য একটি ফোল্ডার তৈরি করুন, তারপর সেটিতে যান:" + +#: website/public/get-started/index.html:437 +msgctxt "page:get-started/index.html" +msgid "" +"Keep this terminal open for the next step. If you already have a working " +"folder, open it instead." +msgstr "" +"পরের ধাপের জন্য এই টার্মিনাল খোলা রাখুন। আগে থেকেই কাজের ফোল্ডার থাকলে সেটি " +"খুলুন।" + +#: website/public/get-started/index.html:444 +msgctxt "page:get-started/index.html" +msgid "2. Choose a coding agent" +msgstr "২. একটি কোডিং এজেন্ট বেছে নিন" + +#: website/public/get-started/index.html:445 +msgctxt "page:get-started/index.html" +msgid "" +"Your agent is the AI you talk to. REA supplies the inspection tools it uses." +" Pick one client below; open its instructions if you haven't used it before." +msgstr "" +"আপনার এজেন্ট হলো সেই AI, যার সঙ্গে আপনি কথা বলেন। REA তাকে পরীক্ষার টুলগুলো " +"দেয়। নিচে থেকে একটি ক্লায়েন্ট বেছে নিন; আগে ব্যবহার না করে থাকলে এর " +"নির্দেশনা খুলুন।" + +#: website/public/get-started/index.html:451 +msgctxt "page:get-started/index.html" +msgid "Codex · use your ChatGPT account" +msgstr "Codex · আপনার ChatGPT অ্যাকাউন্ট ব্যবহার করুন" + +#: website/public/get-started/index.html:452 +msgctxt "page:get-started/index.html" +msgid "Install Codex using the command for your operating system:" +msgstr "আপনার অপারেটিং সিস্টেমের কমান্ড দিয়ে Codex ইনস্টল করুন:" + +#: website/public/get-started/index.html:481 +msgctxt "page:get-started/index.html" +msgid "" +"After installation, reopen your terminal and return to the working folder. " +"Then start Codex:" +msgstr "" +"ইনস্টলের পর টার্মিনাল আবার খুলে কাজের ফোল্ডারে ফিরে যান। তারপর Codex চালু " +"করুন:" + +#: website/public/get-started/index.html:499 +msgctxt "page:get-started/index.html" +msgid "" +"Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " +"the terminal. When the message box appears, continue to step 3." +msgstr "" +"“Sign in with ChatGPT” বেছে নিন, ব্রাউজারে সাইন-ইন শেষ করে টার্মিনালে ফিরে " +"আসুন। মেসেজ বক্স দেখা গেলে ধাপ ৩-এ যান।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:504 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Codex installation and sign-in{ph1}" +msgstr "{ph0}Codex ইনস্টল ও সাইন-ইন{ph1}" + +#: website/public/get-started/index.html:511 +msgctxt "page:get-started/index.html" +msgid "Cursor, Windsurf or VS Code · use an editor" +msgstr "Cursor, Windsurf বা VS Code · একটি এডিটর ব্যবহার করুন" + +#: website/public/get-started/index.html:513 +msgctxt "page:get-started/index.html" +msgid "Install the editor for your operating system and sign in." +msgstr "আপনার অপারেটিং সিস্টেমের জন্য এডিটর ইনস্টল করে সাইন ইন করুন।" + +#: website/public/get-started/index.html:516 +msgctxt "page:get-started/index.html" +msgid "Open the rea-work folder you made in step 1." +msgstr "ধাপ ১-এ তৈরি করা rea-work ফোল্ডারটি খুলুন।" + +#: website/public/get-started/index.html:517 +msgctxt "page:get-started/index.html" +msgid "" +"Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " +"the agent chat; in VS Code, set up GitHub Copilot first." +msgstr "" +"এর AI চ্যাট খুলে Agent মোড বেছে নিন। Windsurf বা Devin Desktop-এ এজেন্ট " +"চ্যাট খুলুন; VS Code-এ আগে GitHub Copilot সেট আপ করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#: website/public/get-started/index.html:523 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Cursor setup{ph1} · {ph2}Windsurf / Devin Desktop setup{ph3} · {ph4}VS " +"Code and Copilot setup{ph5}" +msgstr "" +"{ph0}Cursor সেটআপ{ph1} · {ph2}Windsurf / Devin Desktop সেটআপ{ph3} · {ph4}VS " +"Code ও Copilot সেটআপ{ph5}" + +#: website/public/get-started/index.html:535 +msgctxt "page:get-started/index.html" +msgid "Claude Code · use your Claude account" +msgstr "Claude Code · আপনার Claude অ্যাকাউন্ট ব্যবহার করুন" + +#: website/public/get-started/index.html:536 +msgctxt "page:get-started/index.html" +msgid "Install using the command for your operating system:" +msgstr "আপনার অপারেটিং সিস্টেমের কমান্ড দিয়ে ইনস্টল করুন:" + +#. {ph0}: claude +#: website/public/get-started/index.html:565 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Reopen your terminal, return to your working folder and run {ph0}. Follow " +"the sign-in prompts. Access uses an eligible Claude subscription or a " +"configured API account." +msgstr "" +"টার্মিনাল আবার খুলে কাজের ফোল্ডারে ফিরে যান এবং {ph0} চালান। সাইন-ইনের " +"নির্দেশনা অনুসরণ করুন। ব্যবহারের জন্য যোগ্য Claude সাবস্ক্রিপশন বা কনফিগার " +"করা API অ্যাকাউন্ট লাগবে।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:570 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Claude Code installation and account options{ph1}" +msgstr "{ph0}Claude Code ইনস্টল ও অ্যাকাউন্টের বিকল্প{ph1}" + +#: website/public/get-started/index.html:577 +msgctxt "page:get-started/index.html" +msgid "Claude Desktop · use a desktop chat" +msgstr "Claude Desktop · একটি ডেস্কটপ চ্যাট ব্যবহার করুন" + +#: website/public/get-started/index.html:578 +msgctxt "page:get-started/index.html" +msgid "" +"Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " +"then run this command in a terminal you opened outside Claude:" +msgstr "" +"Windows বা macOS-এ Claude Desktop ইনস্টল করে সাইন ইন করুন। এটি পুরোপুরি বন্ধ" +" করুন, তারপর Claude-এর বাইরে খোলা একটি টার্মিনালে এই কমান্ড চালান:" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:597 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Review and approve the plan, reopen Claude, then {ph0}check the connection " +"in step 3{ph1}." +msgstr "" +"পরিকল্পনা দেখে অনুমোদন দিন, Claude আবার খুলুন, তারপর {ph0}ধাপ ৩-এ সংযোগ " +"যাচাই করুন{ph1}।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:601 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection " +"details{ph3}" +msgstr "" +"{ph0}Claude Desktop ডাউনলোড করুন{ph1} · {ph2}Claude Desktop সংযোগের " +"বিস্তারিত{ph3}" + +#: website/public/get-started/index.html:611 +msgctxt "page:get-started/index.html" +msgid "OpenCode · choose an AI model" +msgstr "OpenCode · একটি AI মডেল বেছে নিন" + +#. {ph0}: opencode +#. {ph1}: /connect +#: website/public/get-started/index.html:626 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Run {ph0} in your working folder. Use {ph1} in its chat to connect your " +"model account, then select a model." +msgstr "" +"আপনার কাজের ফোল্ডারে {ph0} চালান। এর চ্যাটে {ph1} দিয়ে আপনার মডেল " +"অ্যাকাউন্ট যুক্ত করুন, তারপর একটি মডেল বেছে নিন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:631 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}OpenCode installation and model setup{ph1}" +msgstr "{ph0}OpenCode ইনস্টল ও মডেল সেটআপ{ph1}" + +#: website/public/get-started/index.html:638 +msgctxt "page:get-started/index.html" +msgid "All supported clients and setup IDs" +msgstr "সমর্থিত সব ক্লায়েন্ট ও সেটআপ আইডি" + +#. {ph0}: --client +#: website/public/get-started/index.html:639 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"The npm 6.4.0 release supports the clients below. Use the ID with {ph0} when" +" choosing a client explicitly." +msgstr "" +"npm 6.4.0 রিলিজ নিচের ক্লায়েন্টগুলো সমর্থন করে। নির্দিষ্ট ক্লায়েন্ট বেছে " +"নিতে {ph0}-এর সঙ্গে আইডিটি ব্যবহার করুন।" + +#: website/public/get-started/index.html:647 +msgctxt "page:get-started/index.html" +msgid "Client" +msgstr "ক্লায়েন্ট" + +#: website/public/get-started/index.html:648 +msgctxt "page:get-started/index.html" +msgid "Setup ID" +msgstr "সেটআপ আইডি" + +#. {ph0}: qoder +#. {ph1}: droid +#. {ph2}: trae +#. {ph3}: zcode +#. {ph4}: dsh +#: website/public/get-started/index.html:723 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) and " +"DeepSeek Harness ({ph4}) are available on repository main; use a source " +"build or a release containing those integrations." +msgstr "" +"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) ও DeepSeek" +" Harness ({ph4}) রিপোজিটরির main-এ পাওয়া যায়; সোর্স বিল্ড বা এই " +"ইন্টিগ্রেশনগুলো থাকা কোনো রিলিজ ব্যবহার করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:730 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release " +"availability{ph3}" +msgstr "" +"{ph0}ক্লায়েন্ট কনফিগারেশন ও সমস্যা সমাধান{ph1} · {ph2}রিলিজে প্রাপ্যতা{ph3}" + +#: website/public/get-started/index.html:742 +msgctxt "page:get-started/index.html" +msgid "Grok Bot · connect on its hosted computer" +msgstr "Grok Bot · এর হোস্টেড কম্পিউটারে যুক্ত করুন" + +#. {ph0}: rea +#: website/public/get-started/index.html:743 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"In Grok Bot's chat, ask it to add a custom MCP server named {ph0} using this" +" command on the Bot's computer:" +msgstr "" +"Grok Bot-এর চ্যাটে বলুন, Bot-এর কম্পিউটারে এই কমান্ড দিয়ে {ph0} নামে একটি " +"কাস্টম MCP সার্ভার যোগ করতে:" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:761 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Grok Bot connector instructions{ph1}" +msgstr "{ph0}Grok Bot কানেক্টরের নির্দেশনা{ph1}" + +#: website/public/get-started/index.html:771 +msgctxt "page:get-started/index.html" +msgid "3. Connect REA" +msgstr "৩. REA যুক্ত করুন" + +#: website/public/get-started/index.html:772 +msgctxt "page:get-started/index.html" +msgid "Copy this into your coding agent:" +msgstr "এটি আপনার কোডিং এজেন্টে কপি করুন:" + +#: website/public/get-started/index.html:816 +msgctxt "page:get-started/index.html" +msgid "For one specific client, add its setup ID:" +msgstr "নির্দিষ্ট একটি ক্লায়েন্টের জন্য এর সেটআপ আইডি যোগ করুন:" + +#. {ph0}: y +#: website/public/get-started/index.html:831 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"If npm asks to download the package, type {ph0} and press Enter. In REA's " +"client list, use the arrow keys to move, Space to select your client and " +"Enter to continue." +msgstr "" +"npm প্যাকেজ ডাউনলোডের অনুমতি চাইলে {ph0} লিখে Enter চাপুন। REA-র ক্লায়েন্ট " +"তালিকায় সরাতে অ্যারো কী, আপনার ক্লায়েন্ট বাছতে Space এবং এগোতে Enter " +"ব্যবহার করুন।" + +#: website/public/get-started/index.html:842 +msgctxt "page:get-started/index.html" +msgid "" +"MCP is the connection that lets your agent call REA. The skill gives it a " +"workflow for investigating software." +msgstr "" +"MCP হলো সেই সংযোগ, যার মাধ্যমে আপনার এজেন্ট REA ব্যবহার করতে পারে। স্কিলটি " +"সফটওয়্যার অনুসন্ধানের একটি কর্মপদ্ধতি দেয়।" + +#: website/public/get-started/index.html:846 +msgctxt "page:get-started/index.html" +msgid "" +"For the first exercise, you can skip the optional Hopper installation. " +"Restart your client when setup finishes." +msgstr "" +"প্রথম অনুশীলনের জন্য ঐচ্ছিক Hopper ইনস্টল বাদ দিতে পারেন। সেটআপ শেষ হলে " +"আপনার ক্লায়েন্ট রিস্টার্ট করুন।" + +#. {ph0}: codex +#. {ph1}: "healthy": true +#: website/public/get-started/index.html:879 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Replace {ph0} with your client's setup ID. A successful check reports {ph1}." +" Then ask your agent:" +msgstr "" +"{ph0}-এর জায়গায় আপনার ক্লায়েন্টের সেটআপ আইডি দিন। যাচাই সফল হলে {ph1} " +"দেখাবে। তারপর আপনার এজেন্টকে জিজ্ঞেস করুন:" + +#: website/public/get-started/index.html:885 +msgctxt "page:get-started/index.html" +msgid "Check that REA is connected and show me which REA tools you can use." +msgstr "" +"REA যুক্ত হয়েছে কি না যাচাই করো এবং তুমি REA-র কোন কোন টুল ব্যবহার করতে " +"পারো তা দেখাও।" + +#: website/public/get-started/index.html:892 +msgctxt "page:get-started/index.html" +msgid "4. Try your first investigation" +msgstr "৪. আপনার প্রথম অনুসন্ধান করে দেখুন" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:893 +#, python-brace-format +msgctxt "page:get-started/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}Export notes{ph1} " +"বোতাম আছে। Electron ইনস্টল বা চালু না করেই আপনার এজেন্ট এর কোড পরীক্ষা করতে " +"পারে।" + +#: website/public/get-started/index.html:900 +msgctxt "page:get-started/index.html" +msgid "Your coding agent" +msgstr "আপনার কোডিং এজেন্ট" + +#. {ph0}: +#. {ph2}: +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip +#. {ph4}: notes.csv +#. {ph5}: +#. {ph6}: +#: website/public/get-started/index.html:910 +#, python-brace-format +msgctxt "page:get-started/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} একটি নতুন উদাহরণ ফোল্ডারে ডাউনলোড করে আনজিপ করো। " +"Export notes-এ ক্লিক করলে কী হয় তা REA দিয়ে খুঁজে বের করো। {ph4} কোথায় " +"লেখা হয়, এতে কোন কোন ফিল্ড থাকে এবং সংশ্লিষ্ট ফাইল ও লাইনগুলো " +"দেখাও।{ph5}{ph6}{ph7}" + +#: website/public/get-started/index.html:924 +msgctxt "page:get-started/index.html" +msgid "Look for a short explanation with file and line references:" +msgstr "ফাইল ও লাইনের রেফারেন্সসহ একটি সংক্ষিপ্ত ব্যাখ্যা দেখুন:" + +#. {ph0}: notes:export +#. {ph1}: notes.csv +#. {ph2}: id +#. {ph3}: title +#: website/public/get-started/index.html:926 +#, python-brace-format +msgctxt "page:get-started/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 হিসেবে সাজিয়ে " +"ব্যবহারকারীর Downloads ফোল্ডারে {ph1} লেখে। কলামগুলো হলো {ph2} ও {ph3}।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:933 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Check a prediction in the guided exercise →{ph1}" +msgstr "{ph0}নির্দেশিত অনুশীলনে একটি অনুমান যাচাই করুন →{ph1}" + +#: website/public/get-started/index.html:939 +msgctxt "page:get-started/index.html" +msgid "Download the example yourself, or use your own app" +msgstr "উদাহরণটি নিজে ডাউনলোড করুন, অথবা নিজের অ্যাপ ব্যবহার করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:942 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Download example ZIP{ph1}" +msgstr "{ph0}উদাহরণ ZIP ডাউনলোড করুন{ph1}" + +#. {ph0}: notes-example +#: website/public/get-started/index.html:950 +#, python-brace-format +msgctxt "page:get-started/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} ফোল্ডারের পাথ এবং একই এক্সপোর্ট প্রশ্নটি দিন।" + +#. {ph0}: /absolute/path/to/app +#: website/public/get-started/index.html:956 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Use REA to inspect the app at {ph0}. Find how it exports data and show the " +"relevant files and lines." +msgstr "" +"{ph0}-এ থাকা অ্যাপটি REA দিয়ে পরীক্ষা করো। এটি কীভাবে ডেটা এক্সপোর্ট করে " +"খুঁজে বের করো এবং সংশ্লিষ্ট ফাইল ও লাইনগুলো দেখাও।" + +#: website/public/get-started/index.html:986 +msgctxt "page:get-started/index.html" +msgid "Analyze another kind of software" +msgstr "অন্য ধরনের সফটওয়্যার বিশ্লেষণ করুন" + +#: website/public/get-started/index.html:987 +msgctxt "page:get-started/index.html" +msgid "" +"Choose the section for your target. A provider is the local analysis tool " +"REA uses for that kind of software." +msgstr "" +"আপনার টার্গেটের অংশটি বেছে নিন। প্রোভাইডার হলো সেই লোকাল বিশ্লেষণ টুল, যা " +"REA ওই ধরনের সফটওয়্যারের জন্য ব্যবহার করে।" + +#: website/public/get-started/index.html:992 +msgctxt "page:get-started/index.html" +msgid "Native executables and libraries · Hopper, Ghidra or IDA" +msgstr "নেটিভ এক্সিকিউটেবল ও লাইব্রেরি · Hopper, Ghidra বা IDA" + +#: website/public/get-started/index.html:995 +msgctxt "page:get-started/index.html" +msgid "" +"Install one analysis tool on the computer running REA. The host is your " +"operating system; the target is the program you want to inspect." +msgstr "" +"যে কম্পিউটারে REA চলে সেখানে একটি বিশ্লেষণ টুল ইনস্টল করুন। হোস্ট হলো আপনার " +"অপারেটিং সিস্টেম; টার্গেট হলো যে প্রোগ্রাম আপনি পরীক্ষা করতে চান।" + +#: website/public/get-started/index.html:1004 +msgctxt "page:get-started/index.html" +msgid "Provider" +msgstr "প্রোভাইডার" + +#: website/public/get-started/index.html:1013 +msgctxt "page:get-started/index.html" +msgid "Unavailable" +msgstr "উপলব্ধ নয়" + +#: website/public/get-started/index.html:1015 +msgctxt "page:get-started/index.html" +msgid "Supported distributions" +msgstr "সমর্থিত ডিস্ট্রিবিউশন" + +#: website/public/get-started/index.html:1019 +msgctxt "page:get-started/index.html" +msgid "x64 · experimental" +msgstr "x64 · পরীক্ষামূলক" + +#: website/public/get-started/index.html:1025 +msgctxt "page:get-started/index.html" +msgid "Verified profiles" +msgstr "যাচাই করা প্রোফাইল" + +#: website/public/get-started/index.html:1026 +msgctxt "page:get-started/index.html" +msgid "Verified headless profile" +msgstr "যাচাই করা হেডলেস প্রোফাইল" + +#: website/public/get-started/index.html:1027 +msgctxt "page:get-started/index.html" +msgid "See provider guide" +msgstr "প্রোভাইডার গাইড দেখুন" + +#: website/public/get-started/index.html:1033 +msgctxt "page:get-started/index.html" +msgid "Hopper · let setup install or connect it" +msgstr "Hopper · সেটআপকে এটি ইনস্টল বা যুক্ত করতে দিন" + +#: website/public/get-started/index.html:1039 +msgctxt "page:get-started/index.html" +msgid "" +"Choose Hopper in setup and review its separate installation plan. On macOS, " +"choose demo mode or activate your license when Hopper first opens. On Linux," +" setup prepares the supported demo and its private display." +msgstr "" +"সেটআপে Hopper বেছে নিন এবং এর আলাদা ইনস্টল পরিকল্পনাটি দেখে নিন। macOS-এ " +"Hopper প্রথমবার খুললে ডেমো মোড বেছে নিন বা আপনার লাইসেন্স সক্রিয় করুন। " +"Linux-এ সেটআপ সমর্থিত ডেমো ও এর প্রাইভেট ডিসপ্লে প্রস্তুত করে।" + +#: website/public/get-started/index.html:1045 +msgctxt "page:get-started/index.html" +msgid "" +"Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " +"Omarchy. Hopper is commercial software; its demo has vendor-defined limits." +msgstr "" +"Linux হোস্ট: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS বা " +"Omarchy। Hopper বাণিজ্যিক সফটওয়্যার; এর ডেমোর সীমা নির্মাতা নির্ধারণ করে।" + +#: website/public/get-started/index.html:1064 +msgctxt "page:get-started/index.html" +msgid "" +"If macOS asks for Automation permission, allow the app that starts REA in " +"System Settings → Privacy & Security → Automation, then retry." +msgstr "" +"macOS Automation অনুমতি চাইলে System Settings → Privacy & Security → " +"Automation-এ গিয়ে যে অ্যাপ REA চালু করে সেটিকে অনুমতি দিন, তারপর আবার " +"চেষ্টা করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1069 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Hopper setup and troubleshooting{ph1}" +msgstr "{ph0}Hopper সেটআপ ও সমস্যা সমাধান{ph1}" + +#: website/public/get-started/index.html:1077 +msgctxt "page:get-started/index.html" +msgid "Ghidra · install the free analysis tool and Java" +msgstr "Ghidra · বিনামূল্যের বিশ্লেষণ টুল ও Java ইনস্টল করুন" + +#: website/public/get-started/index.html:1081 +msgctxt "page:get-started/index.html" +msgid "" +"Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " +"package matching your computer's architecture." +msgstr "" +"Java কম্পাইলারসহ 64-বিট JDK 21 বা নতুনতর সংস্করণ ইনস্টল করুন। আপনার " +"কম্পিউটারের আর্কিটেকচারের সঙ্গে মেলে এমন প্যাকেজ বেছে নিন।" + +#. {ph0}: ghidra_…_PUBLIC_….zip +#: website/public/get-started/index.html:1086 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Download Ghidra 12.1.4 from the release's Assets list and extract the {ph0} " +"archive. Choose the release archive, not “Source code”." +msgstr "" +"রিলিজের Assets তালিকা থেকে Ghidra 12.1.4 ডাউনলোড করে {ph0} আর্কাইভটি " +"এক্সট্রাক্ট করুন। “Source code” নয়, রিলিজ আর্কাইভটি বেছে নিন।" + +#. {ph0}: ghidraRun +#. {ph1}: ghidraRun.bat +#. {ph2}: GHIDRA_INSTALL_DIR +#: website/public/get-started/index.html:1091 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Find the extracted folder containing {ph0} or {ph1}. Use that folder for " +"{ph2}." +msgstr "" +"এক্সট্রাক্ট করা যে ফোল্ডারে {ph0} বা {ph1} আছে সেটি খুঁজুন। {ph2}-এর জন্য " +"সেই ফোল্ডার ব্যবহার করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1097 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" +msgstr "" +"{ph0}একটি JDK ডাউনলোড করুন{ph1} · {ph2}Ghidra 12.1.4 ডাউনলোড করুন{ph3}" + +#. {ph0}: java.home +#. {ph1}: JAVA_HOME +#: website/public/get-started/index.html:1107 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Check Java. The first command prints {ph0}; use that folder for {ph1}. The " +"second confirms the compiler is installed:" +msgstr "" +"Java যাচাই করুন। প্রথম কমান্ডটি {ph0} দেখায়; {ph1}-এর জন্য সেই ফোল্ডার " +"ব্যবহার করুন। দ্বিতীয়টি নিশ্চিত করে যে কম্পাইলার ইনস্টল করা আছে:" + +#: website/public/get-started/index.html:1174 +msgctxt "page:get-started/index.html" +msgid "" +"Replace both paths with your existing installations. For a fresh macOS or " +"Linux arm64 installation, build the native decompiler for your computer " +"before continuing." +msgstr "" +"দুটি পাথই আপনার বিদ্যমান ইনস্টলেশন দিয়ে বদলে দিন। নতুন macOS বা Linux arm64" +" ইনস্টলেশনে এগোনোর আগে আপনার কম্পিউটারের জন্য নেটিভ ডিকম্পাইলার বিল্ড করুন।" + +#: website/public/get-started/index.html:1180 +msgctxt "page:get-started/index.html" +msgid "Build Ghidra's native decompiler" +msgstr "Ghidra-র নেটিভ ডিকম্পাইলার বিল্ড করুন" + +#: website/public/get-started/index.html:1181 +msgctxt "page:get-started/index.html" +msgid "" +"On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " +"guide for your computer:" +msgstr "" +"macOS-এ বিল্ডের জন্য Xcode Command Line Tools, make ও bison লাগে। আপনার " +"কম্পিউটারের গাইডটি ব্যবহার করুন:" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1186 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}macOS · Intel{ph1}" +msgstr "{ph0}macOS · Intel{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1192 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}macOS · Apple Silicon{ph1}" +msgstr "{ph0}macOS · Apple Silicon{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1198 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Linux arm64 · native build instructions{ph1}" +msgstr "{ph0}Linux arm64 · নেটিভ বিল্ডের নির্দেশনা{ph1}" + +#: website/public/get-started/index.html:1206 +msgctxt "page:get-started/index.html" +msgid "Then check Ghidra and save its paths for your client:" +msgstr "" +"তারপর Ghidra যাচাই করুন এবং আপনার ক্লায়েন্টের জন্য এর পাথগুলো সংরক্ষণ করুন:" + +#: website/public/get-started/index.html:1223 +msgctxt "page:get-started/index.html" +msgid "" +"Keep these commands in the same terminal session. Rerun setup after setting " +"the paths, approve the updated client configuration, then restart your " +"agent." +msgstr "" +"এই কমান্ডগুলো একই টার্মিনাল সেশনে চালান। পাথ সেট করার পর আবার সেটআপ চালান, " +"হালনাগাদ ক্লায়েন্ট কনফিগারেশন অনুমোদন করুন, তারপর এজেন্ট রিস্টার্ট করুন।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#: website/public/get-started/index.html:1228 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra " +"guide{ph3}" +msgstr "" +"{ph0}Ghidra সেটআপ ও আর্কিটেকচারের প্রয়োজনীয়তা{ph1} · {ph2}Windows Ghidra " +"গাইড{ph3}" + +#: website/public/get-started/index.html:1241 +msgctxt "page:get-started/index.html" +msgid "IDA · connect an existing installation" +msgstr "IDA · বিদ্যমান ইনস্টলেশন যুক্ত করুন" + +#: website/public/get-started/index.html:1242 +msgctxt "page:get-started/index.html" +msgid "" +"Use the IDA provider guide to prepare an upstream MCP registration. Choose " +"an attached GUI with the original binary open, or a headless supervisor that" +" opens a private database." +msgstr "" +"আপস্ট্রিম MCP রেজিস্ট্রেশন প্রস্তুত করতে IDA প্রোভাইডার গাইড ব্যবহার করুন। " +"মূল বাইনারি খোলা অবস্থায় একটি সংযুক্ত GUI, অথবা প্রাইভেট ডেটাবেস খোলে এমন " +"একটি হেডলেস সুপারভাইজার বেছে নিন।" + +#: website/public/get-started/index.html:1247 +msgctxt "page:get-started/index.html" +msgid "" +"Verified profiles include the Windows legacy GUI and headless supervisor, " +"plus a macOS arm64 headless supervisor with IDA Professional 9.1. The " +"optional native GUI bridge has its own version and platform requirements." +msgstr "" +"যাচাই করা প্রোফাইলের মধ্যে আছে Windows লিগ্যাসি GUI ও হেডলেস সুপারভাইজার, " +"এবং IDA Professional 9.1-সহ একটি macOS arm64 হেডলেস সুপারভাইজার। ঐচ্ছিক " +"নেটিভ GUI ব্রিজের নিজস্ব সংস্করণ ও প্ল্যাটফর্মের প্রয়োজনীয়তা আছে।" + +#. {ph0}: +#. {ph1}: +#. {ph2}: 6.4.0 +#: website/public/get-started/index.html:1253 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"The macOS headless profile and native GUI bridge require a {ph0}REA source " +"build{ph1} or a release containing those changes. npm {ph2} does not include" +" them." +msgstr "" +"macOS হেডলেস প্রোফাইল ও নেটিভ GUI ব্রিজের জন্য {ph0}REA সোর্স বিল্ড{ph1} বা " +"এই পরিবর্তনগুলো থাকা কোনো রিলিজ লাগবে। npm {ph2}-এ এগুলো নেই।" + +#. {ph0}: node scripts/rea.mjs doctor --provider ida --json +#. {ph1}: node scripts/rea.mjs setup +#. {ph2}: npx +#: website/public/get-started/index.html:1262 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands " +"below." +msgstr "" +"বিল্ড করা চেকআউট থেকে নিচের {ph2} কমান্ডগুলোর বদলে {ph0} ও {ph1} চালান।" + +#: website/public/get-started/index.html:1269 +msgctxt "page:get-started/index.html" +msgid "Prepare the IDA registration file" +msgstr "IDA রেজিস্ট্রেশন ফাইল প্রস্তুত করুন" + +#. {ph0}: ida-mcp.json +#. {ph1}: .txt +#: website/public/get-started/index.html:1270 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Install and configure the upstream server using the IDA guide below. Then " +"save its working registration as {ph0} in a text editor. On Windows, choose " +"“All files” when saving in Notepad so it doesn't add {ph1}." +msgstr "" +"নিচের IDA গাইড অনুযায়ী আপস্ট্রিম সার্ভার ইনস্টল ও কনফিগার করুন। তারপর একটি " +"টেক্সট এডিটরে এর কার্যকর রেজিস্ট্রেশনটি {ph0} নামে সংরক্ষণ করুন। Windows-এ " +"Notepad-এ সংরক্ষণের সময় “All files” বেছে নিন, যাতে এটি {ph1} যোগ না করে।" + +#. {ph0}: idb_open +#. {ph1}: idb_list +#. {ph2}: idb_close +#: website/public/get-started/index.html:1277 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"For a headless supervisor providing {ph0}, {ph1} and {ph2}, the file can " +"look like this:" +msgstr "" +"{ph0}, {ph1} ও {ph2} দেয় এমন হেডলেস সুপারভাইজারের জন্য ফাইলটি এরকম হতে " +"পারে:" + +#. {ph0}: command +#. {ph1}: args +#. {ph2}: env +#: website/public/get-started/index.html:1300 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"For an attached legacy 1.4.0 GUI server, copy its working {ph0}, {ph1} and " +"optional {ph2} into the file. Open the original binary in IDA and start its " +"upstream plugin before asking REA to inspect it." +msgstr "" +"সংযুক্ত লিগ্যাসি 1.4.0 GUI সার্ভারের জন্য এর কার্যকর {ph0}, {ph1} ও ঐচ্ছিক " +"{ph2} ফাইলে কপি করুন। REA-কে পরীক্ষা করতে বলার আগে IDA-তে মূল বাইনারি খুলে " +"এর আপস্ট্রিম প্লাগইন চালু করুন।" + +#: website/public/get-started/index.html:1342 +msgctxt "page:get-started/index.html" +msgid "" +"Use the JSON registration file you prepared with the provider guide, then " +"rerun setup and restart your agent." +msgstr "" +"প্রোভাইডার গাইড দিয়ে প্রস্তুত করা JSON রেজিস্ট্রেশন ফাইলটি ব্যবহার করুন, " +"তারপর আবার সেটআপ চালিয়ে এজেন্ট রিস্টার্ট করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1346 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" +msgstr "{ph0}IDA প্রোফাইল, রেজিস্ট্রেশনের উদাহরণ ও যাচাই করা প্ল্যাটফর্ম{ph1}" + +#: website/public/get-started/index.html:1354 +msgctxt "page:get-started/index.html" +msgid "" +"Once connected, give your agent the original executable's full path and name" +" your provider:" +msgstr "" +"সংযোগ হয়ে গেলে এজেন্টকে মূল এক্সিকিউটেবলের পূর্ণ পাথ দিন এবং আপনার " +"প্রোভাইডারের নাম বলুন:" + +#. {ph0}: /absolute/path/to/program +#: website/public/get-started/index.html:1359 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Use REA with my configured provider to inspect {ph0}. List its functions and" +" strings, then explain the part that handles user input with references to " +"the code." +msgstr "" +"আমার কনফিগার করা প্রোভাইডারসহ REA দিয়ে {ph0} পরীক্ষা করো। এর ফাংশন ও " +"স্ট্রিংগুলোর তালিকা দাও, তারপর ব্যবহারকারীর ইনপুট সামলানোর অংশটি কোডের " +"রেফারেন্সসহ ব্যাখ্যা করো।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1366 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Follow a native analysis example{ph1}" +msgstr "{ph0}একটি নেটিভ বিশ্লেষণের উদাহরণ অনুসরণ করুন{ph1}" + +#: website/public/get-started/index.html:1371 +msgctxt "page:get-started/index.html" +msgid "Websites, Android, .NET, firmware and other targets" +msgstr "ওয়েবসাইট, Android, .NET, ফার্মওয়্যার ও অন্যান্য টার্গেট" + +#: website/public/get-started/index.html:1374 +msgctxt "page:get-started/index.html" +msgid "" +"Open the guide for the target you have. Each guide gives the additional " +"tools, supported hosts and first command." +msgstr "" +"আপনার টার্গেটের গাইডটি খুলুন। প্রতিটি গাইডে অতিরিক্ত টুল, সমর্থিত হোস্ট ও " +"প্রথম কমান্ড দেওয়া আছে।" + +#: website/public/get-started/index.html:1382 +msgctxt "page:get-started/index.html" +msgid "Target" +msgstr "টার্গেট" + +#: website/public/get-started/index.html:1383 +msgctxt "page:get-started/index.html" +msgid "Tools to prepare" +msgstr "যে টুল প্রস্তুত রাখতে হবে" + +#: website/public/get-started/index.html:1384 +msgctxt "page:get-started/index.html" +msgid "Guide" +msgstr "গাইড" + +#: website/public/get-started/index.html:1389 +msgctxt "page:get-started/index.html" +msgid "JavaScript / Electron" +msgstr "JavaScript / Electron" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Open guide{ph1}" +msgstr "{ph0}গাইড খুলুন{ph1}" + +#: website/public/get-started/index.html:1394 +msgctxt "page:get-started/index.html" +msgid "Website" +msgstr "ওয়েবসাইট" + +#: website/public/get-started/index.html:1399 +msgctxt "page:get-started/index.html" +msgid ".NET / Flutter / packages" +msgstr ".NET / Flutter / প্যাকেজ" + +#: website/public/get-started/index.html:1409 +msgctxt "page:get-started/index.html" +msgid "Android APK" +msgstr "Android APK" + +#: website/public/get-started/index.html:1419 +msgctxt "page:get-started/index.html" +msgid "Android device" +msgstr "Android ডিভাইস" + +#: website/public/get-started/index.html:1429 +msgctxt "page:get-started/index.html" +msgid "Android resources" +msgstr "Android রিসোর্স" + +#: website/public/get-started/index.html:1439 +msgctxt "page:get-started/index.html" +msgid "JEB project" +msgstr "JEB প্রজেক্ট" + +#: website/public/get-started/index.html:1449 +msgctxt "page:get-started/index.html" +msgid "Firmware" +msgstr "ফার্মওয়্যার" + +#: website/public/get-started/index.html:1459 +msgctxt "page:get-started/index.html" +msgid "WASM" +msgstr "WASM" + +#: website/public/get-started/index.html:1469 +msgctxt "page:get-started/index.html" +msgid "SQLite database" +msgstr "SQLite ডেটাবেস" + +#: website/public/get-started/index.html:1479 +msgctxt "page:get-started/index.html" +msgid "EVM bytecode" +msgstr "EVM বাইটকোড" + +#: website/public/get-started/index.html:1489 +msgctxt "page:get-started/index.html" +msgid "ELF / Linux crash" +msgstr "ELF / Linux ক্র্যাশ" + +#: website/public/get-started/index.html:1499 +msgctxt "page:get-started/index.html" +msgid "HAR / SAZ / mitmproxy" +msgstr "HAR / SAZ / mitmproxy" + +#: website/public/get-started/index.html:1509 +msgctxt "page:get-started/index.html" +msgid "PCAP / PCAPNG" +msgstr "PCAP / PCAPNG" + +#: website/public/get-started/index.html:1519 +msgctxt "page:get-started/index.html" +msgid "Logic signals" +msgstr "লজিক সিগন্যাল" + +#: website/public/get-started/index.html:1529 +msgctxt "page:get-started/index.html" +msgid "Process behavior" +msgstr "প্রসেসের আচরণ" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#. {ph3}: +#. {ph4}: +#. {ph5}: +#. {ph6}: +#. {ph7}: +#: website/public/get-started/index.html:1541 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"{ph0}Flutter guide{ph1} · {ph2}Packages and resources{ph3} · {ph4}EVM " +"bytecode{ph5} · {ph6}All investigation guides{ph7}" +msgstr "" +"{ph0}Flutter গাইড{ph1} · {ph2}প্যাকেজ ও রিসোর্স{ph3} · {ph4}EVM বাইটকোড{ph5}" +" · {ph6}সব অনুসন্ধান গাইড{ph7}" + +#: website/public/get-started/index.html:1561 +msgctxt "page:get-started/index.html" +msgid "Use REA from a terminal" +msgstr "টার্মিনাল থেকে REA ব্যবহার করুন" + +#: website/public/get-started/index.html:1563 +msgctxt "page:get-started/index.html" +msgid "CLI commands, global installation and curl" +msgstr "CLI কমান্ড, গ্লোবাল ইনস্টল ও curl" + +#. {ph0}: main +#: website/public/get-started/index.html:1660 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Replace {ph0} with a function name or address from the target's function " +"list. Ghidra must be configured first." +msgstr "" +"{ph0}-এর জায়গায় টার্গেটের ফাংশন তালিকা থেকে একটি ফাংশনের নাম বা ঠিকানা " +"দিন। আগে Ghidra কনফিগার করা থাকতে হবে।" + +#: website/public/get-started/index.html:1664 +msgctxt "page:get-started/index.html" +msgid "" +"On macOS or Linux, you can also use the curl installer after preparing " +"Node.js:" +msgstr "" +"macOS বা Linux-এ Node.js প্রস্তুত করার পর curl ইনস্টলারও ব্যবহার করতে পারেন:" + +#. {ph0}: rea setup +#: website/public/get-started/index.html:1682 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Follow the setup prompts to connect your agent. If they don't appear, run " +"{ph0}." +msgstr "" +"এজেন্ট যুক্ত করতে সেটআপের নির্দেশনা অনুসরণ করুন। নির্দেশনা না দেখালে {ph0} " +"চালান।" + +#. {ph0}: rea +#. {ph1}: "$HOME/.local/bin/rea" setup +#: website/public/get-started/index.html:1686 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"If your shell can't find {ph0}, use the executable path printed by the " +"installer. On Linux, the default setup command is {ph1}." +msgstr "" +"আপনার শেল {ph0} খুঁজে না পেলে ইনস্টলারের দেখানো এক্সিকিউটেবল পাথ ব্যবহার " +"করুন। Linux-এ ডিফল্ট সেটআপ কমান্ড হলো {ph1}।" + +#: website/public/get-started/index.html:1702 +msgctxt "page:get-started/index.html" +msgid "" +"Use the client check in step 3 with your setup ID. In editor clients, enable" +" REA in MCP settings and allow its tools in the agent chat." +msgstr "" +"আপনার সেটআপ আইডি দিয়ে ধাপ ৩-এর ক্লায়েন্ট যাচাই ব্যবহার করুন। এডিটর " +"ক্লায়েন্টে MCP সেটিংসে REA চালু করুন এবং এজেন্ট চ্যাটে এর টুলগুলোকে অনুমতি " +"দিন।" + +#: website/public/get-started/index.html:1730 +msgctxt "page:get-started/index.html" +msgid "Windows, WSL and paths with spaces" +msgstr "Windows, WSL ও স্পেসযুক্ত পাথ" + +#: website/public/get-started/index.html:1731 +msgctxt "page:get-started/index.html" +msgid "" +"Use Windows PowerShell for Windows clients and analysis tools. If your agent" +" runs inside WSL, install Node.js and REA inside that Linux environment and " +"use Linux paths there. Headless providers run on the same host as REA." +msgstr "" +"Windows ক্লায়েন্ট ও বিশ্লেষণ টুলের জন্য Windows PowerShell ব্যবহার করুন। " +"আপনার এজেন্ট WSL-এর ভেতরে চললে সেই Linux পরিবেশেই Node.js ও REA ইনস্টল করুন " +"এবং সেখানে Linux পাথ ব্যবহার করুন। হেডলেস প্রোভাইডার REA-র একই হোস্টে চলে।" + +#: website/public/get-started/index.html:1740 +msgctxt "page:get-started/index.html" +msgid "Windows setup command:" +msgstr "Windows সেটআপ কমান্ড:" + +#: website/public/get-started/index.html:1757 +msgctxt "page:get-started/index.html" +msgid "Update or remove REA" +msgstr "REA হালনাগাদ বা অপসারণ করুন" + +#: website/public/get-started/index.html:1758 +msgctxt "page:get-started/index.html" +msgid "" +"To refresh your agent connection, run the latest setup command again, review" +" its plan and restart your client." +msgstr "" +"এজেন্টের সংযোগ রিফ্রেশ করতে সর্বশেষ সেটআপ কমান্ডটি আবার চালান, এর পরিকল্পনা " +"দেখে নিন এবং ক্লায়েন্ট রিস্টার্ট করুন।" + +#. {ph0}: rea update +#. {ph1}: npx rea-agents@latest uninstall +#: website/public/get-started/index.html:1776 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"If you installed the global CLI, update it with {ph0}. Use {ph1} to remove " +"REA's client configuration and skill." +msgstr "" +"গ্লোবাল CLI ইনস্টল করে থাকলে {ph0} দিয়ে হালনাগাদ করুন। REA-র ক্লায়েন্ট " +"কনফিগারেশন ও স্কিল সরাতে {ph1} ব্যবহার করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/get-started/index.html:1782 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "{ph0}Update and uninstall details{ph1}" +msgstr "{ph0}হালনাগাদ ও আনইনস্টলের বিস্তারিত{ph1}" + +#: website/public/get-started/index.html:328 +msgctxt "page:get-started/index.html" +msgid "Copy Windows REA setup command" +msgstr "Windows REA সেটআপ কমান্ড কপি করুন" + +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 +msgctxt "page:get-started/index.html" +msgid "Copy command" +msgstr "কমান্ড কপি করুন" + +#: website/public/get-started/index.html:901 +msgctxt "page:get-started/index.html" +msgid "Copy Notes investigation prompt" +msgstr "Notes অনুসন্ধানের প্রম্পট কপি করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:220 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}How it works{ph1}" +msgstr "{ph0}যেভাবে কাজ করে{ph1}" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:223 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Showcases{ph1}" +msgstr "{ph0}শোকেস{ph1}" + +#: website/public/index.html:236 +msgctxt "page:index.html" +msgid "" +"Ask your coding agent about an app, a game or a website. REA gives it the " +"tools to inspect the code behind the answer." +msgstr "" +"আপনার কোডিং এজেন্টকে কোনো অ্যাপ, গেম বা ওয়েবসাইট সম্পর্কে জিজ্ঞেস করুন। " +"উত্তরের পেছনের কোড পরীক্ষা করার টুল REA তাকে দেয়।" + +#: website/public/index.html:241 +msgctxt "page:index.html" +msgid "Get started" +msgstr "শুরু করুন" + +#: website/public/index.html:242 +msgctxt "page:index.html" +msgid "See an example ↓" +msgstr "একটি উদাহরণ দেখুন ↓" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:245 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." +msgstr "{ph0}শোকেস →{ph1} — অনুসন্ধান ও ইন্টারঅ্যাক্টিভ ডেমো।" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:249 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." +msgstr "{ph0}ব্লগ →{ph1} — পদ্ধতি ও পুনর্গঠনের নোট।" + +#: website/public/index.html:302 +msgctxt "page:index.html" +msgid "Setup for your platform:" +msgstr "আপনার প্ল্যাটফর্মের সেটআপ:" + +#. {ph0}: +#. {ph1}: curl +#. {ph2}: +#: website/public/index.html:313 +#, python-brace-format +msgctxt "page:index.html" +msgid "Other install options: {ph0}{ph1} →{ph2}" +msgstr "অন্যান্য ইনস্টল বিকল্প: {ph0}{ph1} →{ph2}" + +#: website/public/index.html:332 +msgctxt "page:index.html" +msgid "How it works" +msgstr "যেভাবে কাজ করে" + +#: website/public/index.html:334 +msgctxt "page:index.html" +msgid "" +"Reverse engineering means learning how software works by inspecting the " +"program itself. With REA, your agent can follow the code, explain a feature " +"and help you rebuild it." +msgstr "" +"রিভার্স ইঞ্জিনিয়ারিং মানে প্রোগ্রামটি নিজে পরীক্ষা করে সফটওয়্যার কীভাবে " +"কাজ করে তা জানা। REA থাকলে আপনার এজেন্ট কোড অনুসরণ করে একটি ফিচার ব্যাখ্যা " +"করতে এবং সেটি নতুন করে তৈরি করতে সাহায্য করতে পারে।" + +#: website/public/index.html:341 +msgctxt "page:index.html" +msgid "Ask about one feature" +msgstr "একটি ফিচার সম্পর্কে জিজ্ঞেস করুন" + +#: website/public/index.html:342 +msgctxt "page:index.html" +msgid "Give your agent a program or page and a question." +msgstr "আপনার এজেন্টকে একটি প্রোগ্রাম বা পেজ এবং একটি প্রশ্ন দিন।" + +#: website/public/index.html:345 +msgctxt "page:index.html" +msgid "Inspect the program" +msgstr "প্রোগ্রামটি পরীক্ষা করুন" + +#: website/public/index.html:346 +msgctxt "page:index.html" +msgid "REA returns code, references and runtime observations." +msgstr "REA কোড, রেফারেন্স ও রানটাইম পর্যবেক্ষণ ফেরত দেয়।" + +#: website/public/index.html:349 +msgctxt "page:index.html" +msgid "Explain it, then try a change" +msgstr "ব্যাখ্যা করুন, তারপর একটি পরিবর্তন করে দেখুন" + +#: website/public/index.html:350 +msgctxt "page:index.html" +msgid "Your agent uses the findings to explain or rebuild the feature." +msgstr "" +"আপনার এজেন্ট ফলাফল ব্যবহার করে ফিচারটি ব্যাখ্যা করে বা নতুন করে তৈরি করে।" + +#: website/public/index.html:356 +msgctxt "page:index.html" +msgid "See the full Calculator investigation" +msgstr "Calculator-এর পূর্ণ অনুসন্ধান দেখুন" + +#. {ph0}: 200 + 10% +#: website/public/index.html:357 +#, python-brace-format +msgctxt "page:index.html" +msgid "Why does Calculator give 220 for {ph0}?" +msgstr "{ph0}-এর জন্য Calculator কেন 220 দেয়?" + +#: website/public/index.html:366 +msgctxt "page:index.html" +msgid "Follow the instructions step by step" +msgstr "ধাপে ধাপে নির্দেশনা অনুসরণ করুন" + +#: website/public/index.html:517 +msgctxt "page:index.html" +msgid "Ask your agent the same question" +msgstr "আপনার এজেন্টকে একই প্রশ্ন জিজ্ঞেস করুন" + +#: website/public/index.html:584 +msgctxt "page:index.html" +msgid "" +"Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " +"button." +msgstr "" +"চলুন দুটি উদাহরণ দেখি: একটি গেমের গতি বদলানো, তারপর Calculator-এর % বোতাম " +"নতুন করে তৈরি করা।" + +#: website/public/index.html:592 +msgctxt "page:index.html" +msgid "" +"The game gets faster as you run. To rebuild it with a speed control, we " +"first need to find out how the speed changes." +msgstr "" +"দৌড়াতে থাকলে গেমটি দ্রুত হয়। গতি নিয়ন্ত্রণসহ এটি নতুন করে তৈরি করতে " +"প্রথমে জানতে হবে গতি কীভাবে বদলায়।" + +#: website/public/index.html:598 +msgctxt "page:index.html" +msgid "1. Ask about the speed" +msgstr "১. গতি সম্পর্কে জিজ্ঞেস করুন" + +#. {ph0}: +#: website/public/index.html:601 +#, python-brace-format +msgctxt "page:index.html" +msgid "" +"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" +msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}উদাহরণ প্রশ্ন · ডাইনোসর গেম" + +#: website/public/index.html:624 +msgctxt "page:index.html" +msgid "2. Find the speed rule" +msgstr "২. গতির নিয়মটি খুঁজুন" + +#: website/public/index.html:625 +msgctxt "page:index.html" +msgid "" +"REA lets the agent read the game’s running code. The speed starts at 6 and " +"increases a little each update while it is below 13." +msgstr "" +"REA এজেন্টকে গেমের চলমান কোড পড়তে দেয়। গতি 6 থেকে শুরু হয় এবং 13-এর নিচে " +"থাকা পর্যন্ত প্রতি আপডেটে একটু করে বাড়ে।" + +#: website/public/index.html:632 +msgctxt "page:index.html" +msgid "3. Play the result" +msgstr "৩. ফলাফলটি খেলে দেখুন" + +#: website/public/index.html:633 +msgctxt "page:index.html" +msgid "" +"We rebuilt that rule in the mini-game below and added a speed slider. Press " +"Play, then choose your own speed." +msgstr "" +"আমরা নিচের মিনি-গেমে সেই নিয়মটি নতুন করে তৈরি করেছি এবং একটি গতির স্লাইডার " +"যোগ করেছি। Play চাপুন, তারপর নিজের পছন্দের গতি বেছে নিন।" + +#: website/public/index.html:698 +msgctxt "page:index.html" +msgid "" +"Enable JavaScript to play. You can still read the rule and open the source " +"code below." +msgstr "" +"খেলতে JavaScript চালু করুন। তবুও আপনি নিয়মটি পড়তে এবং নিচের সোর্স কোড " +"খুলতে পারবেন।" + +#: website/public/index.html:730 +msgctxt "page:index.html" +msgid "" +"Start at 6. Add 0.001 each update without a collision, while speed is below " +"13." +msgstr "" +"6 থেকে শুরু করুন। গতি 13-এর নিচে থাকা পর্যন্ত সংঘর্ষ ছাড়া প্রতি আপডেটে " +"0.001 যোগ করুন।" + +#: website/public/index.html:816 +msgctxt "page:index.html" +msgid "" +"The % button does different things after + and ×. Let’s find both rules and " +"try them in a small calculator." +msgstr "" +"+ ও ×-এর পরে % বোতাম ভিন্ন ভিন্ন কাজ করে। চলুন দুটি নিয়মই খুঁজে একটি ছোট " +"ক্যালকুলেটরে চেষ্টা করে দেখি।" + +#: website/public/index.html:822 +msgctxt "page:index.html" +msgid "1. Ask about the % button" +msgstr "১. % বোতাম সম্পর্কে জিজ্ঞেস করুন" + +#. {ph0}: +#: website/public/index.html:825 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" +msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}উদাহরণ প্রশ্ন · Calculator" + +#: website/public/index.html:848 +msgctxt "page:index.html" +msgid "2. Find both rules" +msgstr "২. দুটি নিয়মই খুঁজুন" + +#: website/public/index.html:849 +msgctxt "page:index.html" +msgid "" +"REA helps the agent read the code behind the % button. It applies two " +"different rules:" +msgstr "" +"REA এজেন্টকে % বোতামের পেছনের কোড পড়তে সাহায্য করে। এটি দুটি ভিন্ন নিয়ম " +"প্রয়োগ করে:" + +#: website/public/index.html:870 +msgctxt "page:index.html" +msgid "3. Try the % button" +msgstr "৩. % বোতাম চেপে দেখুন" + +#: website/public/index.html:871 +msgctxt "page:index.html" +msgid "We recreated both rules below. Choose + or ×, press %, then press =." +msgstr "" +"আমরা নিচে দুটি নিয়মই পুনরায় তৈরি করেছি। + বা × বেছে নিন, % চাপুন, তারপর = " +"চাপুন।" + +#: website/public/index.html:1034 +msgctxt "page:index.html" +msgid "REA case studies." +msgstr "REA কেস স্টাডি।" + +#: website/public/index.html:1035 +msgctxt "page:index.html" +msgid "" +"Explore a feature in a released app or game, with code and checked results." +msgstr "" +"প্রকাশিত কোনো অ্যাপ বা গেমের একটি ফিচার কোড ও যাচাই করা ফলাফলসহ ঘুরে দেখুন।" + +#: website/public/index.html:1044 +msgctxt "page:index.html" +msgid "Android · APK analysis" +msgstr "Android · APK বিশ্লেষণ" + +#: website/public/index.html:1045 +msgctxt "page:index.html" +msgid "How an authenticator generates a login code" +msgstr "একটি অথেন্টিকেটর কীভাবে লগইন কোড তৈরি করে" + +#: website/public/index.html:1046 +msgctxt "page:index.html" +msgid "" +"Trace Aegis's six-digit login code through its released APK, then move a " +"demo clock to see why it changes every 30 seconds." +msgstr "" +"Aegis-এর প্রকাশিত APK-তে এর ছয় অঙ্কের লগইন কোড অনুসরণ করুন, তারপর একটি ডেমো" +" ঘড়ি সরিয়ে দেখুন কেন এটি প্রতি 30 সেকেন্ডে বদলায়।" + +#: website/public/index.html:1050 +msgctxt "page:index.html" +msgid "Read the Android case study" +msgstr "Android কেস স্টাডি পড়ুন" + +#: website/public/index.html:1055 +msgctxt "page:index.html" +msgid "Electron · Feature tracing" +msgstr "Electron · ফিচার ট্রেসিং" + +#: website/public/index.html:1056 +msgctxt "page:index.html" +msgid "How Notion copies text and HTML" +msgstr "Notion কীভাবে টেক্সট ও HTML কপি করে" + +#: website/public/index.html:1057 +msgctxt "page:index.html" +msgid "" +"Follow Notion's packaged JavaScript to the system clipboard and see how a " +"copy preserves rich block data." +msgstr "" +"Notion-এর প্যাকেজ করা JavaScript সিস্টেম ক্লিপবোর্ড পর্যন্ত অনুসরণ করুন এবং " +"দেখুন কপি করার সময় সমৃদ্ধ ব্লক ডেটা কীভাবে সংরক্ষিত থাকে।" + +#: website/public/index.html:1061 +msgctxt "page:index.html" +msgid "Read the Notion case study" +msgstr "Notion কেস স্টাডি পড়ুন" + +#: website/public/index.html:1066 +msgctxt "page:index.html" +msgid "Native · Reconstruction" +msgstr "নেটিভ · পুনর্গঠন" + +#: website/public/index.html:1067 +msgctxt "page:index.html" +msgid "DX-Ball's sound-pan calculation" +msgstr "DX-Ball-এর সাউন্ড-প্যান হিসাব" + +#: website/public/index.html:1068 +msgctxt "page:index.html" +msgid "" +"Recover how a ball's position becomes left/right sound in a 1996 Windows " +"game." +msgstr "" +"১৯৯৬ সালের একটি Windows গেমে বলের অবস্থান কীভাবে বাঁ/ডান শব্দে পরিণত হয় তা " +"উদ্ধার করুন।" + +#: website/public/index.html:1072 +msgctxt "page:index.html" +msgid "Read the DX-Ball case study" +msgstr "DX-Ball কেস স্টাডি পড়ুন" + +#: website/public/index.html:1099 +msgctxt "page:index.html" +msgid "Choose your target." +msgstr "আপনার টার্গেট বেছে নিন।" + +#: website/public/index.html:1100 +msgctxt "page:index.html" +msgid "" +"These guides cover setup and a first investigation for each kind of " +"software." +msgstr "" +"এই গাইডগুলোতে প্রতিটি ধরনের সফটওয়্যারের সেটআপ ও প্রথম অনুসন্ধান দেখানো " +"হয়েছে।" + +#: website/public/index.html:1132 +msgctxt "page:index.html" +msgid "Try a larger project" +msgstr "একটি বড় প্রজেক্ট চেষ্টা করুন" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:1201 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Read the FAQ{ph1} — setup and common questions." +msgstr "{ph0}FAQ পড়ুন{ph1} — সেটআপ ও সাধারণ প্রশ্ন।" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:1204 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." +msgstr "" +"{ph0}Discord-এ যোগ দিন{ph1} — সাহায্য নিন এবং আপনার অনুসন্ধান নিয়ে আলোচনা " +"করুন।" + +#. {ph0}: +#. {ph1}: +#: website/public/index.html:1208 +#, python-brace-format +msgctxt "page:index.html" +msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." +msgstr "{ph0}GitHub issues{ph1} — বাগ রিপোর্ট করুন বা ফিচারের অনুরোধ জানান।" + +#: website/public/index.html:301 +msgctxt "page:index.html" +msgid "Setup options" +msgstr "সেটআপের বিকল্প" + +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 +msgctxt "shared" +msgid "Contributors" +msgstr "অবদানকারী" + +#: website/public/contributors/index.html:114 +msgctxt "page:contributors/index.html" +msgid "Skip to content" +msgstr "মূল কনটেন্টে যান" + +#. {ph0}: +#. {ph1}: +#: website/public/contributors/index.html:206 +#, python-brace-format +msgctxt "page:contributors/index.html" +msgid "{ph0}Home{ph1} / Contributors" +msgstr "{ph0}হোম{ph1} / অবদানকারী" + +#: website/public/contributors/index.html:207 +msgctxt "page:contributors/index.html" +msgid "Built together." +msgstr "একসঙ্গে গড়া।" + +#: website/public/contributors/index.html:208 +msgctxt "page:contributors/index.html" +msgid "Thank you to everyone who helps make REA better." +msgstr "REA-কে আরও ভালো করে তুলতে যাঁরা সাহায্য করেন, তাঁদের সবাইকে ধন্যবাদ।" + +#: website/public/contributors/index.html:209 +msgctxt "page:contributors/index.html" +msgid "" +"Code, documentation, tests, translations and ideas — there are many ways to " +"contribute." +msgstr "" +"কোড, ডকুমেন্টেশন, test, অনুবাদ ও নতুন ধারণা — অবদান রাখার অনেক উপায় আছে।" + +#: website/public/contributors/index.html:214 +msgctxt "page:contributors/index.html" +msgid "How to contribute" +msgstr "কীভাবে অবদান রাখবেন" + +#: website/public/contributors/index.html:219 +msgctxt "page:contributors/index.html" +msgid "Join the conversation →" +msgstr "আলোচনায় যোগ দিন →" + +#: website/public/contributors/index.html:229 +msgctxt "page:contributors/index.html" +msgid "Contributors" +msgstr "অবদানকারী" + +#: website/public/contributors/index.html:231 +msgctxt "page:contributors/index.html" +msgid "Find a contributor" +msgstr "অবদানকারী খুঁজুন" + +#. {ph0}: +#. {ph1}: +#. {ph2}: +#: website/public/contributors/index.html:1118 +#, python-brace-format +msgctxt "page:contributors/index.html" +msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." +msgstr "{ph0}GitHub-এর অবদানকারী তালিকা{ph1} থেকে · হালনাগাদ: {ph2}।" + +#: website/public/contributors/index.html:1123 +msgctxt "page:contributors/index.html" +msgid "No matching contributors. Try another username." +msgstr "" +"মিলে যায় এমন কোনো অবদানকারী পাওয়া যায়নি। অন্য কোনো username দিয়ে চেষ্টা " +"করুন।" + +#: website/public/contributors/index.html:6 +msgctxt "page:contributors/index.html" +msgid "Contributors · REA" +msgstr "অবদানকারী · REA" + +#: website/public/contributors/index.html:7 +msgctxt "page:contributors/index.html" +msgid "" +"Meet the people who contribute code, documentation, tests and ideas to REA." +msgstr "" +"যাঁরা কোড, ডকুমেন্টেশন, test ও নতুন ধারণা দিয়ে REA-তে অবদান রাখেন, তাঁদের " +"সঙ্গে পরিচিত হোন।" + +#: website/public/contributors/index.html:232 +msgctxt "page:contributors/index.html" +msgid "GitHub username" +msgstr "GitHub username" + +#: website/public/contributors/index.html:1143 +msgctxt "page:contributors/index.html" +msgid "Back to top" +msgstr "উপরে ফিরে যান" + +#: website/public/assets/contributors.js:21 +#, python-brace-format +msgctxt "runtime" +msgid "Contributors: {count}" +msgstr "অবদানকারী: {count}" + +#. {ph0}: Node.js +#. {ph1}: Node.js +#: website/public/get-started/index.html:262 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"আপনার লাগবে {ph0} 22 (22.23.4+), 24 (24.22.1+) বা 26+ (>=26.12.1)। npm " +"{ph1}-এর সঙ্গেই আসে।" + +#. {ph0}: node -v +#. {ph1}: Node.js +#: website/public/get-started/index.html:287 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" +msgstr "" +"{ph0} যদি v22.23.4+, v24.22.1+ বা v26.12.1+ দেখায়, তাহলে আপনি প্রস্তুত। " +"পুরোনো সংস্করণ বা \"not recognized\" / \"command not found\" দেখালে {ph1} 24" +" LTS ইনস্টল করুন:" + +#. {ph0}: nodejs +#. {ph1}: node -v +#: website/public/get-started/index.html:404 +#, python-brace-format +msgctxt "page:get-started/index.html" +msgid "" +"Your distribution's own {ph0} package is often older than 22.23.4, so check " +"{ph1} if you use it instead." +msgstr "" +"আপনার distribution-এর নিজস্ব {ph0} package প্রায়ই 22.23.4-এর চেয়ে পুরোনো " +"হয়, তাই সেটি ব্যবহার করলে {ph1} যাচাই করে নিন।" + +#, 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}-এর সঙ্গেই আসে।" + +#, 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+ দেখায়, তাহলে আপনি প্রস্তুত। পুরোনো " +#~ "সংস্করণ বা \"not recognized\" / \"command not found\" দেখালে {ph1} 24 LTS " +#~ "ইনস্টল করুন:" + +#, 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 "" +#~ "আপনার distribution-এর নিজস্ব {ph0} package প্রায়ই 22.19-এর চেয়ে পুরোনো " +#~ "হয়, তাই সেটি ব্যবহার করলে {ph1} যাচাই করে নিন।" + +#, python-brace-format +#~ msgctxt "page:first-investigation/index.html" +#~ msgid "{ph0} · CSV formatter" +#~ msgstr "{ph0} · CSV formatter" + +#~ msgctxt "page:first-investigation/index.html" +#~ msgid "" +#~ "This command uses a shell with here-document support, such as Bash or Zsh. " +#~ "Your agent can run the same JavaScript in your platform’s shell." +#~ msgstr "" +#~ "এই কমান্ডের জন্য Bash বা Zsh-এর মতো here-document সমর্থনকারী shell লাগে। " +#~ "আপনার agent একই JavaScript আপনার প্ল্যাটফর্মের shell-এ চালাতে পারে।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "" +#~ "Connect REA to your coding agent, or inspect a local app from your terminal." +#~ msgstr "" +#~ "আপনার coding agent-এর সঙ্গে REA যুক্ত করুন, অথবা টার্মিনাল থেকে একটি local " +#~ "অ্যাপ পরীক্ষা করুন।" + +#, python-brace-format +#~ msgctxt "page:get-started/index.html" +#~ msgid "{ph0}Windows (PowerShell){ph1}" +#~ msgstr "{ph0}Windows (PowerShell){ph1}" + +#, 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 "" +#~ "পরে {ph2} চালানোর সময় PowerShell যদি {ph0}\"running scripts is disabled on " +#~ "this system\"{ph1} দেখায়, তাহলে একবার এটি চালিয়ে আবার চেষ্টা করুন:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "If you use Homebrew:" +#~ msgstr "Homebrew ব্যবহার করলে:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Otherwise:" +#~ msgstr "অন্যথায়:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Close Terminal, open it again, then:" +#~ msgstr "Terminal বন্ধ করে আবার খুলুন, তারপর:" + +#, 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 "" +#~ "Installer-এর জন্য {ph0} ও {ph1} লাগবে (Debian/Ubuntu-তে: {ph2})। টার্মিনাল " +#~ "বন্ধ করে আবার খুলুন, তারপর:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Setup options" +#~ msgstr "Setup-এর বিকল্প" + +#, python-brace-format +#~ msgctxt "page:get-started/index.html" +#~ msgid "{ph0}Connect your coding agent{ph1}" +#~ msgstr "{ph0}আপনার coding agent যুক্ত করুন{ph1}" + +#, python-brace-format +#~ msgctxt "page:get-started/index.html" +#~ msgid "{ph0}Set up native analysis{ph1}" +#~ msgstr "{ph0}Native বিশ্লেষণ সেট আপ{ph1}" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Connect your coding agent" +#~ msgstr "আপনার coding agent যুক্ত করুন" + +#~ 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 "" +#~ "আপনার coding agent-এর সঙ্গে REA যুক্ত করতে setup চালান। Client হিসেবে বেছে " +#~ "নিতে পারেন Claude Code, Codex, Cursor, Gemini CLI, Windsurf, Grok Build এবং " +#~ "অন্যান্য সমর্থিত MCP client। Grok Bot-এর connector তার chat থেকে যোগ করা " +#~ "হয়।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "New to coding agents?" +#~ msgstr "Coding agent-এ নতুন?" + +#~ 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 "" +#~ "Coding agent হলো এমন একটি AI সহকারী যা ব্রাউজারের ট্যাবে নয়, আপনার " +#~ "কম্পিউটারেই কাজ করে। এটি ফাইল পড়তে ও কমান্ড চালাতে পারে, এবং কোনো " +#~ "পরিবর্তনের আগে আপনার অনুমতি চায়। REA তাকে reverse engineering-এর টুল দেয়।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "" +#~ "If you don't have one yet, pick one, follow its install page and sign in:" +#~ msgstr "" +#~ "এখনো না থাকলে একটি বেছে নিন, তার install পেজ অনুসরণ করুন এবং sign in করুন:" + +#, 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 plan লাগে।" + +#, 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 account দিয়ে sign in " +#~ "করুন।" + +#, 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} — open source। পছন্দের model provider যুক্ত " +#~ "করুন।" + +#~ 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 "" +#~ "তারপর এটি খুলে নিচের prompt-টি কপি করে দিন। Agent REA-এর setup চালায় এবং " +#~ "কিছু বদলানোর আগে আপনাকে পরিকল্পনাটি দেখায়।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Restart your client when setup finishes." +#~ msgstr "Setup শেষ হলে আপনার client রিস্টার্ট করুন।" + +#~ 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 "" +#~ "আপনার agent-কে একটি টার্গেটের path ও একটি নির্দিষ্ট প্রশ্ন দিন। JavaScript " +#~ "বা Electron অ্যাপের জন্য এভাবে শুরু করতে পারেন:" + +#, 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} দেখো এবং এটি কীভাবে ডেটা export করে তা খুঁজে বের করো। এর সঙ্গে জড়িত " +#~ "entry point, call ও dependency দেখাও, আর তোমার প্রতিটি ফলাফলের source " +#~ "location দাও।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Replace the path with your local target." +#~ msgstr "Path-এর জায়গায় আপনার local টার্গেট দিন।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Use the CLI" +#~ msgstr "CLI ব্যবহার করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Set up native analysis" +#~ msgstr "Native বিশ্লেষণ সেট আপ করুন" + +#~ 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 "" +#~ "Native বাইনারির জন্য একটি local analysis টুল লাগে। নিচ থেকে একটি বেছে নিয়ে " +#~ "কনফিগার করুন, তারপর REA-কে আপনার executable বা library দিন।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Choose a tool: Ghidra, Hopper or IDA" +#~ msgstr "একটি টুল বেছে নিন: Ghidra, Hopper বা IDA" + +#~ 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 "" +#~ "Linux বা macOS-এ, x64 বা arm64-এ বিদ্যমান Ghidra 12.1.x ইনস্টলেশন এবং 64-bit" +#~ " JDK 21 বা নতুনতর ব্যবহার করুন। আপনার Ghidra ইনস্টলেশনে host architecture-এর" +#~ " জন্য একটি native decompiler থাকতে হবে। Setup চালানোর আগে path-গুলো ঠিক করে " +#~ "দিন:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Ghidra connection · macOS / Linux" +#~ msgstr "Ghidra connection · macOS / Linux" + +#~ 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 "" +#~ "দুটো path-এর জায়গাতেই আপনার বিদ্যমান ইনস্টলেশনের path দিন। Setup সেগুলো " +#~ "যাচাই করে এবং নির্বাচিত client-এর জন্য বৈধ setting সংরক্ষণ করে। Linux " +#~ "arm64-এ Ghidra-র native decompiler আলাদাভাবে build করতে হতে পারে।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Ghidra connection · Windows PowerShell" +#~ msgstr "Ghidra connection · Windows PowerShell" + +#~ 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-এর প্রথমবার চালানোর demo mode বা " +#~ "license সক্রিয় করার ধাপটি সম্পন্ন করুন।" + +#~ 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 setup-গুলো Windows-এ চলে, যেখানে একটি সংযুক্ত GUI বা headless " +#~ "database-এর জন্য আগে থেকে MCP নিবন্ধন আছে। Linux ও macOS-এ headless বিশ্লেষণ" +#~ " এখনো যাচাই করা হয়নি।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Connect an existing IDA MCP registration" +#~ msgstr "বিদ্যমান IDA MCP নিবন্ধন যুক্ত করুন" + +#, 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 "" +#~ "Upstream server-এর কার্যকর {ph0}, {ph1} এবং ঐচ্ছিক {ph2} একটি JSON ফাইলে " +#~ "রাখুন। {ph4} entry-সহ একটি বিদ্যমান {ph3} object-ও গ্রহণযোগ্য। Setup-এর আগে " +#~ "REA-কে সেই ফাইলটি দেখিয়ে দিন:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "IDA connection · Windows PowerShell" +#~ msgstr "IDA connection · Windows PowerShell" + +#, 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 "" +#~ "Attached profile upstream-এর legacy 1.4.0 টুল ব্যবহার করে, যেখানে মূল " +#~ "বাইনারিটি IDA-তে আগে থেকেই খোলা থাকে। Headless profile upstream-এর database-" +#~ "supervisor API এবং {ph0}-সহ একটি নিবন্ধন ব্যবহার করে; বাস্তব যাচাই করা " +#~ "হয়েছে IDA 9.3 Windows x64 supervisor-এ। Doctor IDA চালু না করেই নিবন্ধনটি " +#~ "যাচাই করে।" + +#, 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-কে মূল executable-এর path দিন — CLI query-তে {ph0} সহ। Agent-এর ক্ষেত্রে" +#~ " REA নিবন্ধনের environment-এ {ph1} যোগ করুন এবং বাইনারি খোলার সময় IDA বেছে " +#~ "নিন।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "For an existing Ghidra setup, inspect a function with:" +#~ msgstr "বিদ্যমান Ghidra setup থাকলে একটি function পরীক্ষা করুন এভাবে:" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Function analysis" +#~ msgstr "Function বিশ্লেষণ" + +#, python-brace-format +#~ msgctxt "page:get-started/index.html" +#~ msgid "Replace {ph0} with the function name or address you want to inspect." +#~ msgstr "" +#~ "{ph0}-এর জায়গায় যে function-এর নাম বা address পরীক্ষা করতে চান সেটি দিন।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "How native analysis sessions work" +#~ msgstr "Native analysis session কীভাবে কাজ করে" + +#~ 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 কমান্ড বাইনারিটি import ও বিশ্লেষণ করে, তারপর তার session বন্ধ " +#~ "করে দেয়। আপনার agent-এর MCP query-গুলো session খোলা থাকা পর্যন্ত import করা" +#~ " বাইনারিটিই আবার ব্যবহার করে।" + +#, 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 "" +#~ "Function-এর ফলাফল থেকে কীভাবে একটি হিসাব উদ্ধার হয় তা দেখতে {ph0}একটি " +#~ "native বিশ্লেষণের উদাহরণ অনুসরণ করুন{ph1}।" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Check one client" +#~ msgstr "একটি client যাচাই" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy PowerShell execution policy command" +#~ msgstr "PowerShell execution policy কমান্ড কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy fnm installation command for macOS" +#~ msgstr "macOS-এর জন্য fnm ইনস্টলেশন কমান্ড কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy Node.js 24 commands for macOS" +#~ msgstr "macOS-এর জন্য Node.js 24 কমান্ড কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy agent setup command" +#~ msgstr "Agent setup কমান্ড কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy Ghidra connection for macOS and Linux" +#~ msgstr "macOS ও Linux-এর জন্য Ghidra connection কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy Ghidra connection for Windows PowerShell" +#~ msgstr "Windows PowerShell-এর জন্য Ghidra connection কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy IDA connection for Windows PowerShell" +#~ msgstr "Windows PowerShell-এর জন্য IDA connection কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy native function analysis command" +#~ msgstr "Native function বিশ্লেষণ কমান্ড কপি করুন" + +#~ msgctxt "page:get-started/index.html" +#~ msgid "Copy client diagnosis command" +#~ msgstr "Client diagnosis কমান্ড কপি করুন" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "{ph0}What is RE?{ph1}" +#~ msgstr "{ph0}RE কী?{ph1}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "{ph0}How REA helps{ph1}" +#~ msgstr "{ph0}REA কীভাবে সাহায্য করে{ph1}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "{ph0}Help & feedback{ph1}" +#~ msgstr "{ph0}সাহায্য ও মতামত{ph1}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "{ph0}Community{ph1}" +#~ msgstr "{ph0}কমিউনিটি{ph1}" + +#~ msgctxt "page:index.html" +#~ msgid "" +#~ "REA gives your agent the tools to inspect a program and explain what it " +#~ "does." +#~ msgstr "" +#~ "REA আপনার agent-কে এমন টুল দেয়, যা দিয়ে সে একটি প্রোগ্রাম পরীক্ষা করে বলতে" +#~ " পারে প্রোগ্রামটি কী করে।" + +#~ msgctxt "page:index.html" +#~ msgid "See how REA works ↓" +#~ msgstr "REA কীভাবে কাজ করে দেখুন ↓" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Already know RE? {ph0}Skip to analysis guides →{ph1}" +#~ msgstr "RE আগে থেকেই জানেন? {ph0}সরাসরি analysis গাইডে যান →{ph1}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Want to go deeper? {ph0}Read the Blog →{ph1}" +#~ msgstr "আরও গভীরে যেতে চান? {ph0}ব্লগ পড়ুন →{ph1}" + +#~ msgctxt "page:index.html" +#~ msgid "What is reverse engineering?" +#~ msgstr "Reverse engineering কী?" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "" +#~ "Finding out how software works by {ph0}examining the program itself.{ph1}" +#~ msgstr "" +#~ "{ph0}প্রোগ্রামটিকেই খুঁটিয়ে দেখে{ph1} সফটওয়্যার কীভাবে কাজ করে তা বের করা।" + +#, 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}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "One question: {ph0}why does Calculator give 220 for {ph1}?{ph2}" +#~ msgstr "একটি প্রশ্ন: {ph0}Calculator কেন {ph1}-এর উত্তর 220 দেয়?{ph2}" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Before REA · You investigate it {ph0}yourself{ph1}" +#~ msgstr "REA-এর আগে · অনুসন্ধানটি {ph0}নিজেই{ph1} করতে হয়" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "With REA · You ask {ph0}your agent{ph1}" +#~ msgstr "REA-এর সঙ্গে · আপনি জিজ্ঞাসা করেন {ph0}আপনার agent-কে{ph1}" + +#~ msgctxt "page:index.html" +#~ msgid "One prompt." +#~ msgstr "একটিই prompt।" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Ask your agent {ph0}in plain English.{ph1}" +#~ msgstr "আপনার agent-কে জিজ্ঞাসা করুন {ph0}সহজ ভাষায়।{ph1}" + +#, 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} একটি গেমের গতি বদলান, তারপর Calculator-এ " +#~ "ফিরে এসে তার % বাটন নতুন করে তৈরি করুন।" + +#~ msgctxt "page:index.html" +#~ msgid "Goal" +#~ msgstr "লক্ষ্য" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Rebuild the game with {ph0}adjustable speed.{ph1}" +#~ msgstr "গেমটি {ph0}নিয়ন্ত্রণযোগ্য গতিসহ{ph1} নতুন করে তৈরি করা।" + +#~ msgctxt "page:index.html" +#~ msgid "Why reverse engineer it?" +#~ msgstr "কেন reverse engineer করবেন?" + +#, 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}: কত " +#~ "গতিতে শুরু হয়, কতটা বাড়ে এবং কখন থামে।" + +#~ msgctxt "page:index.html" +#~ msgid "Play the reconstruction" +#~ msgstr "পুনর্গঠিত গেমটি খেলুন" + +#~ msgctxt "page:index.html" +#~ msgid "" +#~ "Enable JavaScript to play the reconstruction. The code and explanation above" +#~ " remain readable." +#~ msgstr "" +#~ "পুনর্গঠিত গেমটি খেলতে JavaScript চালু করুন। ওপরের কোড ও ব্যাখ্যা তবুও পড়া " +#~ "যাবে।" + +#~ msgctxt "page:index.html" +#~ msgid "REA returned" +#~ msgstr "REA যা ফেরত দিয়েছে" + +#, 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}পেজে আসলে যে script চলছে।{ph1} Agent তার update function ও গতির setting" +#~ " পড়ে, তারপর সেই নিয়ম একটি নতুন গেমে ব্যবহার করে।" + +#, 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}উদাহরণ prompt · ডাইনোসর গেম" + +#, 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} গতি {ph4}13{ph5}-এর নিচে থাকা পর্যন্ত, সংঘর্ষ ছাড়া " +#~ "প্রতিটি update-এ {ph2}0.001{ph3} যোগ হয়।" + +#, 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} এবার + ও × দুটোর নিয়মই উদ্ধার করে" +#~ " চালিয়ে দেখি।" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "" +#~ "Build a small calculator that handles {ph0}both + and × correctly.{ph1}" +#~ msgstr "" +#~ "একটি ছোট calculator তৈরি করুন যা {ph0}+ ও × দুটোই সঠিকভাবে সামলায়।{ph1}" + +#, 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} শতাংশটি কোন সংখ্যার ওপর " +#~ "প্রয়োগ হয় তা জানতে আমরা ইনস্টল করা অ্যাপটি পরীক্ষা করি।" + +#~ msgctxt "page:index.html" +#~ msgid "Try the calculation" +#~ msgstr "হিসাবটি চালিয়ে দেখুন" + +#, 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}একটি branch 100 দিয়ে ভাগ করে। অন্যটি প্রথম সংখ্যা দিয়ে গুণও করে।{ph1}" +#~ " Agent দুটো ব্যবহার করেই % বাটনটি আবার তৈরি করে।" + +#, 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 · % বাটন নতুন করে তৈরি" + +#~ msgctxt "page:index.html" +#~ msgid "Want to go deeper?" +#~ msgstr "আরও গভীরে যেতে চান?" + +#, 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 "" +#~ "আপনি কী বুঝতে বা তৈরি করতে চান তা আপনার agent-কে বলুন। REA-এর সাহায্যে " +#~ "{ph0}এই ওয়েবসাইটটি clone করা{ph1} থেকে শুরু করে {ph2}executable থেকে একটি " +#~ "গেম পুনর্গঠন{ph3} পর্যন্ত যেকোনো কাজে একসঙ্গে কাজ করতে পারেন।" + +#~ msgctxt "page:index.html" +#~ msgid "For setup and analysis steps, choose your target:" +#~ msgstr "Setup ও বিশ্লেষণের ধাপের জন্য আপনার টার্গেট বেছে নিন:" + +#, 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 "" +#~ "Bug ও ফিচারের অনুরোধের জন্য {ph0}FAQ পড়ুন{ph1}, {ph2}Discord-এ আমাদের সঙ্গে" +#~ " কথা বলুন{ph3}, অথবা {ph4}একটি GitHub issue খুলুন{ph5}।" + +#~ msgctxt "page:index.html" +#~ msgid "Join the community" +#~ msgstr "কমিউনিটিতে যোগ দিন" + +#~ msgctxt "page:index.html" +#~ msgid "" +#~ "Share investigations and get help from other REA users on Discord. Follow " +#~ "REA on X for project updates." +#~ msgstr "" +#~ "Discord-এ আপনার অনুসন্ধান শেয়ার করুন এবং অন্য REA ব্যবহারকারীদের কাছ থেকে " +#~ "সাহায্য নিন। প্রজেক্টের খবর পেতে X-এ REA ফলো করুন।" + +#~ msgctxt "page:index.html" +#~ msgid "Follow @reatools on X" +#~ msgstr "X-এ @reatools ফলো করুন" + +#, python-brace-format +#~ msgctxt "page:index.html" +#~ msgid "Get started {ph0}" +#~ msgstr "শুরু করুন {ph0}" + +#~ msgctxt "page:index.html" +#~ msgid "Setup guide" +#~ msgstr "Setup গাইড" diff --git a/website/locales/de/messages.po b/website/locales/de/messages.po index 6b11b5213c6..8741f5cc023 100644 --- a/website/locales/de/messages.po +++ b/website/locales/de/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Startseite{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Gedanken zum Reverse Engineering." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Spielrekonstruktion{ph0}Essay" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Die industrielle Revolution im Reverse Engineering" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -53,36 +53,36 @@ msgstr "" "gelehrt, über Agenten, Überprüfung und Wissen, dass Verbindungen über " "Projekte hinweg." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Lesen Sie den Artikel" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Von N0zoM1z0 · 10. Oktober 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -102,38 +102,38 @@ msgstr "" "Gedanken zum Reverse Engineering, gestützt auf praktische Erfahrungen mit " "REA und KI-Agenten." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -142,122 +142,122 @@ msgstr "" "REA - Finden Sie heraus, wie Software funktioniert. Reverse Engineering mit " "Ihrem Codierungsagenten." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA-Startseite" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Hauptnavigation" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA auf GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "REA auf Discord beitreten" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "REA auf X folgen" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -266,35 +266,35 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Startseite{ph1} / {ph2}Blog{ph3} / Touhou Wiederaufbau" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Essay * Touhou-Rekonstruktion" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Die industrielle Revolution im Reverse Engineering." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Von N0zoM1z0 · 10. Oktober 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Das Wichtigste" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -307,7 +307,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -321,7 +321,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -334,7 +334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -347,7 +347,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -358,65 +358,65 @@ msgstr "" "RE.{ph1} Die Methoden nehmen immer noch Gestalt an. Es gibt noch viel zu " "entdecken." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Wie erleben Sie Verbindungen" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Menschliche Richtung{ph1} * Ziel und Akzeptanzkriterien" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Autonomie" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agent" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Wähle ein Experiment.{ph0}Schlage eine Hypothese vor." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Prüfung" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Prüfreferenz" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Test gegen eine{ph0}konkreter Hinweis." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repository" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Arbeitsgedächtnis" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -425,7 +425,7 @@ msgstr "Code, Beweise,{ph0}kontrollen und Unterricht." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -434,26 +434,26 @@ msgstr "Mismatch{ph0}{ph1}Überarbeiten Sie die Hypothese{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Best{ph0}{ph1}Ausgangspunkt{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Wiederverwendung" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Übergeben{ph1} * Bewahren Sie das Ergebnis und seine Beweise auf" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -462,14 +462,14 @@ msgstr "" "Jedes Projekt verlässt das nächste mit einem besseren Ausgangspunkt. Dazu " "gehört auch, die Prüfungen zu korrigieren, wenn wir eine Lücke entdecken." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "In diesem Artikel" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -477,7 +477,7 @@ msgstr "{ph0}Februar 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -485,7 +485,7 @@ msgstr "{ph0} TH08 : die Fortsetzung{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -493,7 +493,7 @@ msgstr "{ph0}Zwei Ansätze{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -501,7 +501,7 @@ msgstr "{ph0} TH095 : Aufbereitung{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -509,7 +509,7 @@ msgstr "{ph0} TH04 : architekturübergreifend{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -517,7 +517,7 @@ msgstr "{ph0}Von exakt zu lesbar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -525,18 +525,18 @@ msgstr "{ph0}Der industrielle Wandel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Was möglich wird{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Was hat sich im August 2026 geändert" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -551,7 +551,7 @@ msgstr "" "Zeit mit der nächsten Funktion zu verbringen. Es bedeutete auch, ein immer " "größeres Bild in meinem Kopf zu behalten." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -565,7 +565,7 @@ msgstr "" "Artikel. Die Methode kann an anderer Stelle nützlich sein, aber jedes Feld " "muss festlegen, was es anhand einer zuverlässigen Referenz überprüfen kann." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -578,7 +578,7 @@ msgstr "" "gewöhnliche Entwicklungstools kommen kann. Touhou Reconstruction gab mir ein" " umfangreiches Projekt, in dem ich es herausfinden konnte." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -597,7 +597,7 @@ msgstr "" "Richtung des Projekts richten und darauf, ob seine Überprüfungen " "vertrauenswürdig waren." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -608,7 +608,7 @@ msgstr "" "fragen, was über das aktuelle Projekt hinaus überleben würde. Würde das " "nächste Spiel von allem profitieren, was wir gerade gelernt hatten?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08 : auf menschlicher Arbeit aufbauen" @@ -617,7 +617,7 @@ msgstr "TH08 : auf menschlicher Arbeit aufbauen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -631,7 +631,7 @@ msgstr "" "mir eine substanzielle Grundlage. Es kam mit Kenntnis des Builds und einer " "Geschichte von Beiträgen, die ich in der Fortsetzung aufbewahrt habe." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -643,7 +643,7 @@ msgstr "" "zeichnete das Ledger die Quelle für alle 1.107 identifizierten " "Spielfunktionen auf." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -654,7 +654,7 @@ msgstr "" "Tage nach Beginn der Fortsetzung, festgelegt. Eine Webausgabe folgte. Die " "native 64-Bit-Version Linux ist am 30.August eingetroffen." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -670,7 +670,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -689,12 +689,12 @@ msgstr "" "Erklärung vor und testet sie; Eine Nichtübereinstimmung gibt ihm etwas " "Spezifisches zu untersuchen." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Eine exakte Übereinstimmung mit der falschen Konstante" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -706,7 +706,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -719,7 +719,7 @@ msgstr "" "rekonstruierte Quelle überprüfte die Leistung des Spielers gegen {ph0}. Das " "Original verwendet {ph1}, der Schwellenwert für die maximale Leistung." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -735,14 +735,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" "{ph0}Doch die Funktion hatte den genauen Vergleich bereits bestanden.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -758,7 +758,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -774,7 +774,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -789,7 +789,7 @@ msgstr "" "Referenzen untersucht. Es wurden weitere zwölf falsche Referenzen für fünf " "akzeptierte Funktionen gefunden." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -803,7 +803,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -813,7 +813,7 @@ msgstr "" "{ph0}Die Verifikationsreferenz (Oracle) musste ebenfalls rekonstruiert " "werden.{ph1} Das Reparieren war Teil der Reparatur des Spiels." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -832,7 +832,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -848,7 +848,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -858,7 +858,7 @@ msgstr "" "{ph0}Ein erfolgreicher Batch gab uns sowohl wiederhergestellten Code als " "auch eine bessere Umgebung für den nächsten Batch.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Zwei verschiedene Rekonstruktionsideen" @@ -867,7 +867,7 @@ msgstr "Zwei verschiedene Rekonstruktionsideen" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -880,7 +880,7 @@ msgstr "" " die weitere Entwicklung bis zur Fertigstellung privat erfolgen wird. Eine " "Passage lautet:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -890,7 +890,7 @@ msgstr "" "Bereich, die aus unserer Arbeit stammen, zeichnet ein schlechtes Bild für " "zukünftige Dekompilierungsbemühungen…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -908,7 +908,7 @@ msgstr "" "die ich diskutieren möchte, betrifft die Frage, wie der Wiederaufbau " "ablaufen soll und wie ein Beitrag zu bewerten ist." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -922,7 +922,7 @@ msgstr "" "Vertrauen in den Mitwirkenden war wichtig, weil so viele Überlegungen " "während der Arbeit stattfanden." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -933,7 +933,7 @@ msgstr "" "Werkzeuge. Was sich für mich geändert hat, war, dass ein Agent dieses Wissen" " nutzen konnte, um die nächste Untersuchung selbstständig durchzuführen." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -949,7 +949,7 @@ msgstr "" "uns für eine Implementierung entschieden haben, auch wenn ein Agent die " "meiste Arbeit erledigt hat." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -962,7 +962,7 @@ msgstr "" "Das wirft echte Fragen zum Kredit auf. Es ändert auch, was Betreuer wissen " "müssen, bevor sie einen Beitrag annehmen." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -978,7 +978,7 @@ msgstr "" "falsch ist. Verschiedene Gemeinschaften können wählen, wie viel von dieser " "Veränderung sie übernehmen möchten." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -1003,7 +1003,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1016,14 +1016,14 @@ msgstr "" "Auszug. Von TH08 {ph4}credits und Provenienz{ph5} notieren Sie die " "Fortsetzungsgrenze." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095 : Erfahrung beginnt sich zu vermehren" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1038,7 +1038,7 @@ msgstr "" "lernen. Aber wir wussten schon viel mehr darüber, wie man einen Wiederaufbau" " beginnt und wie man ihn in Bewegung hält." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1052,7 +1052,7 @@ msgstr "" "i386-Rekonstruktion wurde am 10.September, etwa zwölf Tage nach der " "Initialisierung, als spielbar markiert." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1064,7 +1064,7 @@ msgstr "" "Erfahrung war bereits in den Tools und in der Organisation des Projekts " "vorhanden." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1080,7 +1080,7 @@ msgstr "" " Lektion hat dazu beigetragen, wie wir uns dem gesamten Programmaufbau von " "TH095 näherten." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1094,7 +1094,7 @@ msgstr "" "das Ergebnis verwenden, ohne die Untersuchung zu wiederholen, die dazu " "geführt hat." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1109,7 +1109,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1121,7 +1121,7 @@ msgstr "" " Wir können mehr von den Anstrengungen des nächsten Projekts darauf " "verwenden, was an seinem Ziel tatsächlich neu ist." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1135,7 +1135,7 @@ msgstr "" "rekonstruieren, um herauszufinden, warum die Quelle so aussieht, wie sie " "aussieht." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04 : Der Workflow überlebt eine andere Architektur" @@ -1144,7 +1144,7 @@ msgstr "TH04 : Der Workflow überlebt eine andere Architektur" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1160,7 +1160,7 @@ msgstr "" "bei den Windows-Spielen erforderlich. Bestehenden {ph2}ReC98 Arbeit{ph3} gab" " uns auch hier wertvolles Wissen und Quellenmaterial." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1174,7 +1174,7 @@ msgstr "" "Einrichten einer funktionierenden DOS-Version gibt diesem Port zuerst eine " "Referenz." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1187,7 +1187,7 @@ msgstr "" "haben. Aber der Agent könnte immer noch einer Frage bis zu einem Ergebnis " "folgen und dieses Ergebnis das nächste Experiment leiten lassen." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1202,7 +1202,7 @@ msgstr "" " die Beweise und Überprüfungen verfügbar sind, kann ein Agent die Frage " "ähnlich wie bei einem Windows-Titel bearbeiten." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1214,7 +1214,7 @@ msgstr "" "vorne zu beginnen. Die Architektur definierte das Problem; Der Workflow gab " "uns immer noch einen Weg, es zu lösen." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1231,7 +1231,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1242,12 +1242,12 @@ msgstr "" "Testen{ph1} · {ph2}64-bit-Anschluss{ph3}. Der Hafen bleibt in der " "Entwicklung." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Vom exakten Code zum lesbaren Code" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1256,7 +1256,7 @@ msgstr "" "Sobald eine Rekonstruktion funktioniert, möchte ich, dass jemand anderes sie" " verstehen kann." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1271,7 +1271,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1289,7 +1289,7 @@ msgstr "" "Quelle, damit die nächste Person sehen kann, woher diese Interpretation " "stammt." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1304,14 +1304,14 @@ msgstr "" "diesen Status besitzen soll. Um das Verhalten sicher zu verschieben, müssen " "wir die Beziehung hinter dem alten Speicherzugriff wiederherstellen." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Die Reihenfolge, die ich jetzt benutze, ist:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1328,7 +1328,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1345,7 +1345,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1362,7 +1362,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1377,7 +1377,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1394,7 +1394,7 @@ msgstr "" "Die zweite überprüft, ob das rekonstruierte Programm auf den von uns " "ausgeübten Pfaden noch korrekt aufgebaut ist und sich korrekt verhält." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1408,7 +1408,7 @@ msgstr "" "Überprüfungen verfügbar halten, muss der Agent dies konkret untersuchen, " "bevor er einen Refactor weiterführt." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1426,7 +1426,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1445,7 +1445,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1456,12 +1456,12 @@ msgstr "" "Rekonstruktion macht das gewonnene Wissen nutzbar.{ph1} Ein Port kann dann " "auf beiden aufbauen." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Was macht diesen industriellen Wandel aus" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1475,7 +1475,7 @@ msgstr "" "nützlichsten Dinge, die ich tun konnte. Ein besseres Werkzeug könnte bei " "jeder späteren Funktion helfen, die es benötigt." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1489,7 +1489,7 @@ msgstr "" "dass ich jeden Schritt vorschreibe, bleibt ein Großteil der Arbeit an meine " "Aufmerksamkeit gebunden." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1503,7 +1503,7 @@ msgstr "" "erneut zu versuchen. Ich muss noch entscheiden, ob die gesammelten Beweise " "einen Projektmeilenstein unterstützen." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1518,7 +1518,7 @@ msgstr "" "Referenzprüfungen. Der Agent kann diese verwenden, um die von ihm " "vorgeschlagene Quelle zu testen und zu sehen, wo seine Erklärung steht." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1536,7 +1536,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1557,7 +1557,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1575,7 +1575,7 @@ msgstr "" "betroffenen Ergebnisse erneut überprüfen. Das nächste Projekt kann dann ein " "stärkeres Werkzeug erben." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1591,7 +1591,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1604,7 +1604,7 @@ msgstr "" "voranzutreiben. Die Arbeit an einem Spiel kann die Startbedingungen für ein " "anderes verbessern." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1616,12 +1616,12 @@ msgstr "" "ändert, wie viel die nächste Person — oder der nächste Agent - erledigen " "kann." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Die Projekte, die wir jetzt in Betracht ziehen können" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1633,7 +1633,7 @@ msgstr "" "meiner eigenen Aufmerksamkeit verlangen, als ich es realistisch geben " "könnte. Viele Projekte würden Ideen bleiben." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1651,7 +1651,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1662,7 +1662,7 @@ msgstr "" "Zugang, welches Feedback und welches gesammelte Wissen würden einen Agenten " "zuverlässig daran arbeiten lassen?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1674,12 +1674,12 @@ msgstr "" "nächsten nähern. Ich möchte weiter erforschen, wie weit uns das bringen " "kann." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Projektmeilensteine und Quellen" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1714,7 +1714,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1749,7 +1749,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1768,7 +1768,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1792,7 +1792,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1815,7 +1815,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1831,7 +1831,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1853,7 +1853,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1868,7 +1868,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1890,27 +1890,27 @@ msgstr "" "Rekonstruktion mit KI-Agenten und wie sich das Wissen in TH08 , TH095 und " "PC-98 TH04 zusammenfügt ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Erfahrungsaustausch zwischen Projekten" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Touhou Wiederaufbau Essay" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -1919,18 +1919,18 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Startseite{ph1}{ph2}/{ph3}Dinosaurier-Geschwindigkeitslabor" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Inspizieren → Neu erstellen → Ändern" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Baue die Geschwindigkeitsregel des Dinosauriers wieder auf." @@ -1939,7 +1939,7 @@ msgstr "Baue die Geschwindigkeitsregel des Dinosauriers wieder auf." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1952,15 +1952,15 @@ msgstr "" "zurückgegeben;{ph1} wir haben seine Regel verwendet, um dieses Minispiel mit" " zu bauen {ph2}einstellbare Geschwindigkeit.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Auf dieser Seite" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1968,7 +1968,7 @@ msgstr "{ph0}Spielen und die Geschwindigkeit ändern{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1976,7 +1976,7 @@ msgstr "{ph0}Lesen Sie die wiederhergestellte Regel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1984,18 +1984,18 @@ msgstr "{ph0}Überprüfen Sie die Rekonstruktion{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Probieren Sie die Analyse aus{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Spielen und die Geschwindigkeit ändern" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -2008,51 +2008,51 @@ msgstr "" "wiederhergestellte Regel aus, um bei 6 zu beginnen und schrittweise wieder " "zu beschleunigen." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Den Nachbau spielen" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Spielen" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Springen ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Neustart" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Geschwindigkeit" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Verwenden Sie die wiederhergestellte Beschleunigungsregel" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" "Ursprüngliche Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in " "Richtung 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Bewegen Sie den Schieberegler, um Ihre eigene Geschwindigkeit einzustellen. " "Leertaste oder Sprung löscht einen Kaktus." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2061,7 +2061,7 @@ msgstr "" "Aktivieren Sie JavaScript, um die Rekonstruktion abzuspielen. Der Code und " "die obige Erklärung bleiben lesbar." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Lesen Sie das zurückgegebene Skript REA" @@ -2069,7 +2069,7 @@ msgstr "Lesen Sie das zurückgegebene Skript REA" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2084,7 +2084,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2094,18 +2094,18 @@ msgstr "" "Die Einstellungen sind {ph0}, {ph1} und {ph2}. Das Spiel führt diesen Zweig " "bei einem Update ohne Kollision aus." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Verwenden Sie die gleiche Regel im neuen Spiel" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Kopieren" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2123,7 +2123,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" @@ -2131,12 +2131,12 @@ msgstr "" "{ph0}Laden Sie die Geschwindigkeitsregel herunter{ph1} · {ph2}Lesen Sie den " "Spielcode{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Überprüfen Sie die Rekonstruktion" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2148,27 +2148,27 @@ msgstr "" " aufgezeichneten Geschwindigkeiten mit einer Wiedergabe der " "wiederhergestellten Regel." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Aktualisierungen" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Originalspiel" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Rekonstruierte Herrschaft" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Führen Sie den Geschwindigkeitscheck durch" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2178,14 +2178,14 @@ msgstr "" "sodass das letzte Inkrement eine Geschwindigkeit von knapp über 13 annehmen " "kann." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Probieren Sie die Analyse selbst aus" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2194,7 +2194,7 @@ msgstr "{ph0}Einrichten von REA {ph1} mit Ihrem Codierungsagenten." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2203,7 +2203,7 @@ msgstr "" "Folgen Sie dem {ph0}schritte zur Browser-Verbindung{ph1}, wobei {ph2} wie " "die Seiten-URL." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2220,7 +2220,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2232,7 +2232,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2247,7 +2247,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2262,7 +2262,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2290,12 +2290,12 @@ msgstr "" "Lies die Geschwindigkeitsregel des Dinosaurierspiels mit REA, baue sie neu " "auf, ändere dann die Geschwindigkeit und spiele." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Geschwindigkeitsrekonstruktion von Dinosauriern" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2304,52 +2304,52 @@ msgstr "" "Dinosaurier-Minispiel. Verwenden Sie die Sprungtaste oder drücken Sie die " "Leertaste, während das Spiel fokussiert ist." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Rekonstruierte Geschwindigkeitsregel kopieren" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Aufforderung zur Dinosaurieranalyse kopieren" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Startseite{ph1} / HÄUFIG GESTELLTE FRAGEN" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA HÄUFIG GESTELLTE FRAGEN." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Einrichtung, Updates, Analyse und Fehlerbehebung." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Themen" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2357,7 +2357,7 @@ msgstr "{ph0}Einrichtung und Updates{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2365,7 +2365,7 @@ msgstr "{ph0}Analyse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2373,31 +2373,31 @@ msgstr "{ph0}Fehlerbehebung{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Daten und Weitergabe{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Einrichtung und Updates" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Wie installiere ich REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * Agenten-Einrichtung" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Kopieren" @@ -2405,7 +2405,7 @@ msgstr "Kopieren" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2420,12 +2420,12 @@ msgstr "" "{ph0}Einrichtungsanleitung{ph1} erklärt die Voraussetzungen und die erste " "Analyse." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Welche Codierungsmittel können REA verwenden?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2440,18 +2440,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Verbinden Sie Ihren Codierungsagenten{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Wie aktualisiere ich REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2460,13 +2460,13 @@ msgstr "" "REA wird häufig veröffentlicht, einschließlich Fehlerkorrekturen. Wenn Sie " "den CLI mit npm installiert haben :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * installiert CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2476,14 +2476,14 @@ msgstr "" "Befolgen Sie den Befehl Setup Refresh, der vom Update gedruckt wird. Wenn " "Sie Ihren Agenten über einrichten {ph0}, laufen:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * Einrichtung des Aktualisierungsagenten" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2496,14 +2496,14 @@ msgstr "" "Einrichtung erneut aus, damit er die neue Version nutzt. Für einen einzelnen" " CLI-Aufruf hängen Sie den Befehl an {ph0} an." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Installiert den Skill von skills.sh genug?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2516,24 +2516,24 @@ msgstr "" "installieren, starten Sie Ihren Agenten neu, damit er die Tools aufrufen " "kann." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analyse" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Was kann ich mit REA analysieren?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Beginnen Sie mit der Art von Software, die Sie haben:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2545,7 +2545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2557,7 +2557,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2566,7 +2566,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2578,12 +2578,12 @@ msgstr "" "Firmware und gepackte Ressourcen. {ph0}Sehen Sie sich die Fallstudien " "an{ph1} für durchgeführte Untersuchungen." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Benötige ich Hopper, Ghidra oder IDA?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2595,7 +2595,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2608,12 +2608,12 @@ msgstr "" "Ihr Ziel bestimmen, welcher Anbieter verwendet werden kann. {ph0}Analyse von" " Maschinencode-Programmen einrichten{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Kann ich REA ohne Codierungsmittel verwenden?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2622,14 +2622,14 @@ msgstr "" "Ja. Der CLI verwendet die gleichen Analyse-Workflows. Für eine lokale " "JavaScript- oder Electron-App:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * statische Anwendungsanalyse" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2640,13 +2640,13 @@ msgstr "" "ASAR-Datei. {ph0}Verwenden Sie den CLI {ph1} für Installationsoptionen." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Welchen Code liefert REA?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2661,7 +2661,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2674,12 +2674,12 @@ msgstr "" "Berechnung{ph1} und {ph2}CTF-Flaggenprüfer{ph3} zeigen Sie, wie dieser " "Prozess funktioniert." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Was soll ich meinen Agent fragen?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2696,7 +2696,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2704,7 +2704,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2714,18 +2714,18 @@ msgstr "" "Ersetzen Sie den Pfad durch Ihr Ziel. Der {ph0}Hilfslinien{ph1} geben Sie " "Eingabeaufforderungen für native, Electron- und Browserbeispiele an." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Fehlerbehebung" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Warum kann mein Agent die REA-Tools nicht sehen?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2735,7 +2735,7 @@ msgstr "" "Starten Sie Ihren Agenten nach der Einrichtung neu oder verbinden Sie ihn " "erneut. Überprüfen Sie die REA-Registrierung mit {ph0}; für Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * Überprüfen Sie einen Client" @@ -2743,7 +2743,7 @@ msgstr "Terminal * Überprüfen Sie einen Client" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2754,14 +2754,14 @@ msgstr "" "Wenn der Bericht eine fehlende oder veraltete Registrierung anzeigt, führen " "Sie Setup für diesen Client aus:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * Reparieren Sie das Setup eines Clients" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2774,14 +2774,14 @@ msgstr "" "Sie den Verbindungsfehler MCP des Clients. {ph0}Weitere Setup-" "Diagnosen{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Muss ich Hopper zuerst starten?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2794,14 +2794,14 @@ msgstr "" "unbeaufsichtigten Analyse ab. {ph0}Siehe Einrichtung des nativen " "Anbieters{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Was mache ich bei einem Fehler?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2814,7 +2814,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2827,17 +2827,17 @@ msgstr "" "Geben Sie den Anbieternamen an, wenn das Problem die Analyse von " "Maschinencodeprogrammen betrifft." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Daten und Weitergabe" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Lädt REA meine App hoch?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2846,7 +2846,7 @@ msgstr "" "REA analysiert Ziele auf Ihrem Computer. Ihr Agent erhält die Ergebnisse, " "und die Datenrichtlinie seines Modellanbieters gilt für diese Ergebnisse." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Wie kann ich ein Beispiel teilen oder einen Beitrag leisten?" @@ -2855,7 +2855,7 @@ msgstr "Wie kann ich ein Beispiel teilen oder einen Beitrag leisten?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2871,7 +2871,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2896,77 +2896,77 @@ msgstr "" "Antworten auf häufig gestellte Fragen zum REA: Installation, Updates, " "Analysetools, Codierungsagenten, Fehlerbehebung und Beispiele zum Teilen." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Häufig gestellte Fragen zu REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "REA Setup-Befehl kopieren" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Kopieren Sie den Aktualisierungsbefehl REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Befehl zum Aktualisieren des Agenten-Setups kopieren" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Kopieren Sie den REA CLI-Analysebefehl" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Beispielanalyse-Eingabeaufforderung kopieren" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Clientdiagnosebefehl kopieren" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Befehl zum Kopieren des bereichsbezogenen Setups" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Startseite{ph1} / Ihre erste Untersuchung" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Finden Sie heraus, wo{ph0}exportierte Notizen gehen." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2975,14 +2975,14 @@ msgstr "" "Verwenden Sie REA, um eine kleine App zu überprüfen, folgen Sie der " "Schaltfläche Notizen exportieren und überprüfen Sie ein Detail selbst." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "In dieser Übung" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2990,7 +2990,7 @@ msgstr "{ph0}1. Einrichten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2998,7 +2998,7 @@ msgstr "{ph0}2. Fragen Sie nach Export{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -3006,7 +3006,7 @@ msgstr "{ph0}3. Folge der Antwort{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -3014,13 +3014,13 @@ msgstr "{ph0}4. Überprüfen Sie eine Vorhersage{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Stellen Sie eine andere Frage{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Verbinden Sie Ihren Agenten mit REA" @@ -3033,30 +3033,30 @@ msgstr "1. Verbinden Sie Ihren Agenten mit REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Kopieren" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Oder führen Sie diesen Befehl in Ihrem Terminal aus:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3065,14 +3065,14 @@ msgstr "" "Überprüfen Sie den Plan, genehmigen Sie die Einrichtung und starten Sie dann" " Ihren Agenten neu. Bereits verbunden? Weiter unten." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Fragen Sie, wo der CSV geschrieben ist" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3084,7 +3084,7 @@ msgstr "" "exportieren{ph1} Schaltfläche. Ihr Agent kann seinen Code überprüfen, ohne " "Electron zu installieren oder zu starten." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3096,14 +3096,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Beispiel-ZIP herunterladen{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3113,12 +3113,12 @@ msgstr "" "Wenn Ihr Agent keine Dateien herunterladen kann, entpacken Sie dieses Archiv" " selbst. Gib ihm den Weg zum {ph0} ordner und die gleiche Exportfrage." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Folgen Sie der Antwort zurück zum Code" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -3128,7 +3128,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3140,12 +3140,12 @@ msgstr "" "die Notizen als CSV und schreibt {ph1} im Download-Ordner des Benutzers. Die" " Spalten sind {ph2} und {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Von der Schaltfläche zum Dateischreiber" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3154,7 +3154,7 @@ msgstr "" "Die statische Analyse von REA koppelt die Nachricht mit ihrem Handler. Das " "Ziel wird aus dem Code gelesen." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3166,7 +3166,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." @@ -3174,12 +3174,12 @@ msgstr "" "{ph0}Sehen Sie sich den vollständigen Code-Trace und das aufgezeichnete REA-" "Ergebnis an{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Überprüfen Sie eine Vorhersage" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3188,29 +3188,29 @@ msgstr "" "Die Spalten CSV werden durch ein Komma getrennt. Was passiert, wenn ein " "Notiztitel selbst ein Komma oder Anführungszeichen enthält?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Führen Sie den Check selbst durch" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Öffnen Sie ein Terminal im entpackten {ph0} Ordner:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Stellen Sie eine andere Frage" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Versuchen Sie ein Follow-up im selben Gespräch:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3219,7 +3219,7 @@ msgstr "" "Was passiert, wenn die Datei nicht geschrieben werden kann? Folgen Sie dem " "Fehler zurück zur Seite." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3232,7 +3232,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3246,7 +3246,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3260,7 +3260,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3285,116 +3285,116 @@ msgstr "" "Agenten ein, fragen Sie, wohin exportierte Notizen gehen, und überprüfen Sie" " den Formatierer CSV mit einem Beispieltitel." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Ihre erste REA-Untersuchung" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Installationsaufforderung für REA kopieren" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Setup-Befehl kopieren" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Aufforderung zur Untersuchung von Notizen kopieren" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Kopiere CSV Eingabeaufforderung prüfen" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Befehl Formatierungsprüfung kopieren" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Startseite{ph1} / Erste Schritte" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Richten Sie REA ein." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Öffnen Sie ein Terminal und überprüfen Sie:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Kopieren" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3407,7 +3407,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3419,7 +3419,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3431,7 +3431,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3439,7 +3439,7 @@ msgstr "{ph0}Verwenden Sie den CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3453,18 +3453,18 @@ msgstr "{ph0}Hilfe bekommen{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Programmieragent" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Oder führen Sie das Setup selbst aus" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Wie öffne ich ein Terminal?" @@ -3473,7 +3473,7 @@ msgstr "Wie öffne ich ein Terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3489,7 +3489,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3503,7 +3503,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3518,7 +3518,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3528,7 +3528,7 @@ msgstr "" "Fügen Sie einen Befehl mit {ph0} {ph1} ein (macOS: {ph2} {ph3}; Linux-" "Terminals: {ph4} {ph5} {ph6}) und drücken Sie dann Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3540,7 +3540,7 @@ msgstr "" "vorhandene Konfiguration. Es fragt nach Ihrer Zustimmung, bevor es die " "Änderungen anwendet." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Wie starte ich meinen Client neu?" @@ -3549,7 +3549,7 @@ msgstr "Wie starte ich meinen Client neu?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3565,7 +3565,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3575,7 +3575,7 @@ msgstr "" "{ph0}Terminalagenten{ph1} ( Claude Code , Codex , Gemini CLI ): Beenden Sie " "die Sitzung und starten Sie sie erneut." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Wie erhalte ich den vollständigen Pfad eines Ordners?" @@ -3584,7 +3584,7 @@ msgstr "Wie erhalte ich den vollständigen Pfad eines Ordners?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3599,7 +3599,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3612,7 +3612,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3622,15 +3622,15 @@ msgstr "" "{ph0}Jedes System:{ph1} ziehen Sie den Ordner in ein Terminalfenster und " "sein Pfad wird angezeigt." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "Setzen Sie in einem Terminal Anführungszeichen um einen Pfad, der " "Leerzeichen enthält." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3639,14 +3639,14 @@ msgstr "" "Analysieren Sie einen JavaScript- oder Electron-Anwendungsordner oder ein " "ASAR-Archiv, ohne die App auszuführen:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Statische Anwendungsanalyse" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3656,13 +3656,13 @@ msgstr "" "Ersetzen Sie den Pfad durch Ihr extrahiertes App-Verzeichnis oder {ph0} " "Datei. Auf Windows ein Pfad wie {ph1} arbeitet hier." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Wo finde ich eine App .asar-Datei?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3673,7 +3673,7 @@ msgstr "Electron Apps halten es normalerweise in einem {ph0} Ordner:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3685,7 +3685,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3698,14 +3698,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} häufig {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3713,7 +3713,7 @@ msgstr "" "Einige Apps werden an anderer Stelle installiert. Durchsuchen Sie den Ordner" " der App nach {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3725,36 +3725,36 @@ msgstr "" "Ergebnis markiert." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Wenn Sie eine dauerhafte {ph0} befehl in Ihrer Shell:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Installieren Sie den CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Fahren Sie mit dem JavaScript-Anwendungshandbuch fort{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Verbinden Sie Ihre Ghidra-Installation" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Verbinden Sie Ghidra mit Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3766,7 +3766,7 @@ msgstr "" "Verwenden Sie einen vorhandenen Ghidra 12.1.x-Installation und ein 64-Bit-" "JDK 21 oder neuer:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3774,7 +3774,7 @@ msgstr "" "Ersetzen Sie die beiden Pfade durch Ihre Installationen und überprüfen Sie " "dann den Setup-Plan." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3784,18 +3784,18 @@ msgstr "" "Befehl aus. Es erkennt eine vorhandene Installation oder bietet einen " "Installationsplan zur Genehmigung an." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Hilfe bekommen" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Wenn Ihr Agent REA nicht sieht" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3805,22 +3805,22 @@ msgstr "" "Starten Sie den Client nach dem Setup neu oder verbinden Sie ihn erneut. " "Überprüfen Sie die REA-Verbindung mit {ph0}; für Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Wenn ein Anbieter Aufmerksamkeit braucht" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Überprüfen Sie den Anbieter, den Sie verwenden. Für Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Überprüfen Sie einen Anbieter" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3831,7 +3831,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3844,7 +3844,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3858,7 +3858,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3872,7 +3872,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3897,68 +3897,68 @@ msgstr "" "lokale JavaScript- oder Electron-App vom Terminal aus. Einrichtung, erste " "Fragen und Anleitungen für native Anbieter." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Node.js Versionsprüfung kopieren" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Kopieren Sie den Node.js-Installationsbefehl für Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Kopieren Homebrew Node.js Installationsbefehl" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Kopieren Sie den fnm-Installationsbefehl für Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Kopieren Sie Node.js 24 Befehle für Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA Anleitung für die ersten Schritte" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Installationsaufforderung für REA kopieren" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Kopieren Sie den JavaScript-Analysebefehl" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Kopieren Sie den Installationsbefehl CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Provider-Diagnosebefehl kopieren" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -3967,20 +3967,20 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Startseite{ph1} / {ph2}Hilfslinien{ph3} / Browser-Beobachtung" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Sehen Sie, was passiert{ph0}wenn Sie klicken." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3990,14 +3990,14 @@ msgstr "" "Netzwerkanforderung und den JavaScript, der einen Download erstellt, zu " "verbinden." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "In diesem Handbuch" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -4005,7 +4005,7 @@ msgstr "{ph0}Beispiel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -4013,7 +4013,7 @@ msgstr "{ph0}Öffnen Sie den Browser{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4021,7 +4021,7 @@ msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -4029,13 +4029,13 @@ msgstr "{ph0}Aufnahme von CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Lesen Sie die Anfrage und das Skript{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Was passiert, wenn Sie auf Exportieren klicken?" @@ -4045,7 +4045,7 @@ msgstr "Was passiert, wenn Sie auf Exportieren klicken?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4057,7 +4057,7 @@ msgstr "" "exportieren{ph3} Schaltfläche. Wenn Sie darauf klicken, wird geladen {ph4}, " "formatiert die beiden Notizen als CSV und startet einen Download." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Vom Klick zum CSV Download" @@ -4068,7 +4068,7 @@ msgstr "Vom Klick zum CSV Download" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4085,7 +4085,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4104,7 +4104,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4114,17 +4114,17 @@ msgstr "" "{ph0}03 · Ihr Agent{ph1}{ph2}Lesen Sie den Exportcode{ph3}{ph4}Verbinden Sie" " die beobachtete Anforderung mit {ph5} in {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Starten Sie die Aufnahme, bevor Sie auf Notizen exportieren klicken." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Öffnen Sie Chrome mit Remote-Debugging" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4133,21 +4133,21 @@ msgstr "" "Öffnen Sie das gehostete Notes-Beispiel mit einem separaten Browserprofil " "und einem lokalen Debugging-Port. Auf Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Starten Sie den Beispielbrowser" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Kopieren" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4157,7 +4157,7 @@ msgstr "" "oder Windows . Sie können die Seiten-URL durch eine andere Seite ersetzen, " "die Sie überprüfen möchten." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4167,7 +4167,7 @@ msgstr "" "die Kontrolle über die Seite, führen die Aktion aus und schließen den " "Browser, wenn Sie fertig sind." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Bitten Sie Ihren Agenten, eine Aktion zu sehen" @@ -4180,7 +4180,7 @@ msgstr "Bitten Sie Ihren Agenten, eine Aktion zu sehen" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4192,7 +4192,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4204,7 +4204,7 @@ msgstr "" "CSV aufgebaut?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4215,7 +4215,7 @@ msgstr "" "Endpunkt, {ph0} und die Seiten-URL. Lassen Sie die Aufnahme starten, bevor " "Sie klicken." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4226,23 +4226,23 @@ msgstr "" " die resultierenden Beweise. Es kann dann das Skript hinter dem Export " "überprüfen." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Oder vom Terminal aus erfassen" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Suchen Sie die Ziel-ID der Seite:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Finden Sie die Seite" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4252,14 +4252,14 @@ msgstr "" "Wählen Sie das Ziel mit der Beispiel-URL für Notizen aus. Ersetzen {ph0} " "unten mit seiner ID, dann lauf:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Erfassen Sie die nächsten zehn Sekunden" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4270,7 +4270,7 @@ msgstr "" "auf {ph0}Notizen exportieren{ph1} in diesem Browser. Das Ergebnis kommt nach" " dem Ende des Beobachtungsfensters an." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4281,49 +4281,49 @@ msgstr "" "während dieses Fensters und die Form der JSON-Antwort. Frühere Anfragen " "liegen außerhalb dieser Erfassung." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Lesen Sie das Anforderungs- und Exportskript" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Aufgenommen mit REA 4.1.0 am Beispiel lokaler Notizen" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Erfasste Tatsache" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Wert" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Anfrage" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Antwort" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Initiator der Anfrage" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · Skript" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Antwortstruktur" @@ -4331,19 +4331,19 @@ msgstr "Antwortstruktur" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} mit {ph1} und {ph2} Datenfelder" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Lesen Sie die geladenen Skripte" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4355,7 +4355,7 @@ msgstr "" "Daten verwendet werden:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4368,7 +4368,7 @@ msgstr "" " fest, dass dieser Klick angefordert wurde {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4380,7 +4380,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4405,65 +4405,65 @@ msgstr "" "erfassen Sie einen Klick, überprüfen Sie die Anforderung und folgen Sie dem " "Exportskript." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Browser-Beobachtung" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Kopieren Starten Sie den Beispielbrowser" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Beispiel-Eingabeaufforderung kopieren" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Kopieren finden Sie die Seite" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Kopieren Erfassen Sie die nächsten zehn Sekunden" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Kopieren Lesen Sie die geladenen Skripte" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Startseite{ph1} / Hilfslinien" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA Anleitungen." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4473,40 +4473,40 @@ msgstr "" "Browseranforderung. Jede Anleitung enthält eine Eingabeaufforderung, einen " "Code und Ergebnisse." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Erste Untersuchung" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Einrichten von REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" "Schließen Sie Ihren Codierungsagenten an oder verwenden Sie REA vom Terminal" " aus." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Erste Schritte mit REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Maschinencode-Programme" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "" "Stellen Sie eine Berechnung der linken / rechten Klangposition wieder her" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4516,22 +4516,22 @@ msgstr "" "Sie die Anweisungen, folgen Sie einem Aufrufer, lesen Sie numerische " "Konstanten und überprüfen Sie das wiederhergestellte C." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Handbuch zur Analyse von Maschinencode-Programmen" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "Modell: JavaScript und Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Einem CSV-Export folgen" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4541,14 +4541,14 @@ msgstr "" "und Hauptprozess. Verwenden Sie REA, um die API, den IPC-Kanal und den " "Dateischreiber zu verbinden." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Anleitung für JavaScript und Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4556,17 +4556,17 @@ msgstr "" "Für eine größere gepackte App folgen Sie {ph0} Zwischenablage-Brücke von " "Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Browserverhalten" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Beobachten Sie einen Klick" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4576,7 +4576,7 @@ msgstr "" "Exportanforderung und suchen Sie den Code, der die Antwort in einen Download" " umwandelt." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Anleitung zur Browserbeobachtung" @@ -4595,12 +4595,12 @@ msgstr "" "Lernen Sie REA anhand kurz gearbeiteter Beispiele: eine native Berechnung, " "einen Electron CSV Export und eine Browseranforderung." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -4609,7 +4609,7 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" @@ -4618,13 +4618,13 @@ msgstr "" "Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Verfolgen Sie einen Electron {ph0} CSV exportieren." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4633,14 +4633,14 @@ msgstr "" "Folgen Sie einem Knopfdruck von der Seiten-API über den Electron IPC zum CSV" " File Writer." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "In diesem Handbuch" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4648,7 +4648,7 @@ msgstr "{ph0}Beispiel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4656,7 +4656,7 @@ msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4664,7 +4664,7 @@ msgstr "{ph0}Verfolgen Sie den Exportcode{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4672,20 +4672,20 @@ msgstr "{ph0}Probieren Sie das Beispiel aus{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Überprüfen Sie den CSV-Schreiber{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Wohin geht \"Notizen exportieren\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4698,7 +4698,7 @@ msgstr "" "Hauptprozess und schreibt einen CSV . Das Verhalten ist auf mehrere Dateien " "verteilt." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Der CSV-Export über Electron-Prozesse hinweg" @@ -4712,7 +4712,7 @@ msgstr "Der CSV-Export über Electron-Prozesse hinweg" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4729,7 +4729,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4746,7 +4746,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4759,13 +4759,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} formatiert die Notizen → {ph1} schreibt {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4776,14 +4776,14 @@ msgstr "" "exponierte API. Der Pfad wird aus dem Code abgeleitet; Eine " "Laufzeiterfassung kann überprüfen, was ausgeführt wird." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Fragen Sie nach dem CSV Export" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4801,14 +4801,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Kopieren" @@ -4819,7 +4819,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4830,7 +4830,7 @@ msgstr "" " Notizen in diese App exportiere. Wo wird der CSV erstellt?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4840,7 +4840,7 @@ msgstr "" "Beispiel Eingabeaufforderung. Geben Sie den absoluten Pfad zum " "Anwendungsordner an oder {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4851,17 +4851,17 @@ msgstr "" "Einstiegspunkten, Modulen und Prozessgrenzen. Ihr Agent verwendet diese " "Karte, um die Untersuchung auf die Exportfunktion einzugrenzen." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Verfolgen Sie den Exportcode" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Die Seite ruft eine kleine API auf" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4872,7 +4872,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4884,7 +4884,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4895,7 +4895,7 @@ msgstr "" " die Notizen und der Hauptprozess schreibt {ph1} in den Download-Ordner des " "Benutzers." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4904,7 +4904,7 @@ msgstr "" "Aufgenommen von REA 4.1.0 im unten stehenden herunterladbaren Beispiel. " "Quellorte begleiten die API-, Kanal- und Handler-Ergebnisse." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analysieren Sie das Beispiel selbst" @@ -4912,25 +4912,25 @@ msgstr "Analysieren Sie das Beispiel selbst" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Beispiel-ZIP herunterladen{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Durchsuchen Sie die sechs Quelldateien" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Statische Anwendungsanalyse" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4941,7 +4941,7 @@ msgstr "" "einen IPC-Kanal und einen passenden Handler in finden {ph0}. Quellstandorte " "sind in {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4952,13 +4952,13 @@ msgstr "" "oder ASAR-Pfad. Ein Agent kann mit den Feature-Tracing-Tools von REA einer " "Literalzeichenfolge, einem API-Namen oder einem IPC-Kanal folgen." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Überprüfen Sie den CSV-Schreiber" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4968,7 +4968,7 @@ msgstr "" "Folgen {ph0} zu seinem Handler. Welche Eingänge erreichen den CSV Writer und" " was passiert, wenn das Schreiben der Datei fehlschlägt?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4984,7 +4984,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4998,7 +4998,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -5012,7 +5012,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -5038,32 +5038,32 @@ msgstr "" "IPC-Handler mit REA. Enthält herunterladbare Beispieldateien und ein " "verifiziertes Analyseergebnis." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "Modell: JavaScript und Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Beispiel-Eingabeaufforderung kopieren" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Statische Anwendungsanalyse kopieren" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -5072,7 +5072,7 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5081,7 +5081,7 @@ msgstr "" "Programmen" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." @@ -5089,7 +5089,7 @@ msgstr "" "Wiederherstellen von DX-BallS{ph0}berechnung der linken / rechten " "Klangposition." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5098,14 +5098,14 @@ msgstr "" "Überprüfen Sie die Originalanweisungen, identifizieren Sie die Eingabe und " "die Konstanten und überprüfen Sie dann das wiederhergestellte C." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "In diesem Handbuch" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5113,7 +5113,7 @@ msgstr "{ph0}Beispiel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5121,7 +5121,7 @@ msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5129,7 +5129,7 @@ msgstr "{ph0}Lesen Sie die REA-Ergebnisse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5137,18 +5137,18 @@ msgstr "{ph0}Wiederherstellen und überprüfen{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Verwenden Sie Ihre eigene Binärdatei{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Berechnen Sie die linke / rechte Stereoklangpositionierung" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5161,7 +5161,7 @@ msgstr "" # Reviewed for grammatical function-call terminology. #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5173,7 +5173,7 @@ msgstr "" "{ph1}. REA liefert auch die Maschinenbefehle und die aufrufenden Funktionen." " Damit kann der Agent die fehlenden Rechenschritte untersuchen." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Neu bei diesen Bedingungen?" @@ -5182,7 +5182,7 @@ msgstr "Neu bei diesen Bedingungen?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5194,7 +5194,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5208,7 +5208,7 @@ msgstr "" # Reviewed for grammatical function-call terminology. #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5221,7 +5221,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5233,7 +5233,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5243,7 +5243,7 @@ msgstr "" "{ph0}Konstant:{ph1} feste Zahlen, die im Programm gespeichert, als Rohbytes " "gelesen und dekodiert werden." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Drei Beweise, eine Rechnung" @@ -5254,7 +5254,7 @@ msgstr "Drei Beweise, eine Rechnung" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5273,7 +5273,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5292,7 +5292,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5303,7 +5303,7 @@ msgstr "" "Konstanten{ph3}{ph4}Referenzierte Bytes dekodieren zu {ph5}, {ph6} und einen" " Skalenwert.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5312,7 +5312,7 @@ msgstr "" "REA liefert die Anweisungen, die Funktionsaufrufbeziehung und die Bytes. Der" " Agent interpretiert sie zusammen." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Fragen Sie nach dem Verhalten" @@ -5321,7 +5321,7 @@ msgstr "Fragen Sie nach dem Verhalten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5332,19 +5332,19 @@ msgstr "" "Tools zur Analyse von Maschinencode-Programmen{ph3}, geben Sie die lokale " "ausführbare Datei und eine Frage an:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Welches Analysetool soll ich verwenden?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA benötigt eines davon, um native Programme zu lesen:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5359,7 +5359,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5372,7 +5372,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5383,7 +5383,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5399,14 +5399,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Kopieren" @@ -5417,7 +5417,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5428,7 +5428,7 @@ msgstr "" "Stereoklangpositionierung berechnet. Erklären Sie die Berechnung und zeigen " "Sie den Code.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5440,7 +5440,7 @@ msgstr "" "Verwenden Sie also Ihre eigene Kopie oder stellen Sie die gleiche Frage zu " "einem anderen kleinen Windows-Programm, das Sie haben." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Wie erhalte ich den vollständigen Pfad einer Datei?" @@ -5449,7 +5449,7 @@ msgstr "Wie erhalte ich den vollständigen Pfad einer Datei?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5465,7 +5465,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5478,7 +5478,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5488,17 +5488,17 @@ msgstr "" "{ph0}Jedes System:{ph1} ziehen Sie die Datei in ein Terminalfenster und ihr " "Pfad wird angezeigt." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Lesen Sie die REA-Ergebnisse" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Lesen Sie die Eingabe" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5509,14 +5509,14 @@ msgstr "" "Ansicht fehlt." # Reviewed for grammatical function-call terminology. -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Die aufrufende Funktion verfolgen" # Reviewed for grammatical function-call terminology. #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5527,12 +5527,12 @@ msgstr "" "multipliziert sie die Gitterkoordinate mit 30 und addiert {ph0} (20). So " "ergibt sich die Bildschirmposition des Ziegels." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Lesen Sie die referenzierten Konstanten" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5542,12 +5542,12 @@ msgstr "" "tatsächlichen Werte; Die Befehlsreihenfolge teilt dem Agenten mit, wie sie " "verwendet werden." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Schreiben und überprüfen Sie die wiederhergestellte Funktion" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5558,7 +5558,7 @@ msgstr "" " der Ganzzahlumwandlung auf -500, 0 und 500 abgebildet. Bei der Berechnung " "wird die Bildschirmmitte in die Mitte des Stereofelds gesetzt." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5571,7 +5571,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" @@ -5579,14 +5579,14 @@ msgstr "" "{ph0}Sehen Sie sich die vollständige Untersuchung und den Assembly-to-C-" "Vergleich an{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Probieren Sie es mit Ihrer eigenen Binärdatei aus" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5601,7 +5601,7 @@ msgstr "" " “Wie wird diese Datei analysiert?\" oder \"Welche Funktion behandelt diese " "Menüaktion?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5610,13 +5610,13 @@ msgstr "" "Wenn Sie bereits einen Funktionsnamen oder eine Adresse kennen, können Sie " "diese vom Terminal abfragen. Für eine konfigurierte Ghidra-Installation:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Funktionsanalyse" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5631,7 +5631,7 @@ msgstr "" "verwenden die importierte Binärdatei wieder, während diese Sitzung geöffnet " "ist." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5656,50 +5656,50 @@ msgstr "" "Anweisungen, folgen Sie einem Aufrufer, lesen Sie Konstanten und überprüfen " "Sie rekonstruiertes C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Analyse von Maschinencode-Programmen" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Beispiel-Eingabeaufforderung kopieren" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Analyse der Kopierfunktion" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Einrichten von REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5707,7 +5707,7 @@ msgstr "{ph0}Einrichten von REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5715,7 +5715,7 @@ msgstr "{ph0}Dinosaurier-Spiel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5723,7 +5723,7 @@ msgstr "{ph0}Rechner{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5731,25 +5731,25 @@ msgstr "{ph0}Probieren Sie REA aus {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Tiefer einsteigen{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Reverse Engineering mit Ihrem Codierungsagenten" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Finde heraus,{ph0}wie Software funktioniert." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Kopiere diesen Prompt in deinen Coding-Agent:" @@ -5762,26 +5762,26 @@ msgstr "Kopiere diesen Prompt in deinen Coding-Agent:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Kopieren" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Oder führe diesen Befehl im Terminal aus:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" @@ -5790,7 +5790,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5798,7 +5798,7 @@ msgstr "{ph0}01{ph1} Zweige dekodieren" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5806,7 +5806,7 @@ msgstr "{ph0}02{ph1} Anrufe verfolgen" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5816,20 +5816,20 @@ msgstr "{ph0}03{ph1} Wiederherstellen der Regel" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Original x64 * ausgewählte Anleitung{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * Welche Branche?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5839,29 +5839,29 @@ msgstr "" "“{ph0}0x5b? 0x5 Grad?{ph1} Zwei Sprünge an die gleiche Stelle. Welche " "Betreiber sind das?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Suchen Sie nach den Befehls-IDs und beschriften Sie den Zweig." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Teilen ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Multiplizieren ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Was machen die aufgerufenen Funktionen?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5871,26 +5871,26 @@ msgstr "" "“100 ist klar. Die Anrufe sind nur Adressen. {ph0}Welcher teilt sich? " "Welcher Wert geht ein?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" "Überprüfen Sie die Hilfsfunktionen und verfolgen Sie die gespeicherten " "Werte." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Teilen" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · Was ist die Regel?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5900,19 +5900,19 @@ msgstr "" "“Dieser Pfad multipliziert sich mit der anderen Eingabe. So {ph0}10% " "bedeutet 10% von 200{ph1} nach +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Benennen Sie die Operanden und überprüfen Sie beide Operatorpfade." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Anschauliche Argumentation von Experten" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5930,7 +5930,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -5938,83 +5938,83 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Beispiel Eingabeaufforderung * " "Rechner" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Beispielantwort * basierend auf den Ergebnissen" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "Nach + nimmt die% -Taste {ph0}ein Prozentsatz der ersten Zahl.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA liefert" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Die Anweisungen des Handlers, dekompilierter Code und Aufrufe." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Dein Agent erklärt" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Welcher Zweig gilt, was er berechnet und wie er neu erstellt wird." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Beispiel 01 * Dinosaurier-Spiel von Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Warum wird der Dinosaurier schneller?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Spielen" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Springen ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Neustart" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Geschwindigkeit" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Verwenden Sie die wiederhergestellte Beschleunigungsregel" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" "Ursprüngliche Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in " "Richtung 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -6027,7 +6027,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6042,7 +6042,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -6050,12 +6050,12 @@ msgstr "" "Untersuchtes Ziel: {ph0}wayous von Chromium abgeleitete Browser-" "Edition{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Öffnen Sie das Geschwindigkeitslabor →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Was jeder Teil tut" @@ -6066,7 +6066,7 @@ msgstr "Was jeder Teil tut" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6083,7 +6083,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6100,7 +6100,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6111,7 +6111,7 @@ msgstr "" "Sie{ph3}{ph4}Probieren Sie die ursprüngliche Beschleunigung aus und wählen " "Sie dann Ihr eigenes Tempo.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "" @@ -6119,7 +6119,7 @@ msgstr "" "Analyse an" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6130,7 +6130,7 @@ msgstr "" "Verbindung und gab das geladene zurück {ph0}, einschließlich seiner Quelle " "und Verdauung." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6145,7 +6145,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6162,7 +6162,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6180,7 +6180,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6189,34 +6189,34 @@ msgstr "" "{ph0}Geprüfter Geschwindigkeitscode{ph1} · {ph2} Chromium Autoren * BSD-" "Lizenz{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Beispiel 02 * Windows Rechner" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Die %-Taste des Rechners nachbauen." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Zurücksetzen" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% von 200 = 20. Dann ist 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Interaktive Darstellung der geprüften Prozentregel." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6228,7 +6228,7 @@ msgstr "Für dieses Beispiel, {ph0} und {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6241,7 +6241,7 @@ msgstr "" "erstellen Sie dann einen kleinen Taschenrechner, der beide " "verwendet.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Mit +" @@ -6249,13 +6249,13 @@ msgstr "Mit +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Nimm 10% der ersten Zahl.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Mit ×" @@ -6263,13 +6263,13 @@ msgstr "Mit ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Verwandle 10% in 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Von der installierten App zu einer funktionierenden% -Schaltfläche" @@ -6281,7 +6281,7 @@ msgstr "Von der installierten App zu einer funktionierenden% -Schaltfläche" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6299,7 +6299,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6311,12 +6311,12 @@ msgstr "" " die Regeln{ph3}{ph4}Überprüfen Sie den Zweig mit der Quelle von Microsoft " "und versuchen Sie dann oben + und ×.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Sehen Sie sich den echten Code an und wie die Antwort überprüft wurde" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6337,7 +6337,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6347,17 +6347,17 @@ msgstr "" "{ph0}Prozentuale Umsetzung{ph1} · {ph2}Testfälle von Microsoft{ph3} · " "{ph4}Anleitung zur nativen Einrichtung{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Ihre erste Untersuchung" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Probieren Sie REA mit einer kleinen App aus." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6366,17 +6366,17 @@ msgstr "" "Laden Sie unser Notizbeispiel herunter, verfolgen Sie den Export von CSV und" " überprüfen Sie eine geänderte Eingabe." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Probieren Sie das geführte Beispiel aus" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Maschinencode-Programme" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6385,17 +6385,17 @@ msgstr "" "Überprüfen Sie Funktionen, Zeichenfolgen, Referenzen und " "Funktionsaufrufbeziehungen in ausführbaren Dateien und Bibliotheken." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Handbuch zur Analyse von Maschinencode-Programmen" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "Modell: JavaScript und Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6404,17 +6404,17 @@ msgstr "" "Ordnen Sie Module, Routen, IPC und native Abhängigkeiten aus einem " "Anwendungsordner oder einem ASAR-Archiv zu." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Anwendungs-Workflows" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Browser- & Laufzeit-Aktivität" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6423,12 +6423,12 @@ msgstr "" "Erfassen Sie ausgewählte Browser- oder Prozessaktivitäten und vergleichen " "Sie dann die Ergebnisse über Läufe hinweg." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Anleitung zur Browserbeobachtung" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Noch Fragen?" @@ -6448,27 +6448,27 @@ msgstr "" "Codierungsagenten. Befolgen Sie klare Anleitungen und probieren Sie " "interaktive Beispiele mit REA aus." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Installationsaufforderung für REA kopieren" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Setup-Befehl kopieren" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Befolgen Sie die manuelle Taschenrechneranalyse" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Kopierrechner Prozentfrage" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6477,27 +6477,27 @@ msgstr "" "Dinosaurier-Minispiel. Verwenden Sie die Sprungtaste oder drücken Sie die " "Leertaste, während das Spiel fokussiert ist." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Aufforderung zur Dinosaurieranalyse kopieren" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Wählen Sie die Berechnung" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Aufforderung zur Analyse des Kopierrechners" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -6506,25 +6506,25 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Fallstudie * Aegis Authentifikator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Wie funktioniert ein Authentifikator{ph0}einen Login-Code generieren?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6534,17 +6534,17 @@ msgstr "" "die Berechnung in einem Android APK zu finden, und erstellen Sie sie dann " "mit einer Uhr neu, die Sie steuern können." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * Offizielle Veröffentlichung APK · 6,9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Sehen Sie sich Aegis auf GitHub an" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Von einem APK zu einem Code, den Sie reproduzieren können" @@ -6555,7 +6555,7 @@ msgstr "Von einem APK zu einem Code, den Sie reproduzieren können" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6573,7 +6573,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6591,7 +6591,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6603,14 +6603,14 @@ msgstr "" " Code.{ph3}{ph4}Eine neue Browserdemo reproduziert die Regel und vergleicht " "sie mit öffentlichen Referenzfällen.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "In dieser Fallstudie" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6618,7 +6618,7 @@ msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6626,7 +6626,7 @@ msgstr "{ph0}Probieren Sie den Codegenerator aus{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6634,7 +6634,7 @@ msgstr "{ph0}Finden Sie den Code mit REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6642,7 +6642,7 @@ msgstr "{ph0}Lesen Sie die Berechnung{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6650,20 +6650,20 @@ msgstr "{ph0}Überprüfen Sie die Rekonstruktion{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Überprüfen Sie den APK selbst{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Fragen Sie Ihren Agenten" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6681,21 +6681,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Kopieren" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6706,14 +6706,14 @@ msgstr "" "Android-Analyse von REA. {ph0}Holen Sie sich das APK und das Analyse-Setup " "↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Probieren Sie den Codegenerator aus" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6725,33 +6725,33 @@ msgstr "" "die Blocknummer mit dem Kontoschlüssel, um einen Code zu generieren. " "Derselbe Schlüssel und derselbe Block erzeugen denselben Code." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Bewegen Sie die Uhr über 60 Sekunden" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Zeit" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "Sekundenschnelle" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Unsere verstellbare Beispieluhr" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30-sekunden-Block" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Block" @@ -6760,35 +6760,35 @@ msgstr "Block" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 sekunden{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Generierter Code" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Kontoschlüssel + Sperre → sechs Ziffern" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Beispielzeit in Sekunden" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 sekunden" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 sekunden" @@ -6797,7 +6797,7 @@ msgstr "60 sekunden" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6809,7 +6809,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6819,7 +6819,7 @@ msgstr "" "Der Schlüssel ist fest, öffentlich {ph0}RFC 6238-Testdaten{ph1}. Die Demo " "implementiert die vom APK wiederhergestellte Berechnung." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6828,18 +6828,18 @@ msgstr "" "Das Diagramm zeigt das Ergebnis bei 59 Sekunden. Aktivieren Sie JavaScript, " "um die Uhr zu ändern." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Finden Sie den Code mit REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Grenzen Sie den APK auf drei Klassen ein" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6850,14 +6850,14 @@ msgstr "" "Fortschrittsbalken und importierte Konten. TOTP bedeutet ein zeitbasiertes " "Einmalpasswort." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Verbinden Sie den Generator mit dem Display der App" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6868,7 +6868,7 @@ msgstr "" "Basismethode. Inspizieren {ph0} zeigt dann das Display an, das anruft {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6878,14 +6878,14 @@ msgstr "" "Anfragen zeigen einen verkürzten Eingabepfad. Ergebnisklassennamen lassen " "das Gemeinsame weg {ph0} Präfix." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Lesen Sie die Berechnung" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6900,7 +6900,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6908,7 +6908,7 @@ msgstr "{ph0}01{ph1} Zeitblock" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6916,7 +6916,7 @@ msgstr "{ph0}02{ph1} Schlüssel + Block" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6924,7 +6924,7 @@ msgstr "{ph0}03{ph1} Sechs Ziffern" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6936,7 +6936,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6950,7 +6950,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6965,7 +6965,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6976,7 +6976,7 @@ msgstr "" "rechte Feld ist eine erläuternde Zusammenfassung. {ph0} Der Code von Aegis " "ist GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Im Inneren des Generators" @@ -6985,7 +6985,7 @@ msgstr "Im Inneren des Generators" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6996,7 +6996,7 @@ msgstr "" "und gibt diesen Körper zurück; Die ursprüngliche Quelle ruft den Helfer auf " "{ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -7013,20 +7013,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Vergleichen Sie mit der passenden Release-Quelle{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Überprüfen Sie die Rekonstruktion" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7039,29 +7039,29 @@ msgstr "" "unabhängigen Rekonstruktion auf {ph0}133 testfälle{ph1}, einschließlich " "Zeitblockgrenzen und Codes, die mit Null beginnen." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Beispiel zeit" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Sechsstelliger Code" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 sekunden" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 sekunden" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7072,17 +7072,17 @@ msgstr "" "SHA-1-Referenzfällen in {ph0}RFC6238{ph1}. Überprüfen Sie die Browser-" "Implementierung gegen sie:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Referenzprüfungen durchführen" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Lesen Sie die Berechnung der Demo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -7091,7 +7091,7 @@ msgstr "" "Die Referenzfälle verwenden acht Ziffern. Die Überprüfung überprüft auch " "ihre sechsstelligen Ergebnisse." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7100,14 +7100,14 @@ msgstr "" "Die Überprüfung führt extrahierte Java-Methoden und die neue Demo aus. Das " "Android APK wurde statisch inspiziert." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Überprüfen Sie den APK selbst" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7120,7 +7120,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7130,18 +7130,18 @@ msgstr "" "Android Analysis benötigt ein vollständiges JDK 17 oder höher. Wählen Sie es" " mit {ph0} oder {ph1}. In diesem Fall wurde JDK 21 verwendet." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Zeigen Sie mit REA auf die Providerdatei und überprüfen Sie den APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "MODELL: macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7154,7 +7154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7164,7 +7164,7 @@ msgstr "" "Eine nächste Frage: {ph0}was passiert, wenn ein Konto acht Ziffern oder ein " "anderes Zeitintervall verwendet?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Hauptquellen" @@ -7180,7 +7180,7 @@ msgstr "Hauptquellen" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7194,13 +7194,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}Referenzfälle zu RFC 6238{ph1} · {ph2}Demo-Testdaten{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7226,37 +7226,37 @@ msgstr "" "Login-Code-Berechnung wieder her und versuchen Sie eine Rekonstruktion mit " "einer einstellbaren Uhr." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK Fallstudie" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Beispiel-Eingabeaufforderung Aegis kopieren" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Folgen Sie der Login-Code-Berechnung" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Inspektionsbefehl APK kopieren" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -7265,26 +7265,26 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Fallstudie * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Finde die Flagge in{ph0}eine CTF-Binärdatei." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7295,17 +7295,17 @@ msgstr "" "Regeln in Gleichungen umzuwandeln und eine Eingabe zu finden, die das " "ursprüngliche Programm drucken lässt {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "maskierte Quadrate Flaggenprüfer · Einfach · Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Sehen Sie sich die ursprüngliche Herausforderung an" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Von einer binären zu einer geprüften Antwort" @@ -7316,7 +7316,7 @@ msgstr "Von einer binären zu einer geprüften Antwort" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7334,7 +7334,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7352,7 +7352,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7364,7 +7364,7 @@ msgstr "" "Korrekt!{ph3}{ph4}Ein Python-Skript löst die Gleichungen. REA erfasst das " "ursprüngliche Programm, das das Ergebnis akzeptiert.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7372,14 +7372,14 @@ msgstr "" "Die Herausforderung stammt von Joseph und wurde im offiziellen Repository " "von DownUnderCTF veröffentlicht." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "In dieser Fallstudie" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7387,7 +7387,7 @@ msgstr "{ph0}Finden Sie den Prüfcode{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7395,7 +7395,7 @@ msgstr "{ph0}Lesen Sie eine Maske{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7403,7 +7403,7 @@ msgstr "{ph0}Assemblierung zu lesbarem Code{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7411,7 +7411,7 @@ msgstr "{ph0}Löse die Gleichungen{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7419,20 +7419,20 @@ msgstr "{ph0}Überprüfen Sie die Antwort{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Probieren Sie es selbst aus{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Finden Sie den Prüfcode" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7451,17 +7451,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Kopieren" @@ -7472,7 +7472,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7484,7 +7484,7 @@ msgstr "" " Flag zu finden. Erklären Sie, wie die Prüfungen funktionieren, und " "überprüfen Sie dann die Antwort mit dem Originalprogramm.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7494,12 +7494,12 @@ msgstr "" "Herausforderung lokal verfügbar ist und eine Analyse des Maschinencode-" "Programmanbieters verbunden ist." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Folgen Sie der Eingabeaufforderung zu ihrer Funktion" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7508,14 +7508,14 @@ msgstr "" "Die Referenz gibt dem Agenten einen Ort zum Untersuchen, obwohl die " "ursprünglichen Funktionsnamen der ausführbaren Datei entfernt wurden." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Lesen Sie den Checker und seine beiden Helfer" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7528,7 +7528,7 @@ msgstr "" " gespeicherten Nummer. Seiner {ph0}-byte-Schritte über {ph1} bytes ergeben " "26 Masken." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7538,12 +7538,12 @@ msgstr "" "Zielpfad wird für die Anzeige gekürzt; Adressen beziehen sich auf das " "importierte Bild von REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Ein Häkchen zeigt einen Charakter" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7557,14 +7557,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" "Die siebte Prüfung wählt nur eine Position aus. {ph0}Offene Figur{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Lesen Sie die Maske und ihr Ziel aus der Binärdatei" @@ -7573,7 +7573,7 @@ msgstr "Lesen Sie die Maske und ihr Ziel aus der Binärdatei" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7586,12 +7586,12 @@ msgstr "" "Zusammen sagen diese Bytes dem Agenten, dass {ph2}, also ist dieser " "Charakter {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Von der Anleitung zum lesbaren Scheck" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7602,7 +7602,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7610,7 +7610,7 @@ msgstr "{ph0}01{ph1} Beginnen" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7618,7 +7618,7 @@ msgstr "{ph0}02{ph1} Wählen" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7626,7 +7626,7 @@ msgstr "{ph0}03{ph1} Hinzufügen" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7634,18 +7634,18 @@ msgstr "{ph0}04{ph1} Voraus" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Vergleichen" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * ausgewählte Originalanleitung" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Lesbare C · One-Check-Zusammenfassung" @@ -7653,7 +7653,7 @@ msgstr "Lesbare C · One-Check-Zusammenfassung" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7661,7 +7661,7 @@ msgstr "{ph0}01 * Bei Null beginnen.{ph1} {ph2} enthält die laufende Summe." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7673,7 +7673,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7685,7 +7685,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7700,7 +7700,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7711,7 +7711,7 @@ msgstr "" "Funktion erhält die Summe in {ph2}. Bei einer Abweichung springt sie zu " "{ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7721,12 +7721,12 @@ msgstr "" "eine erklärende Zusammenfassung mit beschreibenden Namen und einer " "abgeflachten 36-Zellen-Schleife." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Löse die 26 Gleichungen" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7738,13 +7738,13 @@ msgstr "" "überlappenden Auswahlen ergeben Gleichungen, die ein kleines Python-Skript " "zusammen lösen kann." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * Löser Auszug" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7758,19 +7758,19 @@ msgstr "" "mit Buchstaben, Ziffern, Unterstrichen und geschweiften Klammern. Der " "vollständige Download enthält alle 26 Masken und Ziele." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Laden Sie den vollständigen Solver herunter" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Überprüfen Sie die Antwort mit dem Originalprogramm" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7783,47 +7783,47 @@ msgstr "" " {ph0} zu {ph1} macht die erste Summe 1440 anstelle von 1441, und das " "Programm lehnt sie ab." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Eingang" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Beobachteter Output" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Ausstiegscode" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Flagge des Lösers" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Ein Charakter wurde geändert" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Zeigen Sie das wiederhergestellte Flag und die erfasste Ausgabe an" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * ursprüngliche Programmausgabe" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Flagge kopieren" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7833,12 +7833,12 @@ msgstr "" " Challenge-Metadaten der Organisatoren überein, das nach dem Lösen der " "Binärdatei überprüft wurde." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Quelle, Zielidentität und Analysedetails" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7849,7 +7849,7 @@ msgstr "" "mit Ghidra 12.1.4 auf Linux x64. Die Binärdatei ist eine gestrippte x86-64 " "ELF, 15.248 Byte." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7872,7 +7872,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7882,12 +7882,12 @@ msgstr "" "{ph0}Vergleiche mit der Quelle des Veranstalters{ph1} · {ph2}Metadaten und " "Flag abfragen{ph3} · {ph4} REA Hinweise zum Nachweis{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Probieren Sie es selbst aus" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7897,13 +7897,13 @@ msgstr "" "herunter. Verwenden Sie die obige Eingabeaufforderung, um mit Ihrem Agenten " "Nachforschungen anzustellen, oder führen Sie das mitgelieferte Skript aus." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * lösen und ausführen" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7916,7 +7916,7 @@ msgstr "" "Zum Ausführen der ursprünglichen ausführbaren Datei ist Linux x86-64 " "erforderlich." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Richten Sie REA mit Ihrem Codierungsagenten ein" @@ -7938,27 +7938,27 @@ msgstr "" "Masken und vergleichen Sie ein wiederhergestelltes Flag mit dem " "Originalprogramm." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF flag-checker Fallstudie" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "CTF-Beispiel-Eingabeaufforderung kopieren" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTF-Maskengleichung; auf kleineren Bildschirmen horizontal scrollen" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7969,42 +7969,42 @@ msgstr "" "überspringt dann 14. Nur diese Zelle trägt zur Summe bei. Der erforderliche " "Zeichencode ist 55, was bedeutet, dass das Zeichen 7 ist." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Befolgen Sie den CTF-Check" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "CTF-Baugruppe kopieren" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Kopierlesbare CTF-Prüfung" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Auszug aus dem CTF-Löser kopieren" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Wiederhergestelltes Flag kopieren" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Kopieren von CTF-Solver-Befehlen" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -8013,25 +8013,25 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Fallstudie * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Umbau DX-Ball {ph0}von seiner ausführbaren Datei." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -8040,14 +8040,14 @@ msgstr "" "Das Ziel ist eine wartbare C-Version des 1996er Windows-Spiels. REA hilft " "dem Agenten, das Original Funktion für Funktion zu inspizieren." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Modell: Windows i386 · C · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8059,14 +8059,14 @@ msgstr "" "Aufrufer und Datenlesungen; Das Rekonstruktionsprojekt implementiert und " "testet das Ergebnis. {ph0}Offene Figur{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "In dieser Fallstudie" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -8074,7 +8074,7 @@ msgstr "{ph0}Projekt{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -8082,7 +8082,7 @@ msgstr "{ph0}Ton schwenken{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -8090,23 +8090,23 @@ msgstr "{ph0}Überprüfung des Ergebnisses{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Setzen Sie die Arbeit fort{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "beibehaltene C-Funktionen" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "vergleiche mit Originalcode" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "funktionen mit übereinstimmenden kompilierten Bytes" @@ -8117,7 +8117,7 @@ msgstr "funktionen mit übereinstimmenden kompilierten Bytes" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8127,12 +8127,12 @@ msgstr "" "Projekt-Checkpoint: 7. Oktober 2026. {ph0}Fortschrittsbuch{ph1} · " "{ph2}Testabdeckung{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Das Projekt bisher" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8147,12 +8147,12 @@ msgstr "" " spielbaren Spiel wird mit Ball- und Paddelphysik, Power-Up-Handling und " "Windows-Integration fortgesetzt." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Ermittlung der Berechnung der linken / rechten Schallposition" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8171,17 +8171,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Kopieren" @@ -8192,7 +8192,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8203,7 +8203,7 @@ msgstr "" "Stereoklangpositionierung berechnet. Erklären Sie die Berechnung und zeigen " "Sie den Code.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8214,7 +8214,7 @@ msgstr "" "ausführbare Datei verfügbar ist. Die folgende Untersuchung zeigt die REA-" "Abfragen und Beweise hinter der Antwort." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8229,7 +8229,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8243,12 +8243,12 @@ msgstr "" "Gleitkommaoperationen. Diese Diskrepanz gab dem Agenten einen konkreten " "Grund, weiter zu ermitteln." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Die erste Decompiler-Ansicht" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8258,18 +8258,18 @@ msgstr "" "Anweisungen lesen, werden die Eingabe und die Berechnung angezeigt, die " "diesen Aufruf einspeisen." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Drei Fragen beantwortet durch REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Stellen Sie die fehlende Eingabe wieder her" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8281,7 +8281,7 @@ msgstr "" "Dekompilierungsansicht fehlt." # Reviewed for grammatical function-call terminology. -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Die aufrufende Funktion erklärt die Eingabe" @@ -8289,7 +8289,7 @@ msgstr "Die aufrufende Funktion erklärt die Eingabe" # Reviewed for grammatical function-call terminology. #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8300,12 +8300,12 @@ msgstr "" "Aufruf multipliziert sie {ph0} mit 30 und addiert 20. Das ergibt die " "Bildschirmkoordinate des Ziegels, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Lesen Sie die Werte hinter den Speicheradressen" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8315,12 +8315,12 @@ msgstr "" " anfängliche Schwenkskala fest. Der Agent hat jetzt die Werte, die für den " "C-Ausdruck benötigt werden." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Von den Erkenntnissen von REA zu C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8331,7 +8331,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8339,7 +8339,7 @@ msgstr "{ph0}01{ph1} Eingang" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8347,7 +8347,7 @@ msgstr "{ph0}02{ph1} Multiplizieren" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8355,7 +8355,7 @@ msgstr "{ph0}03{ph1} Subtrahieren" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8363,18 +8363,18 @@ msgstr "{ph0}04{ph1} Skala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Zurückgeben" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Original x86 * Auszug" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Rekonstruiertes C" @@ -8384,7 +8384,7 @@ msgstr "Rekonstruiertes C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8404,7 +8404,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8421,7 +8421,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8439,7 +8439,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8456,7 +8456,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8469,7 +8469,7 @@ msgstr "" " Ergebnis auf {ph4}; original-x86-Vergleiche überprüfen den zurückgegebenen " "Wert." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8480,24 +8480,24 @@ msgstr "" "aus. Die vollständige Liste unten enthält auch die dazwischenliegenden " "Speicher sowie die Einrichtung und Bereinigung von Funktionen." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Vollständige Versammlung und unterstützende Beweise" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA Ergebnis · 0x406400–0x40643e" # Reviewed for grammatical function-call terminology. -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Was die aufrufende Funktion übergibt" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8507,54 +8507,54 @@ msgstr "" "Die Brick-Hit-Funktion bei {ph0} skaliert die Kachelkoordinate um 30, " "addiert 20 und schiebt sie dann vor den Anruf:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Was die Daten lesen, stellen Sie fest" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA Byte liest, dekodiert als Little-Endian-Doubles" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Anschrift" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Wert" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Verwendet für" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Erste Multiplikation" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Subtraktion" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} zunächst" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Gespeicherte Pfannenwaage" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8570,7 +8570,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8580,12 +8580,12 @@ msgstr "" "{ph0}Gepflegte Quelle{ph1} · {ph2}Ermittlungsnotizen und " "Beweisreferenzen{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Überprüfen der wiederhergestellten Funktion" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8595,12 +8595,12 @@ msgstr "" "stimmen mit dem Original überein und ihre kompilierten Bytes stimmen mit der" " ausführbaren Datei überein." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 Verhaltensfälle" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8611,12 +8611,12 @@ msgstr "" "Rückgabewert mit dem gepflegten C. Sie decken jede ganzzahlige Position von " "0 bis 640 auf fünf Pan-Skalen ab: 0, 0,5, 1, 20 und -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 übereinstimmende Bytes" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8628,7 +8628,7 @@ msgstr "" "die überprüften Verschiebungen angewendet und die referenzierten Konstanten " "überprüft wurden." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8644,18 +8644,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Lesen Sie die Compiler-Wiedergabedetails{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Setzen Sie die Untersuchung fort" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8667,7 +8667,7 @@ msgstr "" "relevanten Funktionen, stellen Sie ihren Zustand und ihre Abhängigkeiten " "wieder her und vergleichen Sie dann die Implementierung mit dem Original." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8677,7 +8677,7 @@ msgstr "" "Einrichtungsanweisungen des DX-Ball-Projekts und geben Sie das passende " "Originalziel an. Dann lauf:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "In der Kasse des DX-Ball" @@ -8686,7 +8686,7 @@ msgstr "In der Kasse des DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8700,7 +8700,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8716,7 +8716,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8740,7 +8740,7 @@ msgstr "" "Folgen Sie einer DX-Ball-Rekonstruktion von der Binäranalyse über REA zu " "gepflegten C-, Original-x86-Tests und passenden kompilierten Funktionsbytes." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8748,7 +8748,7 @@ msgstr "" "DX-Ball Sound-Pan-Untersuchung; auf kleineren Bildschirmen horizontal " "scrollen" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8764,70 +8764,70 @@ msgstr "" "ursprüngliche x86 und durch VC4.0-Compiler-Wiedergabe mit 63 Bytes " "überprüft." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball Rekonstruktion Fallstudie" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Beispiel-Eingabeaufforderung kopieren" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Befolgen Sie die Berechnung der linken / rechten Klangposition" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Original-Montageauszug kopieren" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Ton kopieren-Pan-Funktion" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Komplette Sound-Pan-Baugruppe kopieren" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Kopieren Sie den DX-Ball-Analysebefehl" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Startseite{ph1} / Präsentieren" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA Fallstudien." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8836,17 +8836,17 @@ msgstr "" "Android, Spiele, Electron und eine CTF-Herausforderung mit Code, Zahlen und " "geprüften Ergebnissen." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Androide * APK Analyse" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Wie ein Authentifikator einen Anmeldecode generiert" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8858,22 +8858,22 @@ msgstr "" "bewegen Sie dann eine Demo-Uhr, um zu sehen, warum sich der Code alle 30 " "Sekunden ändert." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Lesen Sie die Android-Fallstudie" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Analyse von Maschinencode-Programmen" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Lösen Sie einen CTF-Flag-Checker" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8884,22 +8884,22 @@ msgstr "" "Sie die Prüffunktionen, verwandeln Sie Masken und Summen in Gleichungen und " "überprüfen Sie dann das gelöste Flag mit dem Originalprogramm." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Lesen Sie die CTF-Fallstudie" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Einheimische * Rekonstruktion" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-BallS Berechnung der linken / rechten Klangposition" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8911,22 +8911,22 @@ msgstr "" " numerische Konstanten führen zu einer kleinen C-Funktion, die mit dem " "ursprünglichen Verhalten und allen 63 kompilierten Bytes verglichen wird." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Lesen Sie die DX-Ball-Fallstudie" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Merkmalsverfolgung" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Wie Notion Text und HTML kopiert" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8938,22 +8938,22 @@ msgstr "" "Sie dann, wie ein kleiner HTML-Marker umfangreiche Blockdaten mit einer " "Kopie verknüpft." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Lesen Sie die Notion-Fallstudie" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Rekonstruktion" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Wie TH04 einen Kugelring zielt" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8965,17 +8965,17 @@ msgstr "" " und sehen Sie dann, wie sie einen auf den Spieler gerichteten Ring " "erzeugen." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Lesen Sie die TH04-Fallstudie" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Schritt-für-Schritt-Anleitungen" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8985,7 +8985,7 @@ msgstr "" "und eine Browseranforderung. Jeder beginnt mit einer Aufforderung und einem " "konkreten Ziel." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Lesen Sie die Anleitungen" @@ -9005,12 +9005,12 @@ msgstr "" "einem Android-Authentifikator, DX-Ball, Notion, TH04 und einem DownUnderCTF-" "Flag-Checker." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -9019,25 +9019,25 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Fallstudie * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Wie Notion kopiert{ph0}text und HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -9046,12 +9046,12 @@ msgstr "" "Verfolgen Sie einen Aufruf der Zwischenablage von der Seiten-API von Notion " "über den Preload- und den Hauptprozess zum Clipboard Writer von Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Arbeitsfläche 7.6.1 * JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Die Brücke im Desktop-Paket des Notion" @@ -9063,7 +9063,7 @@ msgstr "Die Brücke im Desktop-Paket des Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9080,7 +9080,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9097,7 +9097,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9114,7 +9114,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9125,13 +9125,13 @@ msgstr "" " den mitgelieferten Text und HTML.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Ein Kanal verbindet die beiden Seiten: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9141,14 +9141,14 @@ msgstr "" " Beim Auflösen der Wrapper werden die Electron-Aufrufe hinter diesen Namen " "angezeigt." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "In dieser Fallstudie" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9156,7 +9156,7 @@ msgstr "{ph0}Folgen Sie der Klemmbrett-Brücke{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9164,19 +9164,19 @@ msgstr "{ph0}Die Struktur eines Blocks beibehalten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Weitere Beispiele und Quellen{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Wohin geht der Kopiervorgang?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9196,17 +9196,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Kopieren" @@ -9217,7 +9217,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9228,7 +9228,7 @@ msgstr "" " in die Systemzwischenablage kopiert. Zeigen Sie den Code bei jedem Schritt " "an.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9237,12 +9237,12 @@ msgstr "" "Eine Beispiel-Eingabeaufforderung mit dem lokalen Anwendungspaket von " "Notion, das Ihrem Codierungsagenten zur Verfügung steht." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA findet, wo mit dem Lesen begonnen werden soll" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9253,13 +9253,13 @@ msgstr "" "verfügbar ist, und den Aufruf, der eine IPC-Anforderung sendet. Beide " "Befunde werden mit Quellbereichen im minimierten Bündel geliefert:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA Erkenntnisse → zwei Orte zum Öffnen" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9273,7 +9273,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9287,12 +9287,12 @@ msgstr "" "{ph1}. Dieser Name gibt dem Agenten etwas Genaues, nach dem er im Hauptpaket" " suchen kann. Die vier folgenden Auszüge zeigen die Route, die es verbindet." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Vier kurze Code-Stücke" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9301,13 +9301,13 @@ msgstr "" "Vereinfacht aus dem verpackten JavaScript mit lesbaren Variablennamen. Nicht" " verwandte Mitglieder werden weggelassen." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Beginnen Sie bei der API, die der Seite angezeigt wird" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9317,13 +9317,13 @@ msgstr "" "Dieses Mitglied liefert den Kanalnamen. Die Umsetzung von {ph0} sagt uns, " "wie die Anfrage den Prozess der Seite verlässt." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Lösen Sie den Wrapper des Preloads auf" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9334,14 +9334,14 @@ msgstr "" "Antwort-IPC von Electron weiter. Wir können jetzt suchen nach {ph0} auf der " "Hauptprozesseite." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Überprüfen Sie, wie der Empfänger registriert ist" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9351,12 +9351,12 @@ msgstr "" "Der Hauptprozess verwendet einen anderen Wrapper. Seiner {ph0} methode " "registriert eine {ph1} empfänger für diesen Kanal." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Finden Sie den Schreib- und Absendercheck" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9368,13 +9368,13 @@ msgstr "" "beiden aufgelösten Wrapper verbinden die exponierte Methode mit diesem " "Aufruf." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Wie behält ein kopierter Block seine Struktur bei?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9385,27 +9385,27 @@ msgstr "" "Blockdaten lokal und fügt eine ID in den kopierten HTML-Code ein, um sie zu " "verbinden." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "HTML-Links zu gespeicherten Blockdaten" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Lesen Sie die HTML-ID" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Finden Sie die gleiche lokale ID" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Wiederherstellen von Notion-Blockdaten" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9415,7 +9415,7 @@ msgstr "" "Blockdaten wieder her, wenn die IDs übereinstimmen. Ein veralteter Eintrag " "gibt nur Text und HTML zurück." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9424,24 +9424,24 @@ msgstr "" "Beim Einfügen sucht Notion nach der HTML-ID und vergleicht sie mit der " "gespeicherten Kopie. Übereinstimmende IDs stellen die Blockdaten wieder her." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Format der Zwischenablage, aufgezeichnet aus Web-Assets, die am 13.Juli 2026" " zwischengespeichert wurden." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Weitere Beispiele und Quellen" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Ein weiteres Beispiel: Markdown-Tabellen" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9450,12 +9450,12 @@ msgstr "" "Notion analysiert Markdown in Blockdaten. Dieses Beispiel zeigt, wie aus " "einer Tabelle Kopf- und Datenzeilen werden." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Eine Tabelle durch den Markdown-Parser von Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9464,13 +9464,13 @@ msgstr "" "Aufgezeichnete Ausgabe von einem extrahierten Markdown-Parser. Die Tabelle " "wird zu Zeilen und Zellen." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Ein anderer Pfad: die Offline-SQLite-Verbindung" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9484,7 +9484,7 @@ msgstr "" "an einen SQLite-Dienstprogrammprozess weiter. Nachfolgende Anweisungsstapel " "und Ergebnisse werden über diesen Port übertragen." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9494,7 +9494,7 @@ msgstr "" "ausgeführt wird und warum bei der Verfolgung nur der anfänglichen IPC-" "Anforderung die spätere Konversation übersehen wird." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Quellen und wie man die Auszüge liest" @@ -9502,7 +9502,7 @@ msgstr "Quellen und wie man die Auszüge liest" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9520,7 +9520,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9537,7 +9537,7 @@ msgstr "" "Kabelbäume aus; Ihre Ausgaben beschreiben diese Sonden und nicht eine " "erfasste Desktop-UI-Sitzung." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9552,7 +9552,7 @@ msgstr "" "Wrapper-Implementierungen im Paket verbunden." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9570,7 +9570,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9584,7 +9584,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9610,53 +9610,53 @@ msgstr "" "Wrapper und den Hauptprozess von Electron mit kurzen Codeauszügen und einem " "Blick auf das umfangreiche Zwischenablage-Format." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron Fallstudie" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Notion Analyseaufforderung kopieren" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Kopieren Notion Vorspannung Auszug" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Kopieren Notion Wrapper-Auszug aufrufen" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Kopieren Sie den Auszug aus dem Notion-Handler-Wrapper" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Kopieren Notion Zwischenablage Empfänger Auszug" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "" "Wiederherstellen reichhaltiger Daten aus der Zwischenablage beim Einfügen" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Nach oben" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -9665,25 +9665,25 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Fallstudie * Touhou 4: Lotus Land Geschichte" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Rekonstruktion des TH04{ph0}aufzählungsmuster." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9693,17 +9693,17 @@ msgstr "" "um die ursprüngliche DOS-Funktion zu überprüfen, und folgen Sie dann den " "Anweisungen in lesbares C ++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 · 16-Bit-DOS · C++ und Assemblierung" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Sehen Sie sich die Rekonstruktion des TH04 an" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Von der Originalanleitung zur geprüften Quelle" @@ -9714,7 +9714,7 @@ msgstr "Von der Originalanleitung zur geprüften Quelle" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9730,7 +9730,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9748,7 +9748,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9765,7 +9765,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9777,7 +9777,7 @@ msgstr "" "Bytes{ph3}{ph4}Aufgezeichnete Compilerprüfungen decken den Code zur " "Aufzählungszeichengenerierung ab, der diesen Helfer enthält.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9786,14 +9786,14 @@ msgstr "" "REA gibt den Originalcode und seine Analysebeweise zurück. Das Projekt TH04 " "liefert die gepflegten Quell- und Compilerprüfungen." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "In dieser Fallstudie" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9801,7 +9801,7 @@ msgstr "{ph0}Der Kugelring{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9809,7 +9809,7 @@ msgstr "{ph0}Was REA zurückgibt{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9817,7 +9817,7 @@ msgstr "{ph0}Assemblierung nach C ++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9825,18 +9825,18 @@ msgstr "{ph0}Überprüfen der Quelle{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Das vollständige Projekt{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Wie ein Ring auf den Spieler zielt" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9855,16 +9855,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ihr Codierungsagent" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Kopieren" @@ -9875,7 +9875,7 @@ msgstr "Kopieren" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9886,7 +9886,7 @@ msgstr "" "Kugelring erstellt und auf den Spieler richtet. Erklären Sie die Berechnung " "und zeigen Sie den Code.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9896,7 +9896,7 @@ msgstr "" "Datei und der Rekonstruktions-Checkout lokal verfügbar sind." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9910,7 +9910,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9920,12 +9920,12 @@ msgstr "" "Eine Illustration der wiederhergestellten Winkelmathematik für Zählung 16, " "Spielerrichtung 40 und Schablonendrehung 0. {ph0}Offene Figur{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Die Zündvorlage in der wiederhergestellten Quelle" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Ellys Ringangriff * Quellenauszug" @@ -9934,7 +9934,7 @@ msgstr "Ellys Ringangriff * Quellenauszug" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9944,13 +9944,13 @@ msgstr "" "Diese Linien wählen das Muster vor der Schwierigkeits- und " "Leistungsabstimmung aus. {ph0}Lesen Sie die Quelle des Angriffs{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Was REA zurückgibt" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9962,12 +9962,12 @@ msgstr "" " Geschosses festlegt. REA gibt seine Anweisungen, Pseudocode und Referenzen" " zurück. Drei Teile dieses Ergebnisses erklären das Muster." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Überprüfen Sie das DOS-Image, bevor Sie den Code lesen" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9976,7 +9976,7 @@ msgstr "" "Die Prüfung bindet den geladenen Code und die Umzugsdatensätze an die " "gelieferte ausführbare Datei. Der obige Pfad ist für die Anzeige verkürzt." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Lesen Sie die Multiplikation und Division des Rings" @@ -9984,7 +9984,7 @@ msgstr "Lesen Sie die Multiplikation und Division des Rings" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9997,12 +9997,12 @@ msgstr "" "gepflegte Quelle benennt dieses Feld {ph2}. Die vollständige Sequenz " "erscheint unten." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Finde heraus, wo sich das Muster dem Spieler zuwendet" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -10015,12 +10015,12 @@ msgstr "" "addiert. Quellennamen machen diese Adressen lesbar; Mit REA kann der Agent " "die ursprünglichen Vorgänge dahinter überprüfen." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Von Assembly zu lesbarem C ++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -10033,7 +10033,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -10041,7 +10041,7 @@ msgstr "{ph0}01{ph1} Index" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -10049,7 +10049,7 @@ msgstr "{ph0}02{ph1} Raum" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -10057,7 +10057,7 @@ msgstr "{ph0}03{ph1} Ziel" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -10065,18 +10065,18 @@ msgstr "{ph0}04{ph1} Drehen" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Speichern" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * originale 16-Bit-Anleitung" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Lesbare C ++ * zielgerichtete Ring-Zusammenfassung" @@ -10084,7 +10084,7 @@ msgstr "Lesbare C ++ * zielgerichtete Ring-Zusammenfassung" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10099,7 +10099,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10115,7 +10115,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10131,7 +10131,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10146,7 +10146,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10160,7 +10160,7 @@ msgstr "" " wie bei der Umwandlung ohne Vorzeichen. Die umgebende Quelle wandelt diesen" " Winkel und diese Geschwindigkeit ebenfalls in Geschwindigkeit um." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10172,7 +10172,7 @@ msgstr "" "folgenden Compiler-Prüfungen gelten für die gepflegte Quelle im verknüpften " "Projekt." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Lesen Sie die gepflegte Ring- und Zielquelle" @@ -10189,7 +10189,7 @@ msgstr "Lesen Sie die gepflegte Ring- und Zielquelle" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10199,12 +10199,12 @@ msgstr "" "{ph0}Ringmakro{ph1} · {ph2}Ziel- und Geschwindigkeitsquelle{ph3} · " "{ph4}Winkeldarstellung{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Überprüfen der gepflegten Quelle" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10214,12 +10214,12 @@ msgstr "" " Bullet-Generierung, einschließlich dieses Helpers, mit seiner angehefteten " "Turbo C ++ 4.0J-Toolchain." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2.139 übereinstimmende Bytes" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10228,12 +10228,12 @@ msgstr "" "Der kompilierte Code zur Aufzählungszeichengenerierung entspricht einem " "2.139 Byte großen Abschnitt der ursprünglichen ausführbaren Datei." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Zwei saubere Builds" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10247,66 +10247,66 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" "Aufgenommen am 3. Oktober 2026. {ph0}Lesen Sie die Compiler-Prüfungen{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Zielidentität und Analyseumfang" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Ursprüngliches Ziel" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156.258 bytes, ZWEI MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Hilfseintrag" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} im geladenen Bild von REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Versatz der ursprünglichen Datei" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, zurückgegeben von {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Inspektion aufgezeichneter Codes" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 · 7. Oktober 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10317,7 +10317,7 @@ msgstr "" "vergleichen auch den Kartenbeitrag und die überlappende Verlagerung." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10332,7 +10332,7 @@ msgstr "" "ausgewählten Anweisungen liegen in diesen gemeldeten Bereichen." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10349,7 +10349,7 @@ msgstr "" "sein Repository-Manifest festgelegt, wobei die unabhängige Herkunft des " "unberührten Dumps noch offen ist." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10360,12 +10360,12 @@ msgstr "" "vollständigen Spiels, Timing und Verhalten der PC-98-Hardware haben separate" " Laufzeitprüfungen im Rekonstruktionsprojekt." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Die vollständige TH04-Rekonstruktion" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10378,7 +10378,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10390,7 +10390,7 @@ msgstr "{ph0}Erkunden Sie das TH04-Repository{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10406,7 +10406,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10422,7 +10422,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10448,22 +10448,22 @@ msgstr "" "Sie der Assembly und dem wiederhergestellten C ++, um zu sehen, wie ein " "Kugelring beabstandet und auf den Spieler gerichtet ist." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 bullet-Muster Fallstudie" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Beispiel-Eingabeaufforderung TH04 kopieren" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10471,7 +10471,7 @@ msgstr "" "TH04 feste und zielgerichtete Geschossringe; auf kleineren Bildschirmen " "horizontal scrollen" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10485,27 +10485,27 @@ msgstr "" "Spieler. Beide halten einen Abstand von 16 Winkeleinheiten oder 22,5 Grad " "ein." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Kopieren Sie die TH04-Zündschablone" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Befolgen Sie die TH04 Zielringberechnung" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Auszug aus der TH04-Baugruppe kopieren" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Kopierlesbare Zielringberechnung" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Nach oben" @@ -11001,601 +11001,601 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Gleicher Abstand: 256 ÷ 16 = 16 Winkeleinheiten = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Fallstudien" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Erste Schritte" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Anleitungen" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Quellcode" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT-Lizenz" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Zur Community" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Auf X folgen" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * ausgewählte Skriptquelle" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Quellcode" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Erwartete Formatierungsausgabe" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Anweisung" # Reviewed for grammatical function-call terminology. -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Aufrufende Funktion" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Konstant" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C-Funktion" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Schaltfläche" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API vorladen" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Dateiendung.CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Ihr Klick" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Erfasste Anfrage" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Skript exportieren" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA Ergebnis * Zusammenfassung.ipc Auszug" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA Auszug aus der Anleitung · 0x406409" # Reviewed for grammatical function-call terminology. -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA · Aufrufende Funktion bei 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA Byte-Ergebnisse * interpretiert als Little-Endian-Doubles" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Wiederhergestellter C · -Auszug" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Präsentieren →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Ausgewählte Einstellungen aus dem überprüften Skript" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Lesbare Zusammenfassung des % -Handlers" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * ausgewählte Originalanleitung" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Betreiber-IDs * Quelle von Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Vertreter → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → Agent * ausgewählte Ergebnisse" # Reviewed for grammatical function-call terminology. -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → Agent · Methoden und aufrufende Funktionen" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * ausgewähltes dekompiliertes Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Lesbare Zusammenfassung * Interpretation des Agenten" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, kompletter Körper" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Laden Sie Aegis APK herunter" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Android-Analyse-Anbieter herunterladen" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Vertreter → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → Agent * ausgewählte Ergebnisse" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → Agent * ausgewählte Anweisungen" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agent → REA · Byte lesen" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → Agent * siebte Einträge" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Ursprüngliche ausführbare Datei * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Laden Sie die ursprüngliche Herausforderung herunter" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Löser herunterladen" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA Ergebnis * Pseudocode-Auszug" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Vertreter → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → Agent * Anweisungsauszug" # Reviewed for grammatical function-call terminology. -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → Agent · Auszug der aufrufenden Funktion" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Vertreter → REA * zwei {ph0} Antr" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA Byte-Ergebnisse * dekodiert als Doppel" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Beginnen Sie mit Ihrem eigenen Ziel" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "MODELL: APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Code generieren" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Wiederhergestellte Regel" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Einstellbare Uhr" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binär" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Code überprüfen" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Gleichung" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Richtig!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Ausführbar" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA Ergebnisse" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Wiederhergestelltes C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Validierung" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Verpackte App" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Exponierte API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC-Verpackungen" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Zwischenablage" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Ursprünglicher DOS-Code" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA Anleitung" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Winkelberechnung" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Kugelring" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "API für exponierte Seiten" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Renderer-IPC-Aufruf" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "An die Zwischenablage des Systems gesendet" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Lokal gespeichert von Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Markdown-Eingabe" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Strukturierte Parser-Ausgabe * Auszug" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analysieren Sie Ihre eigene App" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Vertreter → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → Agent * ausgewählte Felder" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Vertreter → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → Agent * Anweisungsauszug" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Gleiches Funktionsergebnis * Zielauszug" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Entsprechendes gepflegtes C ++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Ringmakro * TH04 Zweig, Auszug" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Winkel und Geschwindigkeit * Quellenauszug" @@ -11629,7 +11629,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11647,7 +11647,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11668,7 +11668,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11690,7 +11690,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11709,7 +11709,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11722,14 +11722,14 @@ msgstr "" "Zustimmung. Prüfe anschließend die Installation.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Wiederaufbau · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11740,7 +11740,7 @@ msgstr "" "Codierungsagenten aus und überprüfen Sie die vorgeschlagenen Änderungen." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11749,7 +11749,7 @@ msgstr "Ein mitgeliefertes Beispiel * {ph0} und npm · Ihr Codierungsagent" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11768,7 +11768,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11783,7 +11783,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11802,7 +11802,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11813,7 +11813,7 @@ msgstr "" "auf {ph7} und schreibt die Datei.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11828,7 +11828,7 @@ msgstr "{ph0} * linien 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11842,7 +11842,7 @@ msgstr "" "an.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11854,16 +11854,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Du brauchst {ph0} 22 (22.23.4+), 24 (24.22.1+) oder 26+ (>=26.12.1). npm kommt mit {ph1}." +"Du brauchst {ph0} 22 (22.23.4+), 24 (24.22.1+) oder 26+ (>=26.12.1). npm " +"kommt mit {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11871,20 +11873,20 @@ msgstr "Sie haben {ph0} nicht oder sind sich nicht sicher?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Wenn {ph0} v22.23.4+, v24.22.1+ oder v26.12.1+ ausgibt, sind Sie bereit. Wenn eine " -"ältere Version oder \"not recognized\" / \"command not found\" ausgegeben " -"wird, installieren Sie {ph1} 24 LTS:" +"Wenn {ph0} v22.23.4+, v24.22.1+ oder v26.12.1+ ausgibt, sind Sie bereit. " +"Wenn eine ältere Version oder \"not recognized\" / \"command not found\" " +"ausgegeben wird, installieren Sie {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11898,7 +11900,7 @@ msgstr "{ph0} * beispiel Quellenauszug" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11909,9 +11911,9 @@ msgstr "" "{ph5}Herunterladen {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11919,7 +11921,7 @@ msgstr "{ph0} * beispielquelle" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11934,7 +11936,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11951,7 +11953,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11962,7 +11964,7 @@ msgstr "" "{ph3} 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11976,7 +11978,7 @@ msgstr "REA * geladen {ph0} * ausgewählte Linien" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11995,7 +11997,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -12009,28 +12011,28 @@ msgstr "" "kann.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_ansicht/{ph0} * API-Mitglied" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_ansicht/{ph0} * IPC-Helfer" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "Haupt{ph0} * Handler-Helfer" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -12049,7 +12051,7 @@ msgstr "Zum dunklen Modus wechseln" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -12065,18 +12067,18 @@ msgstr "" "Datenverkehr mit Ihrem Agenten zu untersuchen." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Spezialisierte Modelle{ph0}Essay" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Braucht Reverse Engineering ein größeres Modell?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -12085,12 +12087,12 @@ msgstr "" "Was die Rekonstruktion von Touhou über allgemeine und spezialisierte Modelle" " sowie das Lernen aus Compiler-Rückmeldungen zeigt." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Von N0zoM1z0 · 13. Oktober 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" @@ -12099,37 +12101,37 @@ msgstr "Zum Inhalt springen" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Home{ph1} / {ph2}Blog{ph3} / Modelle und Reverse Engineering" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Aufsatz" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Braucht Reverse Engineering ein größeres Modell?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Von N0zoM1z0 · 13. Oktober 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Das Wichtigste" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12142,7 +12144,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12155,7 +12157,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12168,7 +12170,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12181,7 +12183,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12192,14 +12194,14 @@ msgstr "" "Kosten.{ph1} Das ist es, was ich für den gesamten KI-Agent-Workflow messen " "möchte." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "In diesem Artikel" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12207,7 +12209,7 @@ msgstr "{ph0}Was leistungsfähigere Modelle verändert haben{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12215,7 +12217,7 @@ msgstr "{ph0}Warum spezialisieren?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12223,7 +12225,7 @@ msgstr "{ph0}Wo sollte diese Erfahrung gespeichert werden?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12231,7 +12233,7 @@ msgstr "{ph0}Lernen Sie das nächste nützliche Experiment{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12239,7 +12241,7 @@ msgstr "{ph0}Reverse Engineering und verstärkendes Lernen{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12247,7 +12249,7 @@ msgstr "{ph0}Wenn der Prüfer falsch ist{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12255,18 +12257,18 @@ msgstr "{ph0}Ein Vergleich, der sich lohnt{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Was für einen KI-Agenten lässt dies vermuten?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Was leistungsfähigere Modelle verändert haben" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12282,7 +12284,7 @@ msgstr "" " habe, haben die Repositorys aufgezeichnet, was jede Sitzung " "wiederherstellen konnte." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12296,12 +12298,12 @@ msgstr "" "späteres Modell erfolgreich ist, wo frühere Arbeiten ins Stocken geraten " "sind, zeigen die Quelländerungen, was diesen Fortschritt ermöglicht hat." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Die temporären Variablen benötigten überlappende Lebensdauern" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12323,7 +12325,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12337,7 +12339,7 @@ msgstr "" " Als {ph2}GPT-6.1-Sol das Problem erneut untersuchte{ph3}, schlug es eine " "nützliche Hypothese über die Lebensdauer dieser temporären Variablen vor." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12355,7 +12357,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12370,7 +12372,7 @@ msgstr "" "mehreren gezielten Experimenten bestätigte {ph0}eine saubere Neukompilierung" " aus dem Quellcode, dass die vollständige Funktion übereinstimmte{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12382,7 +12384,7 @@ msgstr "" " eine neue Richtung. Das Feedback des Compilers half dabei, diese Hypothese " "in eine passende Quellcode-Anordnung zu verfeinern." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Ein anderes Kontrollflussdiagramm" @@ -12391,7 +12393,7 @@ msgstr "Ein anderes Kontrollflussdiagramm" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12414,7 +12416,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12432,7 +12434,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12447,7 +12449,7 @@ msgstr "" "Variationen ausprobieren, bevor er eine bessere Möglichkeit findet, die " "umgebende Arbeit auszudrücken." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12462,7 +12464,7 @@ msgstr "" "kontrollierter Vergleich würde helfen, den Beitrag des Modells vom Beitrag " "der übernommenen Erfahrung zu trennen." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12478,12 +12480,12 @@ msgstr "" "Denkvermögen? Wie viel könnte ein Modell lernen, wenn es wiederholt mit " "diesem Compiler und Code arbeitet?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Warum könnte ein spezialisiertes KI-Modell gut funktionieren?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12499,7 +12501,7 @@ msgstr "" "Beispielen: Verwandte Schleifen und Hilfsanordnungen haben spielübergreifend" " Hypothesen geliefert." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12519,7 +12521,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12536,7 +12538,7 @@ msgstr "" "Compilers beeinflusste. Das legte eine vielversprechendere Hypothese für die" " {ph2}Rekonstruktion von {ph3}{ph4} nahe." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12546,7 +12548,7 @@ msgstr "" "das erforderliche Layout erstellt, ohne dass Speicherplatz hinzugefügt " "werden musste. Die gesamte Funktion stimmte dann überein." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12559,7 +12561,7 @@ msgstr "" "Fälle erkennen und herausfinden, welche Quellcodevarianten es wert sind, " "zuerst getestet zu werden." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12579,7 +12581,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12600,14 +12602,14 @@ msgstr "" "aber jedes Ziel sagt uns, ob es zutrifft. Ein spezielles Modell müsste diese" " Kontexte unterscheiden." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Wo sollte diese Erfahrung gespeichert werden?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12624,7 +12626,7 @@ msgstr "" "Lektionen sowie die Quelle und fehlgeschlagene Experimente, die sie nützlich" " gemacht haben." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12642,7 +12644,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12661,7 +12663,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12679,7 +12681,7 @@ msgstr "" "Ergebnis für seinen nächsten Versuch bedeutet. Die Kenntnis des relevanten " "Musters ist nur der Anfang dieses Prozesses." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12693,12 +12695,12 @@ msgstr "" " Schulung bringt: bessere Kandidatengenerierung, bessere Entscheidungen nach" " Feedback oder beides." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Lernen Sie das nächste nützliche Experiment" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12712,7 +12714,7 @@ msgstr "" "Kandidaten fehlschlägt, kann das Ergebnis die verbleibenden Möglichkeiten " "einschränken und ein nützlicheres nächstes Experiment vorschlagen." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12725,34 +12727,34 @@ msgstr "" "enthält jedoch zusätzliche Informationen: Jedes der folgenden Experimente " "zeigte, was noch geändert werden musste." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Experimentieren" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Was uns das Ergebnis lehrte" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "" "Versuchen Sie es mit einer anderen Möglichkeit, die Ergebnisse zu kopieren" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" "Der Kopiercode ändert sich, aber die Funktion unterscheidet sich immer noch." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Verwenden Sie die zurückgegebenen Werte direkt" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12760,12 +12762,12 @@ msgstr "" "Das Kopieren erfolgt nach dem ursprünglichen Muster, die temporäre " "Speicherung unterscheidet sich jedoch noch." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Halten Sie alle temporären Variablen gleichzeitig gültig" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12774,19 +12776,19 @@ msgstr "" "Sie erhalten einen separaten Speicher, aber einer überlappt immer noch einen" " Wert, der später für Kollisionsprüfungen verwendet wird." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Halten Sie den Wert für die Kollisionsprüfung getrennt" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Eine saubere Neukompilierung aus dem Quellcode bestätigt die vollständige " "Übereinstimmung." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12795,7 +12797,7 @@ msgstr "" "Ausgewählte Experimente aus der Angriffsfunktionsrekonstruktion oben, " "gruppiert nach dem, was sie uns gelehrt haben." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12812,7 +12814,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12828,7 +12830,7 @@ msgstr "" "Lage sein, die Quellendarstellung noch einmal aufzurufen oder die Beweise " "erneut zu prüfen." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12842,12 +12844,12 @@ msgstr "" "Abfolge erforderlicher Umschreibungen würde diese Wahlmöglichkeit zusammen " "mit einem Teil des Verhaltens, das das Modell lernen soll, aufheben." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Warum Reverse Engineering für Reinforcement Learning interessant ist" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12861,7 +12863,7 @@ msgstr "" "Agent kann einen Kandidaten kompilieren, die Abweichungen prüfen und daraus " "den nächsten Schritt wählen." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12879,7 +12881,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12903,7 +12905,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12921,7 +12923,7 @@ msgstr "" "Gleitkommaberechnungen verarbeitete{ph1}. Bevor der Agent eine nützliche " "Korrektur testen konnte, musste er herausfinden, was gemessen werden sollte." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12933,12 +12935,12 @@ msgstr "" "diese Prüfung vorliegt, können wir untersuchen, wie weit eine erlernte " "Suchrichtlinie damit kommen kann." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Wenn der Prüfer falsch ist" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12950,7 +12952,7 @@ msgstr "" "einen solchen Prüfer ein Oracle. Selbst eine wiederholbare Antwort müssen " "wir danach beurteilen, was sie tatsächlich überprüft." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12974,7 +12976,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12989,7 +12991,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13006,7 +13008,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13023,7 +13025,7 @@ msgstr "" "denen er durchgeführt wird. Ebenso muss eine Befehlsübereinstimmung im " "Hinblick auf die Bytes und Daten verstanden werden, die sie überprüft." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -13042,7 +13044,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13055,12 +13057,12 @@ msgstr "" "wird, das Feedback, das wir ihm geben, zu optimieren, desto wichtiger wird " "auch das Verständnis dieses Feedbacks." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Ein Vergleich, der sich lohnt" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -13077,7 +13079,7 @@ msgstr "" "überwachte Spezialisierung und eine RL-trainierte Version untersuchen " "können, was Training hinzufügt." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -13092,7 +13094,7 @@ msgstr "" "zuverlässige Suchstrategie von einer Kandidatenlösung zu unterscheiden, die " "zufällig erfolgreich ist." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -13108,7 +13110,7 @@ msgstr "" "allgemeines KI-Modell einen Großteil der dafür erforderlichen Arbeit " "übernimmt. Eine getrennte Messung würde diese Arbeitsteilung offenbaren." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -13124,7 +13126,7 @@ msgstr "" "Antworten sowohl aus den Trainingsdaten als auch aus der Abrufbibliothek " "heraushalten." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -13139,7 +13141,7 @@ msgstr "" "Kompilierung zeigen, ob diese Qualität einen effizienten Arbeitsablauf " "ermöglicht. Trainingskosten sollten separat erfasst werden." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -13157,7 +13159,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13179,7 +13181,7 @@ msgstr "" "nächste Experiment leiten; eine Belohnung für mehr Nähe würde ich jedoch " "anhand der vollständigen Abnahmeprüfung validieren." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13195,12 +13197,12 @@ msgstr "" "bringt das Training dann noch? Die Antworten würden uns helfen zu " "entscheiden, wo welche Art von Modell am nützlichsten ist." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Was für einen KI-Agenten lässt dies vermuten?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13216,7 +13218,7 @@ msgstr "" " fragen. Wenn die Ergebnisse keinen Sinn mehr ergeben, könnte der breitere " "Agent zum Zielbeweis zurückkehren oder die Messung selbst untersuchen." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13228,7 +13230,7 @@ msgstr "" "Freiheit, die Richtung zu ändern, die die früheren Durchbrüche ermöglicht " "hat." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13243,7 +13245,7 @@ msgstr "" "ein breites Urteilsvermögen erfordern und welche sich durch wiederholte " "Erfahrung mit einem bestimmten Handwerk verbessern." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13260,7 +13262,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13271,12 +13273,12 @@ msgstr "" "Ich möchte diesen Datensatz verwenden, um den Vergleich zu erstellen und zu " "sehen, was wir lernen." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Beweise und Modellzuschreibung" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13290,7 +13292,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13317,7 +13319,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13342,7 +13344,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13367,7 +13369,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13394,7 +13396,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13406,7 +13408,7 @@ msgstr "" "Gleitkommakonstanten{ph3}, {ph4}TH08-Untersuchung numerischer " "Unterschiede{ph5} und {ph6}TH09-Rekonstruktion der Replay-Speicherung{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13432,22 +13434,22 @@ msgstr "" "Spezialmodelle und das Lernen, bessere Hypothesen anhand des Compiler-" "Feedbacks aufzustellen, gelernt habe." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Auf dieser Seite" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Essay über Modelle und Reverse Engineering" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Ausgewählte Rekonstruktionsexperimente" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Nach oben" @@ -13456,7 +13458,7 @@ msgstr "Nach oben" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13468,68 +13470,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Fallstudien{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA Fallstudien." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Androide * APK Analyse" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Wie ein Authentifikator einen Anmeldecode generiert" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Lesen Sie die Android-Fallstudie" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Merkmalsverfolgung" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Wie Notion Text und HTML kopiert" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Lesen Sie die Notion-Fallstudie" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Einheimische * Rekonstruktion" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-BallS Berechnung der linken / rechten Klangposition" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Lesen Sie die DX-Ball-Fallstudie" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Setup-Optionen" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13540,7 +13542,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13552,7 +13554,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13560,7 +13562,7 @@ msgstr "{ph0}1. Computer vorbereiten{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13568,7 +13570,7 @@ msgstr "{ph0}2. Agenten auswählen{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13576,7 +13578,7 @@ msgstr "{ph0}3. REA verbinden{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13584,18 +13586,18 @@ msgstr "{ph0}4. Eine Untersuchung ausprobieren{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Weitere Ziele und Analyseanbieter{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Computer vorbereiten" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13605,7 +13607,7 @@ msgstr "" "gespeichert sind. Ein lokaler Programmieragent kann diese Dateien lesen und " "Werkzeuge für Sie ausführen." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13616,7 +13618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13629,7 +13631,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13640,19 +13642,19 @@ msgstr "" "disabled on this system\"{ph1} meldet, verwenden Sie stattdessen {ph3}. Für " "npm verwenden Sie {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Einen Arbeitsordner für Ihren Agenten erstellen" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Erstellen Sie im Terminal einen Ordner für die Übung und wechseln Sie " "hinein:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13661,12 +13663,12 @@ msgstr "" "Lassen Sie dieses Terminal für den nächsten Schritt geöffnet. Wenn Sie " "bereits einen Arbeitsordner haben, öffnen Sie stattdessen diesen." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Einen Programmieragenten auswählen" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13676,12 +13678,12 @@ msgstr "" " Untersuchung bereit. Wählen Sie unten eine Client-App und öffnen Sie deren " "Anleitung, wenn Sie sie noch nicht verwendet haben." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · Ihr ChatGPT-Konto verwenden" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13693,40 +13695,40 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codex installieren und anmelden{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf oder VS Code · einen Editor verwenden" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" "Installieren Sie den Editor für Ihr Betriebssystem und melden Sie sich an." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Öffnen Sie den Ordner rea-work, den Sie in Schritt 1 erstellt haben." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · Ihr Claude-Konto verwenden" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Installieren Sie mit dem Befehl für Ihr Betriebssystem:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13741,13 +13743,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Code installieren und Kontooptionen ansehen{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · einen Desktop-Chat verwenden" @@ -13757,7 +13759,7 @@ msgstr "Claude Desktop · einen Desktop-Chat verwenden" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13769,7 +13771,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13781,19 +13783,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCode installieren und ein Modell einrichten{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Alle unterstützten Clients und ihre Setup-IDs" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13803,12 +13805,12 @@ msgstr "" "Die npm-Version 6.4.0 unterstützt die folgenden Clients. Verwenden Sie die " "ID mit {ph0}, wenn Sie einen Client ausdrücklich auswählen möchten." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Client" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Setup-ID" @@ -13818,7 +13820,7 @@ msgstr "Setup-ID" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13838,7 +13840,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13848,13 +13850,13 @@ msgstr "" "{ph0}Client-Konfiguration und Fehlerbehebung{ph1} · {ph2}Verfügbarkeit in " "veröffentlichten Versionen{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · auf seinem gehosteten Computer verbinden" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13868,29 +13870,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Anleitung für die Grok-Bot-Verbindung{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. REA verbinden" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Kopiere diesen Prompt in deinen Coding-Agent:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Für einen bestimmten Client ergänzen Sie dessen Setup-ID:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13903,7 +13905,7 @@ msgstr "" "den Pfeiltasten, wählen Sie Ihren Client mit der Leertaste aus und fahren " "Sie mit Enter fort." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13912,7 +13914,7 @@ msgstr "" "MCP ist die Verbindung, über die Ihr Agent REA aufrufen kann. Der Skill gibt" " ihm einen Ablauf für die Untersuchung von Software." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13924,7 +13926,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13934,21 +13936,21 @@ msgstr "" "Ersetzen Sie {ph0} durch die Setup-ID Ihres Clients. Bei einer erfolgreichen" " Prüfung wird {ph1} gemeldet. Bitten Sie dann Ihren Agenten:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Prüfe, ob REA verbunden ist, und zeige mir, welche REA-Werkzeuge du " "verwenden kannst." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Ihre erste Untersuchung ausprobieren" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13960,7 +13962,7 @@ msgstr "" "exportieren{ph1} Schaltfläche. Ihr Agent kann seinen Code überprüfen, ohne " "Electron zu installieren oder zu starten." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Ihr Programmieragent" @@ -13974,7 +13976,7 @@ msgstr "Ihr Programmieragent" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13989,7 +13991,7 @@ msgstr "" "welche Felder es enthält und die relevanten Dateien und " "Zeilen.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -13999,7 +14001,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14013,13 +14015,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Eine Vorhersage in der geführten Übung prüfen →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Das Beispiel selbst herunterladen oder Ihre eigene App verwenden" @@ -14027,14 +14029,14 @@ msgstr "Das Beispiel selbst herunterladen oder Ihre eigene App verwenden" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Beispiel-ZIP herunterladen{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14045,7 +14047,7 @@ msgstr "" " selbst. Gib ihm den Weg zum {ph0} ordner und die gleiche Exportfrage." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14055,12 +14057,12 @@ msgstr "" "Untersuche mit REA die App unter {ph0}. Finde heraus, wie sie Daten " "exportiert, und zeige die relevanten Dateien und Zeilen." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Eine andere Art von Software analysieren" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -14069,12 +14071,12 @@ msgstr "" "Wählen Sie den Abschnitt für Ihr Untersuchungsziel. Ein Analyseanbieter ist " "das lokale Analysewerkzeug, das REA für diese Art von Software verwendet." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Native Programme und Bibliotheken · Hopper, Ghidra oder IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -14084,47 +14086,47 @@ msgstr "" "Der Host ist Ihr Betriebssystem; das Ziel ist das Programm, das Sie " "untersuchen möchten." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Analyseanbieter" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Nicht verfügbar" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Unterstützte Distributionen" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · experimentell" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Geprüfte Profile" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Geprüftes Profil ohne grafische Oberfläche" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Siehe Anbieter-Anleitung" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · vom Setup installieren oder verbinden lassen" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -14136,7 +14138,7 @@ msgstr "" "aktivieren Sie Ihre Lizenz. Unter Linux richtet das Setup die unterstützte " "Demo und deren separate Anzeige ein." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -14146,7 +14148,7 @@ msgstr "" " Omarchy. Hopper ist kommerzielle Software; für die Demo gelten die vom " "Anbieter festgelegten Einschränkungen." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14160,18 +14162,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopper einrichten und Probleme beheben{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · das kostenlose Analysewerkzeug und Java installieren" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14181,7 +14183,7 @@ msgstr "" "Compilers. Wählen Sie das Paket passend zur Architektur Ihres Computers." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14195,7 +14197,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14211,7 +14213,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14220,7 +14222,7 @@ msgstr "" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14230,7 +14232,7 @@ msgstr "" "Prüfen Sie Java. Der erste Befehl gibt {ph0} aus; verwenden Sie diesen " "Ordner für {ph1}. Der zweite bestätigt, dass der Compiler installiert ist:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14248,7 +14250,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14258,12 +14260,12 @@ msgstr "" "{ph0}Ghidra einrichten und Architekturvoraussetzungen prüfen{ph1} · " "{ph2}Ghidra-Anleitung für Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · eine vorhandene Installation verbinden" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14275,7 +14277,7 @@ msgstr "" " mit geöffnetem Originalprogramm oder einen Supervisor ohne grafische " "Oberfläche, der eine private Datenbank öffnet." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14287,7 +14289,7 @@ msgstr "" "Professional 9.1 unter macOS arm64. Die optionale native GUI-Brücke hat " "eigene Versions- und Plattformvoraussetzungen." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14300,14 +14302,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}IDA-Profile, Registrierungsbeispiele und geprüfte Plattformen{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14318,18 +14320,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Einem Beispiel zur nativen Analyse folgen{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Websites, Android, .NET, Firmware und weitere Ziele" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14339,110 +14341,110 @@ msgstr "" " zusätzlich benötigten Werkzeuge, die unterstützten Host-Systeme und den " "ersten Befehl." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Ziel" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Benötigte Werkzeuge" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Anleitung" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Anleitung öffnen{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Website" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / Pakete" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android-APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android-Gerät" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Android-Ressourcen" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEB-Projekt" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linux-Absturz" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Logiksignale" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Prozessverhalten" @@ -14458,7 +14460,7 @@ msgstr "Prozessverhalten" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14468,18 +14470,18 @@ msgstr "" "{ph0}Flutter-Anleitung{ph1} · {ph2}Pakete und Ressourcen{ph3} · {ph4}EVM-" "Bytecode{ph5} · {ph6}Alle Untersuchungsanleitungen{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "REA im Terminal verwenden" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLI-Befehle, globale Installation und curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14489,7 +14491,7 @@ msgstr "" "Ersetzen Sie {ph0} durch einen Funktionsnamen oder eine Adresse aus der " "Funktionsliste des Ziels. Ghidra muss vorher eingerichtet sein." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14498,7 +14500,7 @@ msgstr "" "Unter macOS oder Linux können Sie nach der Einrichtung von Node.js auch den " "curl-Installer verwenden:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14508,12 +14510,12 @@ msgstr "" "Aktivieren Sie REA bei Editor-Clients in den MCP-Einstellungen und erlauben " "Sie seine Werkzeuge im Agenten-Chat." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL und Pfade mit Leerzeichen" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14525,17 +14527,17 @@ msgstr "" "Linux-Umgebung und verwenden Sie dort Linux-Pfade. Anbieter ohne grafische " "Oberfläche laufen auf demselben Host wie REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Setup-Befehl für Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "REA aktualisieren oder entfernen" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14547,7 +14549,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14561,52 +14563,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Details zu Update und Deinstallation{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "REA-Setup-Befehl für Windows kopieren" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Befehl kopieren" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Aufforderung zur Untersuchung von Notizen kopieren" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14617,14 +14619,14 @@ msgstr "" "Debian oder Ubuntu {ph0} aus; bei anderen Distributionen verwenden Sie Ihren" " Paketmanager." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "" "Schließen Sie das Terminal, öffnen Sie es erneut und führen Sie dann " "Folgendes aus:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14640,7 +14642,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14650,19 +14652,19 @@ msgstr "" "{ph0}Cursor einrichten{ph1} · {ph2}Windsurf / Devin Desktop einrichten{ph3} " "· {ph4}VS Code und Copilot einrichten{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · ein KI-Modell auswählen" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Die IDA-Registrierungsdatei vorbereiten" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14678,7 +14680,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14691,7 +14693,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14704,22 +14706,22 @@ msgstr "" "Datei. Öffnen Sie das Originalprogramm in IDA und starten Sie dessen " "vorgeschaltetes Plugin, bevor Sie REA mit der Untersuchung beauftragen." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLite-Datenbank" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVM-Bytecode" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Installieren Sie Codex mit dem Befehl für Ihr Betriebssystem:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14730,7 +14732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14742,12 +14744,12 @@ msgstr "" "folgen Sie den Installationsschritten. Öffnen Sie danach das Terminal " "erneut." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Verwenden Sie bereits Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14759,7 +14761,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14769,7 +14771,7 @@ msgstr "" "Prüfen und genehmigen Sie den Plan, öffnen Sie Claude erneut und {ph0}prüfen" " Sie die Verbindung in Schritt 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14780,12 +14782,12 @@ msgstr "" "Kompilieren Sie bei einer neuen Installation unter macOS oder Linux arm64 " "zuerst den nativen Decompiler für Ihren Computer." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Den nativen Decompiler von Ghidra kompilieren" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14798,7 +14800,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14808,7 +14810,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14818,20 +14820,20 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · Anleitung zum nativen Build{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" "Prüfen Sie anschließend Ghidra und speichern Sie die Pfade für Ihren Client:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14839,13 +14841,13 @@ msgstr "Warum ergibt {ph0} im Taschenrechner 220?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}So funktioniert es{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14854,22 +14856,22 @@ msgstr "" "Frag deinen Coding-Agenten nach einer App, einem Spiel oder einer Website. " "REA gibt ihm die Werkzeuge, um den Code hinter der Antwort zu untersuchen." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Erste Schritte" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Ein Beispiel ansehen ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "So funktioniert es" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14880,49 +14882,49 @@ msgstr "" "selbst untersucht. Mit REA kann dein Agent dem Code folgen, eine Funktion " "erklären und dir helfen, sie nachzubauen." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Nach einer Funktion fragen" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Gib deinem Agenten ein Programm oder eine Seite und eine Frage." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Das Programm untersuchen" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA liefert Code, Referenzen und Beobachtungen zur Laufzeit." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Verstehen, dann etwas ändern" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Dein Agent nutzt die Ergebnisse, um die Funktion zu erklären oder " "nachzubauen." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Die Anweisungen Schritt für Schritt verfolgen" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Dem Agenten dieselbe Frage stellen" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14931,7 +14933,7 @@ msgstr "" "Beginnen Sie bei 6. Hinzufügen 0.001 jedes Update ohne Kollision, während " "die Geschwindigkeit darunter liegt 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14939,7 +14941,7 @@ msgstr "" "Entdecke eine Funktion in einer veröffentlichten App oder einem Spiel, mit " "Code und geprüften Ergebnissen." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14949,7 +14951,7 @@ msgstr "" "APK. Bewege dann die Demo-Uhr und sieh, warum er sich alle 30 Sekunden " "ändert." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14958,7 +14960,7 @@ msgstr "" "Folge Notions gebündeltem JavaScript bis zur Systemzwischenablage und sieh, " "wie eine Kopie strukturierte Blockdaten bewahrt." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14967,12 +14969,12 @@ msgstr "" "Rekonstruiere, wie die Ballposition in einem Windows-Spiel von 1996 zum " "linken oder rechten Ton wird." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Wähle dein Ziel." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14983,7 +14985,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15002,7 +15004,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -15010,7 +15012,7 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Beispiel Eingabeaufforderung * " "Website" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Ja, das hier." @@ -15023,7 +15025,7 @@ msgstr "Ja, das hier." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15038,7 +15040,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15052,18 +15054,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Siehe die Fallstudie DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Aufforderung zum Kopieren des Website-Projekts" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Aufforderung zur Wiederherstellung des Spiels kopieren" @@ -15075,7 +15077,7 @@ msgstr "Aufforderung zur Wiederherstellung des Spiels kopieren" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15087,7 +15089,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -15095,23 +15097,23 @@ msgstr "{ph0}Fallstudien →{ph1} — Untersuchungen und interaktive Demos." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — Methoden und Notizen zur Rekonstruktion." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Die vollständige Taschenrechner-Untersuchung ansehen" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Ein größeres Projekt ausprobieren" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -15120,7 +15122,7 @@ msgstr "" "Probieren wir zwei Beispiele: die Geschwindigkeit eines Spiels ändern und " "die %-Taste des Taschenrechners nachbauen." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -15130,7 +15132,7 @@ msgstr "" "Geschwindigkeitssteuerung nachzubauen, müssen wir zuerst verstehen, wie sich" " die Geschwindigkeit ändert." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Nach der Geschwindigkeit fragen" @@ -15143,7 +15145,7 @@ msgstr "1. Nach der Geschwindigkeit fragen" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15151,12 +15153,12 @@ msgid "" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Beispielfrage · Dinosaurierspiel" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Die Geschwindigkeitsregel finden" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -15166,12 +15168,12 @@ msgstr "" "beginnt bei 6 und steigt bei jeder Aktualisierung ein wenig, solange sie " "unter 13 liegt." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Das Ergebnis spielen" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15180,7 +15182,7 @@ msgstr "" "Wir haben diese Regel im Minispiel unten nachgebaut und einen " "Geschwindigkeitsregler ergänzt. Drücke Spielen und wähle dein Tempo." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15189,7 +15191,7 @@ msgstr "" "Aktiviere JavaScript zum Spielen. Die Regel und den Quellcode unten kannst " "du weiterhin lesen." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15198,7 +15200,7 @@ msgstr "" "Die %-Taste verhält sich nach + und × unterschiedlich. Finden wir beide " "Regeln und probieren sie in einem kleinen Taschenrechner aus." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Nach der %-Taste fragen" @@ -15211,19 +15213,19 @@ msgstr "1. Nach der %-Taste fragen" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Beispielfrage · Taschenrechner" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Beide Regeln finden" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15232,12 +15234,12 @@ msgstr "" "REA hilft dem Agenten, den Code hinter der %-Taste zu lesen. Er wendet zwei " "unterschiedliche Regeln an:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Die %-Taste ausprobieren" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15246,7 +15248,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15254,7 +15256,7 @@ msgstr "{ph0}FAQ lesen{ph1} — Einrichtung und häufige Fragen." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15263,7 +15265,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -15271,7 +15273,7 @@ msgstr "" "{ph0}GitHub issues{ph1} — einen Fehler melden oder eine Funktion " "vorschlagen." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Einrichtung für deine Plattform:" @@ -15279,14 +15281,14 @@ msgstr "Einrichtung für deine Plattform:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Weitere Installationsoptionen: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15301,7 +15303,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15316,7 +15318,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15328,7 +15330,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15340,7 +15342,7 @@ msgstr "" "Setup-Befehl {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15352,67 +15354,67 @@ msgstr "" "die Funktionen und Zeichenketten auf und erkläre dann mit Codeverweisen den " "Teil, der Benutzereingaben verarbeitet." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Mitwirkende" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Zum Inhalt springen" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Startseite{ph1} / Mitwirkende" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Gemeinsam entwickelt." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Danke an alle, die REA besser machen." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15421,22 +15423,22 @@ msgstr "" "Code, Dokumentation, Tests, Übersetzungen und Ideen — es gibt viele " "Möglichkeiten, mitzuwirken." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "So kannst du mitwirken" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Diskutiere mit →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Mitwirkende" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Mitwirkende finden" @@ -15444,14 +15446,14 @@ msgstr "Mitwirkende finden" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" "Aus der {ph0}Mitwirkendenliste auf GitHub{ph1} · Aktualisiert am {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -15470,12 +15472,12 @@ msgstr "" "Lerne die Menschen kennen, die Code, Dokumentation, Tests und Ideen zu REA " "beitragen." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub-Benutzername" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Nach oben" diff --git a/website/locales/el/messages.po b/website/locales/el/messages.po index 57ecbcb8df5..487a5cd063d 100644 --- a/website/locales/el/messages.po +++ b/website/locales/el/messages.po @@ -7,130 +7,130 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: website/public/blog/index.html:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Ξεκινήστε" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Μελέτες" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Ιστολόγιο" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Οδηγοί" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Αρχική{ph1} / Ιστολόγιο" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Ιστολόγιο." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Σκέψεις για την αντίστροφη μηχανική." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Εξειδίκευση μοντέλων{ph0}Δοκίμιο" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Χρειάζεται η αντίστροφη μηχανική μεγαλύτερο μοντέλο;" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -140,29 +140,29 @@ msgstr "" "εξειδικευμένα μοντέλα και τη μάθηση από την ανατροφοδότηση του " "μεταγλωττιστή." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Διαβάστε το άρθρο" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Του N0zoM1z0 · 13 Οκτωβρίου 2026" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Ανακατασκευή παιχνιδιών{ph0}Δοκίμιο" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Η βιομηχανική επανάσταση στην αντίστροφη μηχανική" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -172,101 +172,55 @@ msgstr "" " TH095 και TH04 για τους βοηθούς προγραμματισμού, την επαλήθευση και τη " "γνώση που συσσωρεύεται από έργο σε έργο." -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Του N0zoM1z0 · 10 Οκτωβρίου 2026" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Πηγαίος κώδικας" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Άδεια MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 -msgctxt "shared" -msgid "Join the community" -msgstr "Ελάτε στην κοινότητα" - -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 -msgctxt "shared" -msgid "Follow us on X" -msgstr "Ακολουθήστε μας στο X" - -#. {ph0}: #: website/public/blog/index.html:250 #: website/public/blog/reverse-engineering-models/index.html:889 #: website/public/blog/touhou-reconstruction/index.html:1086 @@ -285,6 +239,52 @@ msgstr "Ακολουθήστε μας στο X" #: website/public/showcase/index.html:323 #: website/public/showcase/notion/index.html:637 #: website/public/showcase/th04/index.html:806 +msgctxt "shared" +msgid "Join the community" +msgstr "Ελάτε στην κοινότητα" + +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 +msgctxt "shared" +msgid "Follow us on X" +msgstr "Ακολουθήστε μας στο X" + +#. {ph0}: +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -304,38 +304,38 @@ msgstr "" "Σκέψεις για την αντίστροφη μηχανική, βασισμένες στην πρακτική εμπειρία με το" " REA και βοηθούς τεχνητής νοημοσύνης." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -344,122 +344,122 @@ msgstr "" "REA — Μάθετε πώς λειτουργεί το λογισμικό. Αντίστροφη μηχανική με τον βοηθό " "προγραμματισμού σας." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Αρχική σελίδα του REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Κύρια πλοήγηση" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "Το REA στο GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Μπείτε στην κοινότητα του REA στο Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Ακολουθήστε το REA στο X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -468,36 +468,36 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}Αρχική{ph1} / {ph2}Ιστολόγιο{ph3} / Μοντέλα και αντίστροφη μηχανική" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Δοκίμιο" -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Χρειάζεται η αντίστροφη μηχανική μεγαλύτερο μοντέλο;" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Του N0zoM1z0 · 13 Οκτωβρίου 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Βασικά συμπεράσματα" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -510,7 +510,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -523,7 +523,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -536,7 +536,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -549,7 +549,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -559,14 +559,14 @@ msgstr "" "{ph0}Μετρήστε τις αποδεκτές ανακατασκευές σε σχέση με τον χρόνο και το " "κόστος.{ph1} Αυτό είναι το αποτέλεσμα που θέλω από τον βοηθό συνολικά." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Σε αυτό το άρθρο" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -574,7 +574,7 @@ msgstr "{ph0}Τι άλλαξαν τα καλύτερα μοντέλα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -582,7 +582,7 @@ msgstr "{ph0}Γιατί εξειδίκευση;{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -590,7 +590,7 @@ msgstr "{ph0}Πού διατηρείται η εμπειρία{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -598,7 +598,7 @@ msgstr "{ph0}Μαθαίνοντας το επόμενο πείραμα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -606,7 +606,7 @@ msgstr "{ph0}Αντίστροφη μηχανική και ενισχυτική #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -614,7 +614,7 @@ msgstr "{ph0}Όταν η αναφορά ελέγχου είναι λανθασμ #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -622,18 +622,18 @@ msgstr "{ph0}Μια σύγκριση που αξίζει να γίνει{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Τι είδους βοηθός;{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Τι άλλαξαν τα καλύτερα μοντέλα" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -648,7 +648,7 @@ msgstr "" "ανακατασκευή παιχνιδιών, ιδιαίτερα του Touhou. Καθώς άλλαζα μοντέλα, τα " "αποθετήρια κρατούσαν αρχείο όσων κατάφερνε να ανακτήσει κάθε συνεδρία." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -663,12 +663,12 @@ msgstr "" "προηγούμενη δουλειά είχε σταματήσει, οι αλλαγές στον κώδικα δείχνουν τι " "έκανε δυνατή αυτή την πρόοδο." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Οι προσωρινές τιμές έπρεπε να διατηρούνται ταυτόχρονα" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -690,7 +690,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -704,7 +704,7 @@ msgstr "" "{ph2}το GPT-6.1-Sol επέστρεψε στο πρόβλημα{ph3}, βρήκε μια χρήσιμη υπόθεση " "για το πόσο έπρεπε να διατηρούνται αυτές οι προσωρινές τιμές." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -722,7 +722,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -737,7 +737,7 @@ msgstr "" " στοχευμένα πειράματα, {ph0}μια καθαρή επαναδημιουργία του προγράμματος " "επιβεβαίωσε ότι ολόκληρη η συνάρτηση ταυτιζόταν με την αρχική{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -749,7 +749,7 @@ msgstr "" "ανατροφοδότηση του μεταγλωττιστή τον βοήθησε να την τελειοποιήσει σε μια " "διάταξη πηγαίου κώδικα που έδινε ακριβή ταύτιση." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Ένας διαφορετικός γράφος ροής ελέγχου" @@ -758,7 +758,7 @@ msgstr "Ένας διαφορετικός γράφος ροής ελέγχου" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -781,7 +781,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -799,7 +799,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -814,7 +814,7 @@ msgstr "" "παραλλαγές για πολύ καιρό προτού βρει έναν καλύτερο τρόπο να εκφράσει την " "εργασία γύρω από αυτές." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -829,7 +829,7 @@ msgstr "" "ανακαλύψεις και τους ελέγχους τους· μια ελεγχόμενη σύγκριση θα βοηθούσε να " "ξεχωρίσουμε την επίδραση του μοντέλου από την εμπειρία που κληρονόμησε." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -845,12 +845,12 @@ msgstr "" "μπορούσε να μάθει ένα μοντέλο μέσα από επαναλαμβανόμενη εμπειρία με αυτόν " "τον μεταγλωττιστή και κώδικα;" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Γιατί θα μπορούσε να τα πάει καλά ένα εξειδικευμένο μοντέλο;" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -866,7 +866,7 @@ msgstr "" "παρόμοιοι βρόχοι και διατάξεις βοηθητικών συναρτήσεων έχουν δώσει υποθέσεις " "από το ένα παιχνίδι στο άλλο." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -886,7 +886,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -903,7 +903,7 @@ msgstr "" "που επηρέαζε την επιλογή του μεταγλωττιστή. Αυτό μας έδωσε μια πιο " "υποσχόμενη υπόθεση για {ph2}την ανακατασκευή της {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -913,7 +913,7 @@ msgstr "" " έδωσε την απαιτούμενη διάταξη χωρίς να προστεθεί χώρος αποθήκευσης. Στη " "συνέχεια, ολόκληρη η συνάρτηση ταυτίστηκε με την αρχική." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -925,7 +925,7 @@ msgstr "" "μεταγλωττιστή θα μπορούσε να συναντήσει πολλές τέτοιες περιπτώσεις και να " "μάθει ποιες παραλλαγές πηγαίου κώδικα αξίζει να δοκιμάζει πρώτα." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -945,7 +945,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -966,14 +966,14 @@ msgstr "" "εκτίμηση, αλλά κάθε στόχος μάς δείχνει αν ισχύει. Η διάκριση αυτών των " "πλαισίων είναι μέρος όσων θα έπρεπε να μάθει ένα εξειδικευμένο μοντέλο." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Πού πρέπει να διατηρείται αυτή η εμπειρία;" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -989,7 +989,7 @@ msgstr "" "περιλαμβάνει μαθήματα για τον μεταγλωττιστή, μαζί με τον πηγαίο κώδικα και " "τα αποτυχημένα πειράματα που τα έκαναν χρήσιμα." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -1006,7 +1006,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1026,7 +1026,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1044,7 +1044,7 @@ msgstr "" "τι σημαίνει το αποτέλεσμα για την επόμενη προσπάθειά του. Η γνώση του " "σχετικού μοτίβου είναι μόνο η αρχή αυτής της διαδικασίας." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -1057,12 +1057,12 @@ msgstr "" "μπορούσαμε να εντοπίσουμε τι προσθέτει η εκπαίδευση: καλύτερη παραγωγή " "υποψήφιων εκδοχών, καλύτερες αποφάσεις μετά την ανατροφοδότηση ή και τα δύο." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Μαθαίνοντας το επόμενο χρήσιμο πείραμα" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -1076,7 +1076,7 @@ msgstr "" "αποτυγχάνει, το αποτέλεσμα μπορεί να περιορίσει τις δυνατότητες που " "απομένουν και να υποδείξει ένα πιο χρήσιμο επόμενο πείραμα." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -1089,33 +1089,33 @@ msgstr "" "τον κώδικα περιέχει περισσότερες πληροφορίες. Κάθε ένα από τα παρακάτω " "πειράματα βοήθησε να εντοπιστεί τι έπρεπε ακόμη να αλλάξει." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Πείραμα" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Τι μας έμαθε το αποτέλεσμά του" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Δοκιμάστε έναν διαφορετικό τρόπο αντιγραφής των αποτελεσμάτων" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" "Ο κώδικας αντιγραφής αλλάζει, αλλά η συνάρτηση εξακολουθεί να διαφέρει." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Χρησιμοποιήστε απευθείας τις επιστρεφόμενες τιμές" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -1123,12 +1123,12 @@ msgstr "" "Η αντιγραφή ακολουθεί το αρχικό μοτίβο, αλλά η αποθήκευση των προσωρινών " "τιμών εξακολουθεί να διαφέρει." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Διατηρήστε τα προσωρινά αποτελέσματα ταυτόχρονα" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -1137,18 +1137,18 @@ msgstr "" "Αποκτούν ξεχωριστό χώρο αποθήκευσης, αλλά ένα εξακολουθεί να επικαλύπτεται " "με μια τιμή που χρησιμοποιείται αργότερα για ελέγχους σύγκρουσης." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Κρατήστε ξεχωριστή την τιμή του ελέγχου σύγκρουσης" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Μια καθαρή επαναδημιουργία του προγράμματος επιβεβαιώνει την πλήρη ταύτιση." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -1157,7 +1157,7 @@ msgstr "" "Επιλεγμένα πειράματα από την παραπάνω ανακατασκευή της συνάρτησης επίθεσης, " "ομαδοποιημένα με βάση όσα μας έμαθαν." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -1173,7 +1173,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1189,7 +1189,7 @@ msgstr "" " να μπορεί να επανεξετάσει την αναπαράσταση του πηγαίου κώδικα ή να " "επιθεωρήσει ξανά τα στοιχεία." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -1203,12 +1203,12 @@ msgstr "" "υποχρεωτικών επανεγγραφών θα αφαιρούσε αυτή την επιλογή, μαζί με μέρος της " "συμπεριφοράς που θέλουμε να μάθει το μοντέλο." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Γιατί η αντίστροφη μηχανική έχει ενδιαφέρον για την ενισχυτική μάθηση" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -1223,7 +1223,7 @@ msgstr "" "μεταγλωττίσει μια υποψήφια εκδοχή, να εξετάσει την απόκλιση και να " "χρησιμοποιήσει αυτή την παρατήρηση για να επιλέξει το επόμενο βήμα του." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -1241,7 +1241,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1264,7 +1264,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1281,7 +1281,7 @@ msgstr "" "χειριζόταν τους υπολογισμούς κινητής υποδιαστολής{ph1}. Πριν ο βοηθός " "μπορέσει να δοκιμάσει μια χρήσιμη διόρθωση, έπρεπε να βρει τι να μετρήσει." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -1293,12 +1293,12 @@ msgstr "" "μπορούμε να διερευνήσουμε πόσο μακριά μπορεί να φτάσει με αυτόν μια πολιτική" " αναζήτησης που έχει μάθει το μοντέλο." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Όταν η αναφορά ελέγχου είναι λανθασμένη" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -1310,7 +1310,7 @@ msgstr "" "«αναφορά ελέγχου» (oracle). Ακόμη κι αν δίνει επαναλήψιμη απάντηση, " "εξακολουθούμε να πρέπει να καταλαβαίνουμε τι καλύπτει αυτή η απάντηση." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -1334,7 +1334,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1349,7 +1349,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1367,7 +1367,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1384,7 +1384,7 @@ msgstr "" "όπως και η ταύτιση εντολών πρέπει να ερμηνεύεται με βάση τα bytes και τα " "δεδομένα που ελέγχει." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -1403,7 +1403,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1416,12 +1416,12 @@ msgstr "" "γίνεται καλύτερο στη βελτιστοποίηση της ανατροφοδότησης που του δίνουμε, " "γίνεται επίσης πιο σημαντικό να καταλαβαίνουμε αυτή την ανατροφοδότηση." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Μια σύγκριση που αξίζει να γίνει" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -1438,7 +1438,7 @@ msgstr "" "εκπαιδευμένη με ενισχυτική μάθηση θα μας επέτρεπαν να εξετάσουμε τι " "προσθέτει η εκπαίδευση." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -1453,7 +1453,7 @@ msgstr "" "ξεχωρίσουμε μια αξιόπιστη στρατηγική αναζήτησης από μια τυχερή υποψήφια " "εκδοχή." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -1469,7 +1469,7 @@ msgstr "" "της δουλειάς που χρειάζεται για να φτάσουμε σε αυτή. Η ξεχωριστή μέτρησή " "τους θα φανέρωνε αυτή την κατανομή της δουλειάς." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -1485,7 +1485,7 @@ msgstr "" "κρατούσα τις αποδεκτές απαντήσεις τους έξω τόσο από την εκπαίδευση όσο και " "από την ανάκτηση πληροφοριών." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -1501,7 +1501,7 @@ msgstr "" "της μεταγλώττισης, θα μας έλεγε αν αυτή η ποιότητα παράγει αποδοτική ροή " "εργασίας. Το κόστος εκπαίδευσης θα χρειαζόταν επίσης ξεχωριστή καταγραφή." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -1519,7 +1519,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1543,7 +1543,7 @@ msgstr "" "επικύρωνα κάθε ανταμοιβή για το «πλησιάζει περισσότερο» σε σχέση με τον " "πλήρη έλεγχο αποδοχής." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -1559,12 +1559,12 @@ msgstr "" " εξακολουθεί να προσθέτει η εκπαίδευση; Οι απαντήσεις θα μας βοηθούσαν να " "αποφασίσουμε πού είναι πιο χρήσιμο κάθε είδος μοντέλου." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Τι είδους βοηθό υποδεικνύει αυτό;" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -1581,7 +1581,7 @@ msgstr "" "τις ευρύτερες δυνατότητες θα μπορούσε να επιστρέψει στα στοιχεία του στόχου " "ή να διερευνήσει την ίδια τη μέτρηση." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -1593,7 +1593,7 @@ msgstr "" "αλλάζει κατεύθυνση, η οποία έκανε δυνατές τις προηγούμενες σημαντικές " "ανακαλύψεις." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -1607,7 +1607,7 @@ msgstr "" " να ρωτήσουμε ποιες αποφάσεις χρειάζονται ευρεία κρίση και ποιες " "βελτιώνονται μέσα από επαναλαμβανόμενη εμπειρία με μια συγκεκριμένη τέχνη." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -1625,7 +1625,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1636,7 +1636,7 @@ msgstr "" "ήθελα να χρησιμοποιήσω αυτό το αρχείο για να οργανώσω τη σύγκριση και να δω " "τι θα μάθουμε." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Στοιχεία και απόδοση της εργασίας στα μοντέλα" @@ -1645,7 +1645,7 @@ msgstr "Στοιχεία και απόδοση της εργασίας στα μ #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1655,7 +1655,7 @@ msgstr "" "Οι {ph0}αναλυτικές σημειώσεις τεκμηρίωσης{ph1} περιλαμβάνουν τις " "καταγεγραμμένες συγκρίσεις και το πλαίσιο των πειραμάτων." -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -1669,7 +1669,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1696,7 +1696,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1720,7 +1720,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1745,7 +1745,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1772,7 +1772,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1784,7 +1784,7 @@ msgstr "" " κινητής υποδιαστολής του TH08{ph3}, {ph4}αριθμητική διερεύνηση του " "TH08{ph5} και {ph6}ανακατασκευή της αποθήκευσης επανάληψης του TH09{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -1811,27 +1811,27 @@ msgstr "" "εξειδικευμένα μοντέλα και το πώς μαθαίνουν να προτείνουν καλύτερες υποθέσεις" " μέσα από την ανατροφοδότηση του μεταγλωττιστή." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Δοκίμιο για τα μοντέλα και την αντίστροφη μηχανική" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Επιλεγμένα πειράματα ανακατασκευής" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -1840,35 +1840,35 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Αρχική{ph1} / {ph2}Ιστολόγιο{ph3} / Ανακατασκευή του Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Δοκίμιο · Ανακατασκευή του Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Η βιομηχανική επανάσταση στην αντίστροφη μηχανική." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Του N0zoM1z0 · 10 Οκτωβρίου 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Βασικά συμπεράσματα" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1881,7 +1881,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1895,7 +1895,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1908,7 +1908,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1921,7 +1921,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1932,65 +1932,65 @@ msgstr "" "αντίστροφης μηχανικής.{ph1} Οι μέθοδοι διαμορφώνονται ακόμη. Απομένουν πολλά" " να εξερευνήσουμε." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Πώς συσσωρεύεται η εμπειρία" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Αυτονομία" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Βοηθός" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Επαλήθευση" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Αναφορά ελέγχου" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Αποθετήριο" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Μνήμη εργασίας" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -1999,7 +1999,7 @@ msgstr "Κώδικας, στοιχεία,{ph0}έλεγχοι και μαθήμα #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -2008,26 +2008,26 @@ msgstr "Απόκλιση{ph0}{ph1}Αναθεωρήστε την υπόθεση{p #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Επαναχρησιμοποίηση" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -2036,14 +2036,14 @@ msgstr "" "Κάθε έργο αφήνει στο επόμενο ένα καλύτερο σημείο εκκίνησης. Αυτό " "περιλαμβάνει και τη διόρθωση των ελέγχων όταν ανακαλύπτουμε ένα κενό." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Σε αυτό το άρθρο" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -2051,7 +2051,7 @@ msgstr "{ph0}Αύγουστος 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -2059,7 +2059,7 @@ msgstr "{ph0}TH08: η συνέχεια{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -2067,7 +2067,7 @@ msgstr "{ph0}Δύο προσεγγίσεις{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -2075,7 +2075,7 @@ msgstr "{ph0}TH095: η εμπειρία συσσωρεύεται{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -2083,7 +2083,7 @@ msgstr "{ph0}TH04: από αρχιτεκτονική σε αρχιτεκτονι #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -2091,7 +2091,7 @@ msgstr "{ph0}Από την ακρίβεια στην αναγνωσιμότητ #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -2099,18 +2099,18 @@ msgstr "{ph0}Η βιομηχανική αλλαγή{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Τι άλλαξε τον Αύγουστο του 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -2125,7 +2125,7 @@ msgstr "" "περισσότερο δικό μου χρόνο στην επόμενη συνάρτηση. Έπρεπε επίσης να κρατάω " "μια ολοένα μεγαλύτερη συνολική εικόνα στο μυαλό μου." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -2140,7 +2140,7 @@ msgstr "" "αλλού, αλλά κάθε πεδίο πρέπει να προσδιορίσει τι μπορεί να ελέγξει με βάση " "μια αξιόπιστη αναφορά." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -2153,7 +2153,7 @@ msgstr "" "βοηθός με πρόσβαση στο πρόγραμμα και στα συνηθισμένα εργαλεία ανάπτυξης. Η " "ανακατασκευή του Touhou μού έδωσε ένα σημαντικό έργο για να το διαπιστώσω." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -2171,7 +2171,7 @@ msgstr "" " Αυτή η ελευθερία έκανε διαφορά: μπορούσα να αφιερώσω περισσότερη προσοχή " "στην κατεύθυνση του έργου και στο αν οι έλεγχοι ήταν αξιόπιστοι." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -2182,7 +2182,7 @@ msgstr "" "αναρωτιέμαι τι θα διατηρούνταν πέρα από το τρέχον έργο. Θα ωφελούνταν το " "επόμενο παιχνίδι από όλα όσα είχαμε μόλις μάθει;" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: χτίζοντας πάνω στην ανθρώπινη δουλειά" @@ -2191,7 +2191,7 @@ msgstr "TH08: χτίζοντας πάνω στην ανθρώπινη δουλε #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2206,7 +2206,7 @@ msgstr "" "προγράμματος και από ένα ιστορικό συνεισφορών που διατήρησα στη συνέχεια του" " έργου." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -2218,7 +2218,7 @@ msgstr "" "Μέχρι τις 19 Αυγούστου, το μητρώο κατέγραφε πηγαίο κώδικα για όλες τις 1,107" " αναγνωρισμένες συναρτήσεις του παιχνιδιού." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -2230,7 +2230,7 @@ msgstr "" "Ακολούθησε μια έκδοση Web. Η εγγενής έκδοση Linux 64-bit κυκλοφόρησε στις 30" " Αυγούστου." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -2246,7 +2246,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2264,12 +2264,12 @@ msgstr "" "φτάνει στην αναμενόμενη κατάσταση. Ο βοηθός προτείνει μια εξήγηση και τη " "δοκιμάζει· μια απόκλιση του δίνει κάτι συγκεκριμένο να διερευνήσει." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Ακριβής ταύτιση με λάθος σταθερά" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -2280,7 +2280,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2293,7 +2293,7 @@ msgstr "" " πηγαίος κώδικας έλεγχε την ισχύ του παίκτη σε σχέση με το {ph0}. Το " "πρωτότυπο χρησιμοποιούσε το {ph1}, το όριο μέγιστης ισχύος." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -2309,13 +2309,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -2331,7 +2331,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2348,7 +2348,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2363,7 +2363,7 @@ msgstr "" "1,548 αναφορές σε κυριολεκτικές τιμές κινητής υποδιαστολής. Εντόπισε άλλες " "δώδεκα λανθασμένες αναφορές σε πέντε συναρτήσεις που είχαν γίνει αποδεκτές." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -2377,7 +2377,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2387,7 +2387,7 @@ msgstr "" "{ph0}Και η αναφορά ελέγχου χρειαζόταν ανακατασκευή.{ph1} Η επιδιόρθωσή της " "ήταν μέρος της επιδιόρθωσης του παιχνιδιού." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -2405,7 +2405,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2422,7 +2422,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2432,7 +2432,7 @@ msgstr "" "{ph0}Μια επιτυχημένη δέσμη εργασιών μάς έδινε και ανακτημένο κώδικα και " "καλύτερο περιβάλλον για την επόμενη δέσμη.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Δύο διαφορετικές αντιλήψεις για την ανακατασκευή" @@ -2441,7 +2441,7 @@ msgstr "Δύο διαφορετικές αντιλήψεις για την αν #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2453,7 +2453,7 @@ msgstr "" "με αυτό το είδος δουλειάς. Η ανακοίνωση αναφέρει ότι η περαιτέρω ανάπτυξη θα" " γίνεται ιδιωτικά μέχρι την ολοκλήρωση. Ένα απόσπασμα γράφει:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -2463,7 +2463,7 @@ msgstr "" "τεχνητή νοημοσύνη) σε αυτόν τον χώρο, που παίρνουν υλικό από τη δουλειά μας," " δημιουργεί κακή εικόνα για τις μελλοντικές προσπάθειες απομεταγλώττισης…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -2481,7 +2481,7 @@ msgstr "" "συζητήσω αφορά το πώς πρέπει να προχωρά η ανακατασκευή και πώς πρέπει να " "κρίνεται μια συνεισφορά." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -2495,7 +2495,7 @@ msgstr "" "συνεισφέροντα είχε σημασία, επειδή τόσο μεγάλο μέρος του συλλογισμού γινόταν" " όσο εργαζόταν." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -2507,7 +2507,7 @@ msgstr "" "χρησιμοποιήσει αυτή τη γνώση για να συνεχίσει μόνος του την επόμενη " "διερεύνηση." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -2522,7 +2522,7 @@ msgstr "" " ένας άλλος άνθρωπος να μπορεί να εξετάσει γιατί επιλέξαμε μια υλοποίηση, " "ακόμη κι αν ο βοηθός έκανε το μεγαλύτερο μέρος της δουλειάς." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -2536,7 +2536,7 @@ msgstr "" "Αλλάζει επίσης όσα πρέπει να γνωρίζουν οι υπεύθυνοι συντήρησης πριν " "αποδεχτούν μια συνεισφορά." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -2552,7 +2552,7 @@ msgstr "" "λανθασμένη. Διαφορετικές κοινότητες μπορούν να επιλέξουν πόσο από αυτή την " "αλλαγή θέλουν να υιοθετήσουν." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -2578,7 +2578,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2591,14 +2591,14 @@ msgstr "" "είναι συντομευμένο απόσπασμα. Οι {ph4}αναφορές συντελεστών και " "προέλευσης{ph5} του TH08 καταγράφουν το όριο από το οποίο ξεκινά η συνέχεια." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: η εμπειρία αρχίζει να συσσωρεύεται" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2613,7 +2613,7 @@ msgstr "" "μάθουμε το παιχνίδι. Γνωρίζαμε όμως ήδη πολύ περισσότερα για το πώς να " "ξεκινήσουμε μια ανακατασκευή και πώς να τη συνεχίσουμε." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -2627,7 +2627,7 @@ msgstr "" "Σεπτεμβρίου. Η ανακατασκευή για Windows i386 καταγράφηκε ως λειτουργική για " "παιχνίδι στις 10 Σεπτεμβρίου, περίπου δώδεκα ημέρες μετά την αρχικοποίηση." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -2639,7 +2639,7 @@ msgstr "" " παιχνίδι. Η εμπειρία ήταν ήδη παρούσα στα εργαλεία και στον τρόπο οργάνωσης" " του έργου." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -2655,7 +2655,7 @@ msgstr "" "βοήθησε να διαμορφωθεί η προσέγγισή μας για τη δημιουργία ολόκληρου του " "προγράμματος TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -2669,7 +2669,7 @@ msgstr "" " να χρησιμοποιήσει το αποτέλεσμα χωρίς να επαναλάβει τη διερεύνηση που " "οδήγησε σε αυτό." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -2685,7 +2685,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2697,7 +2697,7 @@ msgstr "" "παιχνίδι.{ph1} Μπορούμε να αφιερώσουμε περισσότερο από τον κόπο του επόμενου" " έργου σε ό,τι είναι πραγματικά νέο στον στόχο του." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -2710,7 +2710,7 @@ msgstr "" "συνεχίσουν τη δουλειά. Δεν χρειάζεται να ανασυνθέσουν ολόκληρο το ιστορικό " "του έργου για να μάθουν γιατί ο πηγαίος κώδικας έχει τη μορφή που έχει." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: η ροή εργασίας αντέχει σε μια διαφορετική αρχιτεκτονική" @@ -2719,7 +2719,7 @@ msgstr "TH04: η ροή εργασίας αντέχει σε μια διαφορ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2736,7 +2736,7 @@ msgstr "" "υπάρχουσα {ph2}δουλειά του ReC98{ph3} μάς έδωσε και εδώ πολύτιμη γνώση και " "πηγαίο υλικό." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -2750,7 +2750,7 @@ msgstr "" "δημιουργία μιας λειτουργικής έκδοσης DOS πρώτα δίνει σε αυτή τη μεταφορά μια" " αναφορά." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -2764,7 +2764,7 @@ msgstr "" "σε αποτέλεσμα και να αφήνει αυτό το αποτέλεσμα να καθοδηγεί το επόμενο " "πείραμα." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -2779,7 +2779,7 @@ msgstr "" " Μόλις υπάρχουν τα στοιχεία και οι έλεγχοι, ένας βοηθός μπορεί να " "επεξεργαστεί το ερώτημα όπως έκανε σε έναν τίτλο για Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -2791,7 +2791,7 @@ msgstr "" "δουλειάς. Η αρχιτεκτονική όριζε το πρόβλημα· η ροή εργασίας εξακολουθούσε να" " μας δίνει έναν τρόπο να το λύσουμε." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -2808,7 +2808,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2819,12 +2819,12 @@ msgstr "" "χειροκίνητες δοκιμές{ph1} · {ph2}μεταφορά σε 64-bit{ph3}. Η μεταφορά " "παραμένει υπό ανάπτυξη." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Από τον ακριβή κώδικα στον αναγνώσιμο κώδικα" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -2833,7 +2833,7 @@ msgstr "" "Μόλις μια ανακατασκευή λειτουργεί, θέλω να μπορεί να την καταλάβει και " "κάποιος άλλος." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -2849,7 +2849,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2866,7 +2866,7 @@ msgstr "" "ταιριάζει στα στοιχεία. Κρατάμε το σκεπτικό μαζί με τον πηγαίο κώδικα, ώστε " "ο επόμενος άνθρωπος να μπορεί να δει από πού προήλθε αυτή η ερμηνεία." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -2882,14 +2882,14 @@ msgstr "" "ασφάλεια, πρέπει να ανακτήσουμε τη σχέση πίσω από την παλιά πρόσβαση στη " "μνήμη." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Η σειρά που χρησιμοποιώ πλέον είναι:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2905,7 +2905,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2922,7 +2922,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2939,7 +2939,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2954,7 +2954,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2971,7 +2971,7 @@ msgstr "" "ανακατασκευασμένο πρόγραμμα εξακολουθεί να δημιουργείται και να " "συμπεριφέρεται σωστά στις διαδρομές που δοκιμάζουμε." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -2986,7 +2986,7 @@ msgstr "" "βοηθό μια συγκεκριμένη αστοχία να διερευνήσει πριν προχωρήσει περισσότερο σε" " μια αναδιάρθρωση." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -3004,7 +3004,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3023,7 +3023,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3034,12 +3034,12 @@ msgstr "" "ανακατασκευή κάνει την ανακτημένη γνώση αξιοποιήσιμη.{ph1} Μια μεταφορά σε " "άλλη πλατφόρμα μπορεί έπειτα να βασιστεί και στις δύο." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Τι κάνει αυτή την αλλαγή βιομηχανική" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -3053,7 +3053,7 @@ msgstr "" "μπορούσα να κάνω. Ένα καλύτερο εργαλείο μπορούσε να βοηθήσει σε κάθε " "μεταγενέστερη συνάρτηση που το χρειαζόταν." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -3067,7 +3067,7 @@ msgstr "" "κατεύθυνση. Αν πρέπει να περιμένει να του ορίσω κάθε βήμα, μεγάλο μέρος της " "δουλειάς παραμένει δεμένο με τη δική μου προσοχή." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -3081,7 +3081,7 @@ msgstr "" "καλά ώστε να προσπαθήσει ξανά. Εγώ εξακολουθώ να πρέπει να αποφασίζω αν τα " "συσσωρευμένα στοιχεία στηρίζουν ένα ορόσημο του έργου." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -3097,7 +3097,7 @@ msgstr "" "χρησιμοποιήσει για να δοκιμάσει τον πηγαίο κώδικα που προτείνει και να δει " "πού αντέχει η εξήγησή του." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -3115,7 +3115,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3136,7 +3136,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3154,7 +3154,7 @@ msgstr "" "τα αποτελέσματα που επηρέασε. Το επόμενο έργο μπορεί τότε να κληρονομήσει " "ένα ισχυρότερο εργαλείο." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -3170,7 +3170,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3183,7 +3183,7 @@ msgstr "" "τους παρακάτω. Η δουλειά σε ένα παιχνίδι μπορεί να βελτιώσει τις αρχικές " "συνθήκες για ένα άλλο." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -3195,12 +3195,12 @@ msgstr "" "αυτών των εργαλείων αλλάζει το πόσα μπορεί να κάνει ο επόμενος άνθρωπος — ή " "ο επόμενος βοηθός." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Τα έργα που μπορούμε πλέον να εξετάσουμε" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -3212,7 +3212,7 @@ msgstr "" "απαιτούσε περισσότερη δική μου προσοχή από όση μπορούσα ρεαλιστικά να του " "δώσω. Πολλά έργα θα έμεναν ιδέες." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -3230,7 +3230,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3241,7 +3241,7 @@ msgstr "" "ανατροφοδότηση και συσσωρευμένη γνώση θα επέτρεπαν σε έναν βοηθό να δουλέψει" " αξιόπιστα πάνω σε αυτό;{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -3252,12 +3252,12 @@ msgstr "" "Το καθένα μπορεί να βελτιώσει τον τρόπο με τον οποίο προσεγγίζουμε το " "επόμενο. Θέλω να συνεχίσω να εξερευνώ πόσο μακριά μπορεί να μας πάει αυτό." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Ορόσημα έργων και πηγές" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -3293,7 +3293,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3328,7 +3328,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3347,7 +3347,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3371,7 +3371,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3393,7 +3393,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3410,7 +3410,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3432,7 +3432,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -3447,7 +3447,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -3469,27 +3469,27 @@ msgstr "" " του Touhou με βοηθούς τεχνητής νοημοσύνης και το πώς συσσωρεύεται η γνώση " "μεταξύ των TH08, TH095 και PC-98 TH04." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Εμπειρία που μεταφέρεται μεταξύ έργων" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Δοκίμιο για την ανακατασκευή του Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -3498,18 +3498,18 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Εξετάστε → ανακατασκευάστε → αλλάξτε" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Ανακατασκευάστε τον κανόνα ταχύτητας του δεινοσαύρου." @@ -3518,7 +3518,7 @@ msgstr "Ανακατασκευάστε τον κανόνα ταχύτητας τ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3531,15 +3531,15 @@ msgstr "" "εκτελείται·{ph1} χρησιμοποιήσαμε τον κανόνα του για να φτιάξουμε αυτό το " "μικρό παιχνίδι με {ph2}ρυθμιζόμενη ταχύτητα.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -3547,7 +3547,7 @@ msgstr "{ph0}Παίξτε και αλλάξτε την ταχύτητα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -3555,7 +3555,7 @@ msgstr "{ph0}Διαβάστε τον κανόνα που ανακτήθηκε{ph #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -3563,18 +3563,18 @@ msgstr "{ph0}Ελέγξτε την ανακατασκευή{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Παίξτε και αλλάξτε την ταχύτητα" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -3586,49 +3586,49 @@ msgstr "" "ταχύτητα. Επιλέξτε τον κανόνα που ανακτήθηκε για να ξεκινήσετε από το 6 και " "να επιταχύνετε ξανά σταδιακά." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Παίξτε την ανακατασκευή" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Έναρξη" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Άλμα ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Επανεκκίνηση" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Ταχύτητα" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Χρήση του ανακτημένου κανόνα επιτάχυνσης" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Μετακινήστε το ρυθμιστικό για να ορίσετε τη δική σας ταχύτητα. Πατήστε Space" " ή Άλμα για να περάσετε έναν κάκτο." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -3637,7 +3637,7 @@ msgstr "" "Ενεργοποιήστε τη JavaScript για να παίξετε την ανακατασκευή. Ο παραπάνω " "κώδικας και η εξήγηση παραμένουν αναγνώσιμα." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Διαβάστε το script που επέστρεψε το REA" @@ -3645,7 +3645,7 @@ msgstr "Διαβάστε το script που επέστρεψε το REA" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3657,7 +3657,7 @@ msgstr "" "που προέρχεται από το Chromium{ph1}. Επέστρεψε το φορτωμένο {ph2}, μαζί με " "αυτή τη διακλάδωση στη συνάρτηση ενημέρωσης του παιχνιδιού:" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA · επιλεγμένος πηγαίος κώδικας του script" @@ -3665,7 +3665,7 @@ msgstr "REA · επιλεγμένος πηγαίος κώδικας του scrip #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3675,25 +3675,25 @@ msgstr "" "Οι ρυθμίσεις είναι {ph0}, {ph1} και {ph2}. Το παιχνίδι εκτελεί αυτή τη " "διακλάδωση σε κάθε ενημέρωση χωρίς σύγκρουση." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Χρησιμοποιήστε τον ίδιο κανόνα στο νέο παιχνίδι" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Ανακατασκευή · {ph0}" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Αντιγραφή" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -3711,7 +3711,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" @@ -3719,12 +3719,12 @@ msgstr "" "{ph0}Κατεβάστε τον κανόνα ταχύτητας{ph1} · {ph2}Διαβάστε τον κώδικα του " "παιχνιδιού{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Ελέγξτε την ανακατασκευή" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -3735,27 +3735,27 @@ msgstr "" "τα εμπόδια και τον αυτόματο προγραμματισμό εκτέλεσης. Συγκρίνετε τις " "καταγεγραμμένες ταχύτητες με μια νέα εκτέλεση του ανακτημένου κανόνα." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Ενημερώσεις" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Αρχικό παιχνίδι" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Ανακατασκευασμένος κανόνας" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Εκτέλεση ελέγχου ταχύτητας" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -3765,14 +3765,14 @@ msgstr "" " ταχύτητα πριν από την πρόσθεση, οπότε η τελευταία αύξηση μπορεί να την " "ανεβάσει λίγο πάνω από το 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Δοκιμάστε την ανάλυση μόνοι σας" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -3781,7 +3781,7 @@ msgstr "{ph0}Ρυθμίστε το REA{ph1} με τον βοηθό προγρα #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3790,7 +3790,7 @@ msgstr "" "Ακολουθήστε τα {ph0}βήματα σύνδεσης με το πρόγραμμα περιήγησης{ph1}, " "χρησιμοποιώντας το {ph2} ως URL της σελίδας." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -3807,7 +3807,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3819,7 +3819,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ο βοηθός προγραμμ #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3833,7 +3833,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3848,7 +3848,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3875,12 +3875,12 @@ msgstr "" "Διαβάστε με το REA τον κανόνα ταχύτητας του παιχνιδιού με τον δεινόσαυρο, " "ανακατασκευάστε τον και έπειτα αλλάξτε την ταχύτητα και παίξτε." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Ανακατασκευή της ταχύτητας του δεινοσαύρου" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -3889,52 +3889,52 @@ msgstr "" "Μικρό παιχνίδι με δεινόσαυρο. Χρησιμοποιήστε το κουμπί Άλμα ή πατήστε Space " "όσο το παιχνίδι έχει την εστίαση." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Αντιγραφή του ανακατασκευασμένου κανόνα ταχύτητας" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Αντιγραφή της οδηγίας ανάλυσης του δεινοσαύρου" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Αρχική{ph1} / Συχνές ερωτήσεις" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "Συχνές ερωτήσεις για το REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Ρύθμιση, ενημερώσεις, ανάλυση και αντιμετώπιση προβλημάτων." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Θέματα" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -3942,7 +3942,7 @@ msgstr "{ph0}Ρύθμιση και ενημερώσεις{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -3950,7 +3950,7 @@ msgstr "{ph0}Ανάλυση{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -3958,24 +3958,24 @@ msgstr "{ph0}Αντιμετώπιση προβλημάτων{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Δεδομένα και κοινοποίηση{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Ρύθμιση και ενημερώσεις" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Πώς εγκαθιστώ το REA;" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3985,22 +3985,22 @@ msgstr "" "Με διαθέσιμα τα {ph0} και npm, εκτελέστε τη ρύθμιση, επιλέξτε τον βοηθό " "προγραμματισμού σας και ελέγξτε τις προτεινόμενες αλλαγές." -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Τερματικό · ρύθμιση βοηθού" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Αντιγραφή" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4014,12 +4014,12 @@ msgstr "" "δώστε του μια διαδρομή στόχου και μια ερώτηση. {ph0}Ακολουθήστε τον οδηγό " "ρύθμισης{ph1} για τα προαπαιτούμενα και την πρώτη σας ανάλυση." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Ποιοι βοηθοί προγραμματισμού μπορούν να χρησιμοποιήσουν το REA;" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -4034,18 +4034,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Συνδέστε τον βοηθό προγραμματισμού σας{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Πώς ενημερώνω το REA;" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -4054,13 +4054,13 @@ msgstr "" "Το REA κυκλοφορεί συχνά νέες εκδόσεις, με διορθώσεις σφαλμάτων. Αν " "εγκαταστήσατε το CLI μέσω npm:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Τερματικό · εγκατεστημένο CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4070,13 +4070,13 @@ msgstr "" "Ακολουθήστε την εντολή ανανέωσης της ρύθμισης που εμφανίζει η ενημέρωση. Αν " "ρυθμίσατε τον βοηθό σας μέσω {ph0}, εκτελέστε:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Τερματικό · ανανέωση ρύθμισης βοηθού" #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4089,14 +4089,14 @@ msgstr "" "κάνει να χρησιμοποιεί τη νέα έκδοση. Για μεμονωμένες εντολές CLI, " "χρησιμοποιήστε {ph0} και έπειτα την εντολή." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Αρκεί η εγκατάσταση της δεξιότητας από το skills.sh;" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4109,24 +4109,24 @@ msgstr "" "εγκαταστήσετε την αντίστοιχη δεξιότητα, και μετά επανεκκινήστε τον βοηθό σας" " ώστε να μπορεί να καλεί τα εργαλεία." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Ανάλυση" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Τι μπορώ να αναλύσω με το REA;" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Ξεκινήστε από το είδος του λογισμικού που διαθέτετε:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4138,7 +4138,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4150,7 +4150,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -4160,7 +4160,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4172,12 +4172,12 @@ msgstr "" "Android APK, υλικολογισμικό και συσκευασμένους πόρους. {ph0}Δείτε τις " "μελέτες{ph1} για αναλυτικά παραδείγματα διερεύνησης." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Χρειάζομαι Hopper, Ghidra ή IDA;" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -4189,7 +4189,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4202,12 +4202,12 @@ msgstr "" " το REA και ο στόχος καθορίζουν ποιος πάροχος ανάλυσης μπορεί να " "χρησιμοποιηθεί. {ph0}Ρυθμίστε την ανάλυση εγγενούς κώδικα{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Μπορώ να χρησιμοποιήσω το REA χωρίς βοηθό προγραμματισμού;" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -4216,14 +4216,14 @@ msgstr "" "Ναι. Το CLI χρησιμοποιεί τις ίδιες ροές ανάλυσης. Για μια τοπική εφαρμογή " "JavaScript ή Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Τερματικό · στατική ανάλυση εφαρμογής" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4233,12 +4233,12 @@ msgstr "" "Αντικαταστήστε τη διαδρομή με έναν φάκελο αποσυμπιεσμένης εφαρμογής ή ένα " "αρχείο ASAR. {ph0}Χρησιμοποιήστε το CLI{ph1} για τις επιλογές εγκατάστασης." -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Τι κώδικα επιστρέφει το REA;" -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -4253,7 +4253,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4266,12 +4266,12 @@ msgstr "" "Ball{ph1} και ο {ph2}έλεγχος flag του CTF{ph3} δείχνουν πώς λειτουργεί αυτή " "η διαδικασία." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Τι να ζητήσω από τον βοηθό μου;" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -4288,7 +4288,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4301,7 +4301,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ο βοηθός προγραμμ #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4314,7 +4314,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4324,18 +4324,18 @@ msgstr "" "Αντικαταστήστε τη διαδρομή με τον στόχο σας. Οι {ph0}οδηγοί{ph1} παρέχουν " "προτροπές για παραδείγματα εγγενούς κώδικα, Electron και browser." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Αντιμετώπιση προβλημάτων" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Γιατί ο βοηθός μου δεν βλέπει τα εργαλεία του REA;" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4345,7 +4345,7 @@ msgstr "" "Επανεκκινήστε ή επανασυνδέστε τον βοηθό σας μετά τη ρύθμιση. Ελέγξτε την " "καταχώριση του REA με το {ph0}· για το Codex:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Τερματικό · έλεγχος μίας εφαρμογής" @@ -4353,7 +4353,7 @@ msgstr "Τερματικό · έλεγχος μίας εφαρμογής" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4364,14 +4364,14 @@ msgstr "" "{ph2}. Αν η αναφορά δείχνει ότι η καταχώριση λείπει ή είναι παλιά, εκτελέστε" " τη ρύθμιση για αυτή την εφαρμογή:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Τερματικό · επιδιόρθωση ρύθμισης μίας εφαρμογής" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4383,14 +4383,14 @@ msgstr "" "είναι σωστή αλλά τα εργαλεία εξακολουθούν να λείπουν, ελέγξτε το σφάλμα " "σύνδεσης MCP της εφαρμογής. {ph0}Περισσότερα διαγνωστικά ρύθμισης{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Πρέπει να ξεκινήσω πρώτα το Hopper;" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4403,14 +4403,14 @@ msgstr "" "πριν από ανάλυση χωρίς επίβλεψη. {ph0}Δείτε τη ρύθμιση παρόχου ανάλυσης " "εγγενούς κώδικα{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Τι να κάνω αν συναντήσω σφάλμα;" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4422,7 +4422,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4435,17 +4435,17 @@ msgstr "" "σφάλματος. Συμπεριλάβετε το όνομα του παρόχου ανάλυσης όταν το πρόβλημα " "αφορά ανάλυση εγγενούς κώδικα." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Δεδομένα και κοινοποίηση" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Το REA ανεβάζει την εφαρμογή μου;" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -4455,7 +4455,7 @@ msgstr "" "αποτελέσματα, στα οποία εφαρμόζεται η πολιτική δεδομένων του παρόχου του " "μοντέλου του." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Πώς μπορώ να μοιραστώ ένα παράδειγμα ή να συνεισφέρω;" @@ -4464,7 +4464,7 @@ msgstr "Πώς μπορώ να μοιραστώ ένα παράδειγμα ή #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4480,7 +4480,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -4508,77 +4508,77 @@ msgstr "" "εργαλεία ανάλυσης, βοηθοί προγραμματισμού, αντιμετώπιση προβλημάτων και " "κοινοποίηση παραδειγμάτων." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Συχνές ερωτήσεις για το REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Αντιγραφή εντολής ρύθμισης του REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Αντιγραφή εντολής ενημέρωσης του REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Αντιγραφή εντολής ανανέωσης ρύθμισης βοηθού" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Αντιγραφή εντολής ανάλυσης με το CLI του REA" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Αντιγραφή παραδείγματος προτροπής ανάλυσης" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Αντιγραφή εντολής διάγνωσης εφαρμογής" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Αντιγραφή εντολής ρύθμισης για συγκεκριμένη εφαρμογή" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Αρχική{ph1} / Η πρώτη σας διερεύνηση" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -4589,21 +4589,21 @@ msgstr "" "μόνοι σας." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" msgstr "" "Ένα παρεχόμενο παράδειγμα · {ph0} και npm · Ο βοηθός προγραμματισμού σας" -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Σε αυτή την άσκηση" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -4611,7 +4611,7 @@ msgstr "{ph0}1. Ρυθμίστε το REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -4619,7 +4619,7 @@ msgstr "{ph0}2. Ρωτήστε για την εξαγωγή{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -4627,7 +4627,7 @@ msgstr "{ph0}3. Ακολουθήστε την απάντηση{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -4635,13 +4635,13 @@ msgstr "{ph0}4. Ελέγξτε μια πρόβλεψη{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Συνδέστε τον βοηθό σας με το REA" @@ -4649,7 +4649,7 @@ msgstr "1. Συνδέστε τον βοηθό σας με το REA" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4668,20 +4668,20 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -4693,7 +4693,7 @@ msgstr "Αντιγραφή" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4705,12 +4705,12 @@ msgstr "" "προγραμματισμού χρησιμοποιώντας το {ph3}. Δείξτε μου το σχέδιο ρύθμισης για " "έγκριση και μετά επαληθεύστε την εγκατάσταση.{ph4}{ph5}{ph6}" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Ή εκτελέστε αυτή την εντολή στο τερματικό σας:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -4719,14 +4719,14 @@ msgstr "" "Ελέγξτε το σχέδιο, εγκρίνετε τη ρύθμιση και επανεκκινήστε τον βοηθό σας. " "Έχετε ήδη συνδεθεί; Συνεχίστε παρακάτω." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Ρωτήστε πού γράφεται το CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4747,7 +4747,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4761,7 +4761,7 @@ msgstr "" " Export notes. Δείξτε πού γράφεται το {ph4}, ποια πεδία περιέχει και τα " "σχετικά αρχεία και γραμμές.{ph5}{ph6}{ph7}" -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -4773,14 +4773,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Λήψη παραδείγματος ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4791,12 +4791,12 @@ msgstr "" "μόνοι σας. Δώστε του τη διαδρομή προς τον φάκελο {ph0} και την ίδια ερώτηση " "για την εξαγωγή." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Ακολουθήστε την απάντηση πίσω στον κώδικα" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Αναζητήστε μια σύντομη εξήγηση με αναφορές σε αρχεία και γραμμές:" @@ -4805,7 +4805,7 @@ msgstr "Αναζητήστε μια σύντομη εξήγηση με αναφ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4817,7 +4817,7 @@ msgstr "" "σημειώσεις ως CSV και γράφει το {ph1} στον φάκελο λήψεων του χρήστη. Οι " "στήλες είναι {ph2} και {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Από το κουμπί στην εγγραφή του αρχείου" @@ -4830,7 +4830,7 @@ msgstr "Από το κουμπί στην εγγραφή του αρχείου" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -4845,7 +4845,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4864,7 +4864,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4874,7 +4874,7 @@ msgstr "" "{ph0}Χειριστής · {ph1}{ph2}{ph3}Εγγραφή του {ph4}{ph5}{ph6}Καλεί τη " "συνάρτηση μορφοποίησης στο {ph7} και γράφει το αρχείο.{ph8}" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -4884,18 +4884,18 @@ msgstr "" "προορισμός διαβάζεται από τον κώδικα." #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" msgstr "{ph0} · γραμμές 8–12" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Πηγαίος κώδικας" -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -4907,7 +4907,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." @@ -4915,12 +4915,12 @@ msgstr "" "{ph0}Δείτε την πλήρη διαδρομή στον κώδικα και το καταγεγραμμένο αποτέλεσμα " "του REA{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Ελέγξτε μια πρόβλεψη" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -4938,7 +4938,7 @@ msgstr "" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4951,13 +4951,13 @@ msgstr "" "{ph5} για να το ελέγξετε. Δείξτε την πρόβλεψη και την πραγματική " "έξοδο.{ph6}{ph7}{ph8}" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Αναμενόμενη έξοδος της συνάρτησης μορφοποίησης" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4968,29 +4968,29 @@ msgstr "" "διπλασιάζεται. Έτσι ελέγχεται απευθείας η συνάρτηση μορφοποίησης με το " "{ph0}." -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Εκτελέστε τον έλεγχο μόνοι σας" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Κάντε άλλη μια ερώτηση" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Δοκιμάστε μια επόμενη ερώτηση στην ίδια συνομιλία:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -4999,7 +4999,7 @@ msgstr "" "Τι συμβαίνει αν δεν μπορεί να γραφτεί το αρχείο; Ακολουθήστε το σφάλμα πίσω " "στη σελίδα." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -5012,7 +5012,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -5026,7 +5026,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -5041,7 +5041,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -5066,148 +5066,149 @@ msgstr "" "ρωτήστε πού καταλήγουν οι εξαγόμενες σημειώσεις και ελέγξτε τη συνάρτηση " "μορφοποίησης CSV με ένα παράδειγμα τίτλου." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Η πρώτη σας διερεύνηση με το REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Αντιγραφή προτροπής εγκατάστασης του REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Αντιγραφή εντολής ρύθμισης" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Αντιγραφή προτροπής διερεύνησης σημειώσεων" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Αντιγραφή προτροπής ελέγχου CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Αντιγραφή εντολής ελέγχου συνάρτησης μορφοποίησης" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Αρχική{ph1} / Ξεκινήστε" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Ρυθμίστε το REA." #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Θα χρειαστείτε {ph0} 22 (22.23.4+), 24 (24.22.1+) ή 26+ (>=26.12.1). Το npm περιλαμβάνεται " -"στο {ph1}." +"Θα χρειαστείτε {ph0} 22 (22.23.4+), 24 (24.22.1+) ή 26+ (>=26.12.1). Το npm " +"περιλαμβάνεται στο {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" msgstr "Δεν έχετε {ph0} ή δεν είστε σίγουροι;" -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Ανοίξτε ένα τερματικό και ελέγξτε:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Τερματικό" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Αντιγραφή" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Αν το {ph0} εμφανίζει v22.23.4+, v24.22.1+ ή v26.12.1+, είστε έτοιμοι. Αν εμφανίζει " -"παλαιότερη έκδοση ή \"not recognized\" / \"command not found\", εγκαταστήστε" -" το {ph1} 24 LTS:" +"Αν το {ph0} εμφανίζει v22.23.4+, v24.22.1+ ή v26.12.1+, είστε έτοιμοι. Αν " +"εμφανίζει παλαιότερη έκδοση ή \"not recognized\" / \"command not found\", " +"εγκαταστήστε το {ph1} 24 LTS:" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5219,7 +5220,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5231,7 +5232,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5243,7 +5244,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -5251,7 +5252,7 @@ msgstr "{ph0}Χρησιμοποιήστε το CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -5265,7 +5266,7 @@ msgstr "{ph0}Βρείτε βοήθεια{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -5278,7 +5279,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ο βοηθός προγραμμ #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5290,12 +5291,12 @@ msgstr "" "προγραμματισμού χρησιμοποιώντας το {ph3}. Δείξτε μου το σχέδιο ρύθμισης για " "έγκριση και μετά επαληθεύστε την εγκατάσταση.{ph4}{ph5}{ph6}" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Ή εκτελέστε τη ρύθμιση μόνοι σας" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Πώς ανοίγω ένα τερματικό;" @@ -5304,7 +5305,7 @@ msgstr "Πώς ανοίγω ένα τερματικό;" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5320,7 +5321,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5334,7 +5335,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -5349,7 +5350,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5359,7 +5360,7 @@ msgstr "" "Επικολλήστε μια εντολή με {ph0} {ph1} (macOS: {ph2} {ph3}· τερματικά Linux: " "{ph4} {ph5} {ph6}) και μετά πατήστε Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -5371,7 +5372,7 @@ msgstr "" " ασφαλείας της υπάρχουσας διαμόρφωσης. Ζητά έγκριση πριν εφαρμόσει τις " "αλλαγές." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Πώς επανεκκινώ την εφαρμογή μου;" @@ -5380,7 +5381,7 @@ msgstr "Πώς επανεκκινώ την εφαρμογή μου;" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5396,7 +5397,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5406,7 +5407,7 @@ msgstr "" "{ph0}Βοηθοί στο τερματικό{ph1} (Claude Code, Codex, Gemini CLI): τερματίστε " "τη συνεδρία και ξεκινήστε την ξανά." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Πώς βρίσκω την πλήρη διαδρομή ενός φακέλου;" @@ -5415,7 +5416,7 @@ msgstr "Πώς βρίσκω την πλήρη διαδρομή ενός φακέ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5430,7 +5431,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5442,7 +5443,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5452,14 +5453,14 @@ msgstr "" "{ph0}Σε κάθε σύστημα:{ph1} σύρετε τον φάκελο σε ένα παράθυρο τερματικού και " "θα εμφανιστεί η διαδρομή του." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -5468,14 +5469,14 @@ msgstr "" "Αναλύστε έναν φάκελο εφαρμογής JavaScript ή Electron ή ένα αρχείο ASAR χωρίς" " να εκτελέσετε την εφαρμογή:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Στατική ανάλυση εφαρμογής" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5485,13 +5486,13 @@ msgstr "" "Αντικαταστήστε τη διαδρομή με τον κατάλογο της αποσυμπιεσμένης εφαρμογής ή " "το αρχείο {ph0} σας. Στα Windows, μια διαδρομή όπως {ph1} λειτουργεί εδώ." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Πού βρίσκω το αρχείο .asar μιας εφαρμογής;" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -5502,7 +5503,7 @@ msgstr "Οι εφαρμογές Electron συνήθως το διατηρούν #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -5514,7 +5515,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5527,14 +5528,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} συχνά {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -5542,7 +5543,7 @@ msgstr "" "Ορισμένες εφαρμογές εγκαθίστανται αλλού. Αναζητήστε το {ph0} στον φάκελο της" " εφαρμογής." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -5554,36 +5555,36 @@ msgstr "" "μπορεί να επιλύσει επισημαίνονται στο αποτέλεσμα." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Εγκατάσταση του CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Συνδέστε την εγκατάσταση Ghidra σας" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Συνδέστε το Ghidra στα Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -5595,7 +5596,7 @@ msgstr "" "Χρησιμοποιήστε μια υπάρχουσα εγκατάσταση Ghidra 12.1.x και JDK 21 ή νεότερο," " 64 bit:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -5603,7 +5604,7 @@ msgstr "" "Αντικαταστήστε τις δύο διαδρομές με τις εγκαταστάσεις σας και ελέγξτε το " "σχέδιο της ρύθμισης." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -5613,18 +5614,18 @@ msgstr "" " εντοπίζει μια υπάρχουσα εγκατάσταση ή προτείνει ένα σχέδιο εγκατάστασης για" " έγκρισή σας." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Βρείτε βοήθεια" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Αν ο βοηθός σας δεν βλέπει το REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5634,22 +5635,22 @@ msgstr "" "Επανεκκινήστε ή επανασυνδέστε την εφαρμογή μετά τη ρύθμιση. Ελέγξτε τη " "σύνδεσή της με το REA χρησιμοποιώντας το {ph0}· για το Codex:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Αν ένας πάροχος ανάλυσης χρειάζεται έλεγχο" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Ελέγξτε τον πάροχο ανάλυσης που χρησιμοποιείτε. Για το Ghidra:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Έλεγχος ενός παρόχου ανάλυσης" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -5659,7 +5660,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5672,7 +5673,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5686,7 +5687,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5700,7 +5701,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5725,68 +5726,68 @@ msgstr "" "εφαρμογή JavaScript ή Electron από το τερματικό. Ρύθμιση, πρώτες ερωτήσεις " "και οδηγοί παρόχων ανάλυσης εγγενούς κώδικα." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Αντιγραφή ελέγχου έκδοσης Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Αντιγραφή εντολής εγκατάστασης Node.js για Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Αντιγραφή εντολής εγκατάστασης Node.js μέσω Homebrew" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Αντιγραφή εντολής εγκατάστασης fnm για Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 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:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "Οδηγός πρώτων βημάτων με το REA" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Αντιγραφή προτροπής εγκατάστασης του REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Αντιγραφή εντολής ανάλυσης JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Αντιγραφή εντολής εγκατάστασης CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Αντιγραφή εντολής διάγνωσης παρόχου ανάλυσης" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -5795,20 +5796,20 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Αρχική{ph1} / {ph2}Οδηγοί{ph3} / Παρατήρηση στον browser" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -5817,14 +5818,14 @@ msgstr "" "Χρησιμοποιήστε μια μικρή εφαρμογή browser για να συνδέσετε μια ενέργεια, το " "δικτυακό της αίτημα και τη JavaScript που δημιουργεί ένα αρχείο προς λήψη." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Σε αυτόν τον οδηγό" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -5832,7 +5833,7 @@ msgstr "{ph0}Το παράδειγμα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -5840,7 +5841,7 @@ msgstr "{ph0}Ανοίξτε τον browser{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5848,7 +5849,7 @@ msgstr "{ph0}Ρωτήστε τον βοηθό σας{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -5856,13 +5857,13 @@ msgstr "{ph0}Καταγράψτε από το CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Διαβάστε το αίτημα και το script{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Τι συμβαίνει όταν πατάτε Export;" @@ -5872,7 +5873,7 @@ msgstr "Τι συμβαίνει όταν πατάτε Export;" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5884,7 +5885,7 @@ msgstr "" "notes{ph3}. Πατώντας το, φορτώνεται το {ph4}, οι δύο σημειώσεις " "μορφοποιούνται ως CSV και ξεκινά μια λήψη." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Από το κλικ στη λήψη CSV" @@ -5895,7 +5896,7 @@ msgstr "Από το κλικ στη λήψη CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5911,7 +5912,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5930,7 +5931,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5941,17 +5942,17 @@ msgstr "" "εξαγωγής{ph3}{ph4}Συνδέστε το αίτημα που παρατηρήθηκε με το {ph5} στο " "{ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Ξεκινήστε την καταγραφή πριν πατήσετε Export notes." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Ανοίξτε το Chrome με απομακρυσμένη αποσφαλμάτωση" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -5960,21 +5961,21 @@ msgstr "" "Ανοίξτε το φιλοξενούμενο παράδειγμα σημειώσεων με ξεχωριστό προφίλ browser " "και τοπική θύρα αποσφαλμάτωσης. Στο Linux:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Ξεκινήστε τον browser του παραδείγματος" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Αντιγραφή" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -5984,7 +5985,7 @@ msgstr "" "macOS ή Windows. Μπορείτε να αντικαταστήσετε το URL της σελίδας με μια άλλη " "σελίδα που θέλετε να εξετάσετε." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -5993,7 +5994,7 @@ msgstr "" "Το REA συνδέεται με αυτόν τον ήδη ανοιχτό browser. Διατηρείτε τον έλεγχο της" " σελίδας, εκτελείτε την ενέργεια και κλείνετε τον browser όταν τελειώσετε." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Ζητήστε από τον βοηθό σας να παρακολουθήσει μία ενέργεια" @@ -6006,7 +6007,7 @@ msgstr "Ζητήστε από τον βοηθό σας να παρακολουθ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -6018,7 +6019,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ο βοηθός προγραμμ #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6030,7 +6031,7 @@ msgstr "" "CSV;{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6041,7 +6042,7 @@ msgstr "" "{ph0}, και το URL της σελίδας. Αφήστε τον να ξεκινήσει την καταγραφή πριν " "κάνετε κλικ." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -6052,23 +6053,23 @@ msgstr "" "παρατήρησης και διαβάζει τα στοιχεία που προκύπτουν. Έπειτα μπορεί να " "εξετάσει το script πίσω από την εξαγωγή." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Ή καταγράψτε από το τερματικό" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Βρείτε το αναγνωριστικό στόχου της σελίδας:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Βρείτε τη σελίδα" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6078,14 +6079,14 @@ msgstr "" "Επιλέξτε τον στόχο με το URL του παραδείγματος σημειώσεων. Αντικαταστήστε το" " {ph0} παρακάτω με το αναγνωριστικό του και εκτελέστε:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Καταγράψτε τα επόμενα δέκα δευτερόλεπτα" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6096,7 +6097,7 @@ msgstr "" "notes{ph1} σε εκείνον τον browser. Το αποτέλεσμα φτάνει μόλις τελειώσει το " "χρονικό διάστημα παρατήρησης." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -6107,49 +6108,49 @@ msgstr "" " δραστηριότητα σε αυτό το χρονικό διάστημα και τη δομή της απόκρισης JSON. " "Προγενέστερα αιτήματα βρίσκονται εκτός αυτής της καταγραφής." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Διαβάστε το αίτημα και το script εξαγωγής" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 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:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Καταγεγραμμένο γεγονός" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Τιμή" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Αίτημα" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Απόκριση" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Πηγή του αιτήματος" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · script" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Δομή απόκρισης" @@ -6157,19 +6158,19 @@ msgstr "Δομή απόκρισης" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Διαβάστε τα φορτωμένα scripts" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6181,14 +6182,14 @@ msgstr "" "script για να δείτε πώς χρησιμοποιούνται τα δεδομένα:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" msgstr "{ph0} · απόσπασμα πηγαίου κώδικα του παραδείγματος" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6208,7 +6209,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6219,7 +6220,7 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6231,7 +6232,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6245,7 +6246,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6274,65 +6275,65 @@ msgstr "" "Παρατηρήστε μια εξαγωγή σημειώσεων με το REA: επιλέξτε μια σελίδα browser, " "καταγράψτε ένα κλικ, εξετάστε το αίτημα και ακολουθήστε το script εξαγωγής." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Παρατήρηση στον browser" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Αντιγραφή εντολής εκκίνησης browser του παραδείγματος" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Αντιγραφή εντολής εύρεσης σελίδας" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Αντιγραφή εντολής καταγραφής των επόμενων δέκα δευτερολέπτων" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Αντιγραφή εντολής ανάγνωσης φορτωμένων scripts" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Αρχική{ph1} / Οδηγοί" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Οδηγοί REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -6341,39 +6342,39 @@ msgstr "" "Αναλύστε μια συνάρτηση εγγενούς κώδικα, μια εξαγωγή Electron ή ένα αίτημα " "browser. Κάθε οδηγός περιλαμβάνει μια προτροπή, κώδικα και αποτελέσματα." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Πρώτη διερεύνηση" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Ρυθμίστε το REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" "Συνδέστε τον βοηθό προγραμματισμού σας ή χρησιμοποιήστε το REA από το " "τερματικό." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Ξεκινήστε με το REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Δυαδικά αρχεία εγγενούς κώδικα" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Ανακτήστε έναν υπολογισμό στερεοφωνικής θέσης ήχου" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -6383,42 +6384,42 @@ msgstr "" "ακολουθήστε μια καλούσα συνάρτηση, διαβάστε αριθμητικές σταθερές και ελέγξτε" " τον ανακτημένο κώδικα C." -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Εντολές" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Καλούσα συνάρτηση" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Σταθερές" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Συνάρτηση C" -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Οδηγός ανάλυσης εγγενούς κώδικα" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript και Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Ακολουθήστε μια εξαγωγή CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -6428,34 +6429,34 @@ msgstr "" "preload και κύριας διεργασίας. Χρησιμοποιήστε το REA για να συνδέσετε το " "API, το κανάλι IPC και τον κώδικα εγγραφής αρχείου." -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Κουμπί" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API προφόρτωσης" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Αρχείο CSV" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Οδηγός JavaScript και Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -6463,17 +6464,17 @@ msgstr "" "Για μια μεγαλύτερη συσκευασμένη εφαρμογή, ακολουθήστε τη {ph0}γέφυρα " "προχείρου του Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Συμπεριφορά browser" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Παρατηρήστε ένα κλικ" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -6483,22 +6484,22 @@ msgstr "" "εξαγωγής και βρείτε τον κώδικα που μετατρέπει την απόκρισή του σε αρχείο " "προς λήψη." -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Το κλικ σας" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Καταγεγραμμένο αίτημα" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Script εξαγωγής" -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Οδηγός παρατήρησης στον browser" @@ -6517,12 +6518,12 @@ msgstr "" "Μάθετε το REA μέσα από σύντομα αναλυτικά παραδείγματα: έναν υπολογισμό " "εγγενούς κώδικα, μια εξαγωγή CSV στο Electron και ένα αίτημα browser." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -6531,20 +6532,20 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Ακολουθήστε μια εξαγωγή{ph0}CSV στο Electron." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -6553,14 +6554,14 @@ msgstr "" "Ακολουθήστε ένα κλικ σε κουμπί από το API της σελίδας, μέσω του IPC του " "Electron, μέχρι τον κώδικα εγγραφής του αρχείου CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Σε αυτόν τον οδηγό" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -6568,7 +6569,7 @@ msgstr "{ph0}Το παράδειγμα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6576,7 +6577,7 @@ msgstr "{ph0}Ρωτήστε τον βοηθό σας{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -6584,7 +6585,7 @@ msgstr "{ph0}Ακολουθήστε τον κώδικα εξαγωγής{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -6592,20 +6593,20 @@ msgstr "{ph0}Δοκιμάστε το παράδειγμα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Πού οδηγεί το «Export notes»;" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6618,7 +6619,7 @@ msgstr "" "κύρια διεργασία και γράφεται ένα CSV. Η συμπεριφορά κατανέμεται σε αρκετά " "αρχεία." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Η εξαγωγή CSV μεταξύ των διεργασιών του Electron" @@ -6632,7 +6633,7 @@ msgstr "Η εξαγωγή CSV μεταξύ των διεργασιών του El #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6649,7 +6650,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6666,7 +6667,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6679,13 +6680,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -6696,14 +6697,14 @@ msgstr "" "και αναγνωρίζει το εκτεθειμένο API. Η διαδρομή συνάγεται από τον κώδικα· μια" " καταγραφή κατά την εκτέλεση μπορεί να ελέγξει τι εκτελείται." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Ρωτήστε για την εξαγωγή CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6721,14 +6722,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -6739,7 +6740,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6750,7 +6751,7 @@ msgstr "" "σημειώσεις σε αυτή την εφαρμογή. Πού δημιουργείται το CSV;{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6760,7 +6761,7 @@ msgstr "" "Παράδειγμα προτροπής. Συμπεριλάβετε την απόλυτη διαδρομή προς τον φάκελο της" " εφαρμογής ή το {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -6771,26 +6772,26 @@ msgstr "" "εισόδου, μονάδων και ορίων διεργασιών. Ο βοηθός σας χρησιμοποιεί αυτόν τον " "χάρτη για να εστιάσει τη διερεύνηση στη λειτουργία εξαγωγής." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Ακολουθήστε τον κώδικα εξαγωγής" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Η σελίδα καλεί ένα μικρό API" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" msgstr "{ph0} · πηγαίος κώδικας του παραδείγματος" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -6801,7 +6802,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6814,7 +6815,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6825,12 +6826,12 @@ msgstr "" "σημειώσεις και η κύρια διεργασία γράφει το {ph1} στον φάκελο λήψεων του " "χρήστη." -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "Αποτέλεσμα REA · απόσπασμα summary.ipc" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -6840,14 +6841,14 @@ msgstr "" "για το API, το κανάλι και τον χειριστή συνοδεύονται από θέσεις στον πηγαίο " "κώδικα." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Αναλύστε το παράδειγμα μόνοι σας" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6862,25 +6863,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Λήψη παραδείγματος ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Περιηγηθείτε στα έξι αρχεία πηγαίου κώδικα" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Στατική ανάλυση εφαρμογής" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6891,7 +6892,7 @@ msgstr "" "βρείτε ένα κανάλι IPC και έναν αντίστοιχο χειριστή στο {ph0}. Οι θέσεις στον" " πηγαίο κώδικα βρίσκονται στο {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -6903,13 +6904,13 @@ msgstr "" "συμβολοσειρά, ένα όνομα API ή ένα κανάλι IPC με τα εργαλεία ιχνηλάτησης " "λειτουργιών του REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Εξετάστε τον κώδικα εγγραφής CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6919,7 +6920,7 @@ msgstr "" "Ακολουθήστε το {ph0} μέχρι τον χειριστή του. Ποιες είσοδοι φτάνουν στον " "κώδικα εγγραφής CSV και τι συμβαίνει αν η εγγραφή του αρχείου αποτύχει;" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -6935,7 +6936,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6949,7 +6950,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6963,7 +6964,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6989,32 +6990,32 @@ msgstr "" "και χειριστή IPC με το REA. Περιλαμβάνει αρχεία παραδείγματος προς λήψη και " "ένα επαληθευμένο αποτέλεσμα ανάλυσης." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript και Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Αντιγραφή εντολής στατικής ανάλυσης εφαρμογής" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -7023,20 +7024,20 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}Αρχική{ph1} / {ph2}Οδηγοί{ph3} / Ανάλυση εγγενούς κώδικα" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "Ανακτήστε τον υπολογισμό{ph0}στερεοφωνικής θέσης ήχου του DX-Ball." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -7045,14 +7046,14 @@ msgstr "" "Εξετάστε τις αρχικές εντολές, αναγνωρίστε την είσοδο και τις σταθερές και " "ελέγξτε τον ανακτημένο κώδικα C." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Σε αυτόν τον οδηγό" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -7060,7 +7061,7 @@ msgstr "{ph0}Το παράδειγμα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -7068,7 +7069,7 @@ msgstr "{ph0}Ρωτήστε τον βοηθό σας{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -7076,7 +7077,7 @@ msgstr "{ph0}Διαβάστε τα αποτελέσματα του REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -7084,18 +7085,18 @@ msgstr "{ph0}Ανακτήστε και ελέγξτε{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Υπολογίστε τη στερεοφωνική θέση του ήχου αριστερά/δεξιά" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -7106,7 +7107,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7119,7 +7120,7 @@ msgstr "" "συναρτήσεις, που δίνουν στον βοηθό έναν τρόπο να διερευνήσει τις αριθμητικές" " πράξεις που λείπουν." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Βλέπετε πρώτη φορά αυτούς τους όρους;" @@ -7128,7 +7129,7 @@ msgstr "Βλέπετε πρώτη φορά αυτούς τους όρους;" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7140,7 +7141,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7153,7 +7154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7166,7 +7167,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7178,7 +7179,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7188,7 +7189,7 @@ msgstr "" "{ph0}Σταθερές:{ph1} σταθεροί αριθμοί αποθηκευμένοι στο πρόγραμμα, που " "διαβάζονται ως ακατέργαστα bytes και αποκωδικοποιούνται." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Τρία στοιχεία, ένας υπολογισμός" @@ -7199,7 +7200,7 @@ msgstr "Τρία στοιχεία, ένας υπολογισμός" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7217,7 +7218,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7236,7 +7237,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7247,7 +7248,7 @@ msgstr "" " στα οποία γίνεται αναφορά αποκωδικοποιούνται ως {ph5}, {ph6} και μια τιμή " "κλίμακας.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -7256,7 +7257,7 @@ msgstr "" "Το REA παρέχει τις εντολές, τη σχέση κλήσης και τα bytes. Ο βοηθός τα " "ερμηνεύει μαζί." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Ρωτήστε για τη συμπεριφορά" @@ -7265,7 +7266,7 @@ msgstr "Ρωτήστε για τη συμπεριφορά" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7276,12 +7277,12 @@ msgstr "" "εργαλείο ανάλυσης εγγενούς κώδικα{ph3}, δώστε το τοπικό εκτελέσιμο και μια " "ερώτηση:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Ποιο εργαλείο ανάλυσης να χρησιμοποιήσω;" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "" @@ -7290,7 +7291,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7304,7 +7305,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7316,7 +7317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7326,7 +7327,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -7340,14 +7341,14 @@ msgstr "Δείτε τη {ph0}ρύθμιση ανάλυσης εγγενούς κ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -7358,7 +7359,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7369,7 +7370,7 @@ msgstr "" "υπολογίζει τη στερεοφωνική θέση του ήχου. Εξηγήστε τον υπολογισμό και δείξτε" " τον κώδικα.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -7381,7 +7382,7 @@ msgstr "" "χρησιμοποιήστε το δικό σας αντίγραφο ή κάντε την ίδιας μορφής ερώτηση για " "ένα άλλο μικρό πρόγραμμα Windows που διαθέτετε." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Πώς βρίσκω την πλήρη διαδρομή ενός αρχείου;" @@ -7390,7 +7391,7 @@ msgstr "Πώς βρίσκω την πλήρη διαδρομή ενός αρχε #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7405,7 +7406,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7417,7 +7418,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7427,22 +7428,22 @@ msgstr "" "{ph0}Σε κάθε σύστημα:{ph1} σύρετε το αρχείο σε ένα παράθυρο τερματικού και " "θα εμφανιστεί η διαδρομή του." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Διαβάστε τα αποτελέσματα του REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Διαβάστε την είσοδο" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Απόσπασμα εντολών του REA · 0x406409" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -7452,18 +7453,18 @@ msgstr "" "κινητής υποδιαστολής. Αυτή είναι η είσοδος που λείπει από την πρώτη προβολή " "ψευδοκώδικα." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Ακολουθήστε την καλούσα συνάρτηση" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "Απόσπασμα καλούσας συνάρτησης του REA · 0x411f5b" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7475,19 +7476,19 @@ msgstr "" "πλακιδίου επί 30· προσθέτοντας {ph0} (20), προκύπτει η θέση του τούβλου στην" " οθόνη." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Διαβάστε τις σταθερές στις οποίες γίνεται αναφορά" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" "Αποτελέσματα bytes του REA · ερμηνεία ως αριθμοί διπλής ακρίβειας little-" "endian" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -7497,17 +7498,17 @@ msgstr "" "bytes παρέχει τις πραγματικές τιμές· η σειρά των εντολών δείχνει στον βοηθό " "πώς χρησιμοποιούνται." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Γράψτε και ελέγξτε την ανακτημένη συνάρτηση" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Ανακτημένος κώδικας C · απόσπασμα" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -7518,7 +7519,7 @@ msgstr "" "500 πριν από τη μετατροπή σε ακέραιο. Ο υπολογισμός τοποθετεί το κέντρο της " "οθόνης στο κέντρο του στερεοφωνικού πεδίου." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -7531,20 +7532,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Δείτε την πλήρη διερεύνηση και τη σύγκριση assembly με C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Δοκιμάστε το με το δικό σας δυαδικό αρχείο" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7558,7 +7559,7 @@ msgstr "" "διερεύνηση. Χρήσιμες αρχικές ερωτήσεις είναι «Πώς αναλύεται αυτό το αρχείο;»" " ή «Ποια συνάρτηση χειρίζεται αυτή την ενέργεια του μενού;»" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -7567,13 +7568,13 @@ msgstr "" "Αν γνωρίζετε ήδη ένα όνομα ή μια διεύθυνση συνάρτησης, μπορείτε να υποβάλετε" " ερώτημα από το τερματικό. Για μια ρυθμισμένη εγκατάσταση Ghidra:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Ανάλυση συνάρτησης" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7588,7 +7589,7 @@ msgstr "" "επαναχρησιμοποιούν το εισαγμένο δυαδικό αρχείο όσο αυτή η συνεδρία παραμένει" " ανοιχτή." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -7613,50 +7614,50 @@ msgstr "" "ακολουθήστε μια καλούσα συνάρτηση, διαβάστε σταθερές και ελέγξτε τον " "ανακατασκευασμένο κώδικα C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Ανάλυση εγγενούς κώδικα" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Αντιγραφή εντολής ανάλυσης συνάρτησης" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Ρύθμιση του REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -7664,7 +7665,7 @@ msgstr "{ph0}Ρύθμιση του REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -7672,7 +7673,7 @@ msgstr "{ph0}Παιχνίδι με τον δεινόσαυρο{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -7680,7 +7681,7 @@ msgstr "{ph0}Calculator{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -7688,30 +7689,30 @@ msgstr "{ph0}Δοκιμάστε το REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Εμβαθύνετε{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Αντίστροφη μηχανική, με τον βοηθό προγραμματισμού σας" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Μάθετε πώς{ph0}λειτουργεί το λογισμικό." -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Μελέτες →" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Αντιγράψτε το παρακάτω στον βοηθό προγραμματισμού σας:" @@ -7724,16 +7725,16 @@ msgstr "Αντιγράψτε το παρακάτω στον βοηθό προγ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -7745,7 +7746,7 @@ msgstr "Αντιγραφή" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7758,12 +7759,12 @@ msgstr "" "ρύθμισης για έγκριση και, στη συνέχεια, επαλήθευσε την " "εγκατάσταση.{ph4}{ph5}{ph6}" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Ή εκτελέστε την παρακάτω εντολή στο τερματικό σας:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" @@ -7772,7 +7773,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7784,7 +7785,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -7792,7 +7793,7 @@ msgstr "{ph0}01{ph1} Αποκωδικοποίηση διακλαδώσεων" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -7800,7 +7801,7 @@ msgstr "{ph0}02{ph1} Ιχνηλάτηση κλήσεων" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -7810,20 +7811,20 @@ msgstr "{ph0}03{ph1} Ανάκτηση του κανόνα" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 · Ποια διακλάδωση;" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7833,29 +7834,29 @@ msgstr "" "«{ph0}0x5b; 0x5c;{ph1} Δύο άλματα στο ίδιο σημείο. Σε ποιους τελεστές " "αντιστοιχούν;»" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Βρείτε τα αναγνωριστικά εντολών και προσδιορίστε τη διακλάδωση." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Διαίρεση ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Πολλαπλασιασμός ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Τι κάνουν οι κλήσεις;" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7865,25 +7866,25 @@ msgstr "" "«Το 100 είναι σαφές. Οι κλήσεις είναι απλώς διευθύνσεις. {ph0}Ποια εκτελεί " "τη διαίρεση; Ποια τιμή δέχεται;{ph1}»" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" "Εξετάστε τις βοηθητικές συναρτήσεις και ιχνηλατήστε τις αποθηκευμένες τιμές." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Διαίρεση" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · Ποιος είναι ο κανόνας;" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7893,20 +7894,20 @@ msgstr "" "«Αυτή η διαδρομή πολλαπλασιάζει με την άλλη είσοδο. Άρα, μετά το +, {ph0}το " "10% σημαίνει 10% του 200{ph1}.»" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" "Προσδιορίστε τους τελεστέους και ελέγξτε και τις δύο διαδρομές τελεστών." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Ενδεικτικός συλλογισμός αναλυτή" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7924,7 +7925,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -7938,7 +7939,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7948,14 +7949,14 @@ msgstr "" "{ph0}›{ph1}{ph2}Χρησιμοποίησε το REA για να εξετάσεις το Windows Calculator." " Γιατί το {ph3} δίνει 220;{ph4}{ph5}{ph6}" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Παράδειγμα απάντησης · βάσει των ευρημάτων" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7963,23 +7964,23 @@ msgid "" msgstr "" "Μετά το +, το κουμπί % υπολογίζει {ph0}ένα ποσοστό του πρώτου αριθμού.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "Το REA παρέχει" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "" "Τις εντολές του χειριστή, τον απομεταγλωττισμένο κώδικα και τις κλήσεις." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Ο βοηθός σας εξηγεί" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" @@ -7988,7 +7989,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7999,47 +8000,47 @@ msgstr "" "σκέψεις και η απάντηση παρουσιάζουν τα ευρήματα. {ph0}Συνεχίστε με το " "παράδειγμα του Calculator ↓{ph1}" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Παράδειγμα 01 · Το παιχνίδι με τον δεινόσαυρο του Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Γιατί επιταχύνει ο δεινόσαυρος;" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Έναρξη" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Άλμα ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Επανεκκίνηση" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Ταχύτητα" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Χρήση του ανακτημένου κανόνα επιτάχυνσης" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Αρχικός κανόνας: εκκίνηση από 6 και σταδιακή αύξηση προς το 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -8052,7 +8053,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8066,7 +8067,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -8075,18 +8076,18 @@ msgstr "" " οποία προέρχεται από το Chromium{ph1}." #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" msgstr "REA · φόρτωσε το {ph0} · επιλεγμένες γραμμές" -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Ανοίξτε το εργαστήριο ταχύτητας →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Τι κάνει κάθε μέρος" @@ -8097,7 +8098,7 @@ msgstr "Τι κάνει κάθε μέρος" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8114,7 +8115,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8131,7 +8132,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8142,13 +8143,13 @@ msgstr "" "παίζετε{ph3}{ph4}Δοκιμάστε την αρχική επιτάχυνση και έπειτα επιλέξτε τον " "δικό σας ρυθμό.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Δείτε το script, τους ελέγχους και τον τρόπο εκτέλεσης της ανάλυσης" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8159,12 +8160,12 @@ msgstr "" "σύνδεσης αποσφαλμάτωσης και επέστρεψε το φορτωμένο {ph0}, μαζί με τον πηγαίο" " κώδικα και το ψηφιακό αποτύπωμά του." -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Επιλεγμένες ρυθμίσεις από το script που εξετάστηκε" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -8178,7 +8179,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8195,7 +8196,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8213,7 +8214,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8222,34 +8223,34 @@ msgstr "" "{ph0}Κώδικας ταχύτητας που εξετάστηκε{ph1} · {ph2}Chromium Authors · Άδεια " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Παράδειγμα 02 · Windows Calculator" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Ανακατασκευάστε το κουμπί % του Calculator." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Επαναφορά" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "Το 10% του 200 είναι 20. Έπειτα, 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Διαδραστική απεικόνιση του κανόνα ποσοστού που εξετάστηκε." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -8261,7 +8262,7 @@ msgstr "Σε αυτό το παράδειγμα, {ph0} και {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8274,12 +8275,12 @@ msgstr "" "κατασκεύασε μια μικρή αριθμομηχανή που χρησιμοποιεί και τους " "δύο.{ph3}{ph4}{ph5}" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Ευανάγνωστη σύνοψη του χειριστή του %" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Με +" @@ -8287,13 +8288,13 @@ msgstr "Με +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Με ×" @@ -8301,13 +8302,13 @@ msgstr "Με ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Από την εγκατεστημένη εφαρμογή σε ένα λειτουργικό κουμπί %" @@ -8320,7 +8321,7 @@ msgstr "Από την εγκατεστημένη εφαρμογή σε ένα λ #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8339,7 +8340,7 @@ msgstr "" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8357,7 +8358,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8369,22 +8370,22 @@ msgstr "" "κανόνες{ph3}{ph4}Διασταυρώνει τη διακλάδωση με τον πηγαίο κώδικα της " "Microsoft και έπειτα δοκιμάζει το + και το × παραπάνω.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Δείτε τον πραγματικό κώδικα και πώς ελέγχθηκε η απάντηση" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA · επιλεγμένες εντολές του αρχικού κώδικα" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Αναγνωριστικά τελεστών · Πηγαίος κώδικας της Microsoft" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -8405,7 +8406,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8415,17 +8416,17 @@ msgstr "" "{ph0}Υλοποίηση ποσοστού{ph1} · {ph2}Περιπτώσεις δοκιμής της Microsoft{ph3} ·" " {ph4}Οδηγός ρύθμισης ανάλυσης κώδικα μηχανής{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Η πρώτη σας διερεύνηση" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Δοκιμάστε το REA σε μια μικρή εφαρμογή." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -8434,7 +8435,7 @@ msgstr "" "Κατεβάστε το παράδειγμα Notes, ιχνηλατήστε την εξαγωγή CSV και ελέγξτε μία " "τροποποιημένη είσοδο." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Δοκιμάστε το καθοδηγούμενο παράδειγμα" @@ -8447,7 +8448,7 @@ msgstr "Δοκιμάστε το καθοδηγούμενο παράδειγμα" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -8460,7 +8461,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Παράδειγμα prompt · #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8470,7 +8471,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Χρησιμοποίησε το REA για να εξετάσεις το {ph3}. Κλωνοποίησε " "αυτόν τον ιστότοπο για εμένα.{ph4}{ph5}{ph6}" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Ναι, αυτόν εδώ." @@ -8483,7 +8484,7 @@ msgstr "Ναι, αυτόν εδώ." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8498,7 +8499,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8512,18 +8513,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Δυαδικά αρχεία με κώδικα μηχανής" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -8532,17 +8533,17 @@ msgstr "" "Εξετάστε συναρτήσεις, συμβολοσειρές, αναφορές και σχέσεις κλήσεων σε " "εκτελέσιμα αρχεία και βιβλιοθήκες." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Οδηγός ανάλυσης κώδικα μηχανής" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript και Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -8551,17 +8552,17 @@ msgstr "" "Χαρτογραφήστε modules, διαδρομές, IPC και εξαρτήσεις κώδικα μηχανής από έναν" " φάκελο εφαρμογής ή ένα αρχείο ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Ροές εργασίας εφαρμογών" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Δραστηριότητα προγράμματος περιήγησης και χρόνου εκτέλεσης" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -8570,12 +8571,12 @@ msgstr "" "Καταγράψτε επιλεγμένη δραστηριότητα προγράμματος περιήγησης ή διεργασίας και" " έπειτα συγκρίνετε τα αποτελέσματα μεταξύ εκτελέσεων." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Οδηγός παρατήρησης προγράμματος περιήγησης" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Έχετε απορίες;" @@ -8595,27 +8596,27 @@ msgstr "" "προγραμμάτων περιήγησης με τον βοηθό προγραμματισμού σας. Ακολουθήστε σαφείς" " οδηγούς και δοκιμάστε διαδραστικά παραδείγματα με το REA." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Αντιγραφή του prompt εγκατάστασης του REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Αντιγραφή της εντολής ρύθμισης" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Παρακολούθηση της μη αυτόματης ανάλυσης του Calculator" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Αντιγραφή της ερώτησης για το ποσοστό στο Calculator" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -8624,37 +8625,37 @@ msgstr "" "Μίνι παιχνίδι με δεινόσαυρο. Χρησιμοποιήστε το κουμπί Άλμα ή πατήστε Space " "όσο το παιχνίδι έχει την εστίαση." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Αντιγραφή του prompt ανάλυσης του δεινοσαύρου" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Επιλογή υπολογισμού" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Αντιγραφή του prompt ανάλυσης του Calculator" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Αντιγραφή του prompt για το έργο ιστοτόπου" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Αντιγραφή του prompt ανακατασκευής παιχνιδιού" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -8663,26 +8664,26 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Αρχική{ph1} / {ph2}Μελέτες{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Μελέτη · Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" "Πώς δημιουργεί μια εφαρμογή ελέγχου ταυτότητας{ph0}έναν κωδικό σύνδεσης;" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -8692,17 +8693,17 @@ msgstr "" "για να βρείτε τον υπολογισμό σε ένα Android APK και έπειτα ανακατασκευάστε " "τον με ένα ρολόι που μπορείτε να ελέγχετε." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android · APK επίσημης έκδοσης · 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Δείτε το Aegis στο GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Από ένα APK σε έναν κωδικό που μπορείτε να αναπαράγετε" @@ -8713,7 +8714,7 @@ msgstr "Από ένα APK σε έναν κωδικό που μπορείτε ν #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8731,7 +8732,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8749,7 +8750,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8761,14 +8762,14 @@ msgstr "" " τον κωδικό.{ph3}{ph4}Μια νέα επίδειξη στον περιηγητή αναπαράγει τον κανόνα " "και τον ελέγχει με δημόσια παραδείγματα αναφοράς.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Σε αυτή τη μελέτη" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -8776,7 +8777,7 @@ msgstr "{ph0}Ζητήστε το από τον βοηθό σας{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -8784,7 +8785,7 @@ msgstr "{ph0}Δοκιμάστε τη γεννήτρια κωδικών{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -8792,7 +8793,7 @@ msgstr "{ph0}Βρείτε τον κώδικα με το REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -8800,7 +8801,7 @@ msgstr "{ph0}Διαβάστε τον υπολογισμό{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -8808,20 +8809,20 @@ msgstr "{ph0}Ελέγξτε την ανακατασκευή{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Ζητήστε το από τον βοηθό σας" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8839,14 +8840,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -8858,7 +8859,7 @@ msgstr "Αντιγραφή" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8873,7 +8874,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8883,14 +8884,14 @@ msgstr "" "Παράδειγμα προτροπής για το APK που κατεβάσατε, με ρυθμισμένη την ανάλυση " "Android του REA. {ph0}Αποκτήστε το APK και ρυθμίστε την ανάλυση ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Δοκιμάστε τη γεννήτρια κωδικών" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8903,33 +8904,33 @@ msgstr "" "δημιουργήσει έναν κωδικό. Το ίδιο κλειδί και διάστημα παράγουν τον ίδιο " "κωδικό." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Μετακινήστε το ρολόι γύρω από τα 60 δευτερόλεπτα" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Χρόνος" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "δευτερόλεπτα" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Το ρυθμιζόμενο ρολόι του παραδείγματός μας" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "Διάστημα 30 δευτερολέπτων" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Διάστημα" @@ -8938,35 +8939,35 @@ msgstr "Διάστημα" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Παραγόμενος κωδικός" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Κλειδί λογαριασμού + διάστημα → έξι ψηφία" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Χρόνος παραδείγματος, σε δευτερόλεπτα" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 δευτερόλεπτα" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 δευτερόλεπτα" @@ -8975,7 +8976,7 @@ msgstr "60 δευτερόλεπτα" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8988,7 +8989,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8999,7 +9000,7 @@ msgstr "" "του RFC 6238{ph1}. Η επίδειξη υλοποιεί τον υπολογισμό που ανακτήθηκε από το " "APK." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -9008,29 +9009,29 @@ msgstr "" "Το διάγραμμα δείχνει το αποτέλεσμα στα 59 δευτερόλεπτα. Ενεργοποιήστε τη " "JavaScript για να αλλάξετε το ρολόι." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Βρείτε τον κώδικα με το REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Περιορίστε την αναζήτηση στο APK σε τρεις κλάσεις" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Βοηθός → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → βοηθός · επιλεγμένα αποτελέσματα" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9041,19 +9042,19 @@ msgstr "" "προόδου και τους εισαγόμενους λογαριασμούς. Το TOTP σημαίνει κωδικό μίας " "χρήσης βάσει χρόνου." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Συνδέστε τη γεννήτρια με την εμφάνιση στην εφαρμογή" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → βοηθός · μέθοδοι και καλούντες" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9065,7 +9066,7 @@ msgstr "" "εμφάνιση καλεί τη {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9075,14 +9076,14 @@ msgstr "" "Τα αιτήματα δείχνουν μια συντομευμένη διαδρομή εισόδου. Τα ονόματα κλάσεων " "στα αποτελέσματα παραλείπουν το κοινό πρόθεμα {ph0}." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Διαβάστε τον υπολογισμό" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9097,7 +9098,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -9105,7 +9106,7 @@ msgstr "{ph0}01{ph1} Χρονικό διάστημα" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -9113,25 +9114,25 @@ msgstr "{ph0}02{ph1} Κλειδί + διάστημα" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" msgstr "{ph0}03{ph1} Έξι ψηφία" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA · επιλεγμένος απομεταγλωττισμένος κώδικας Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Ευανάγνωστη σύνοψη · ερμηνεία του βοηθού" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9143,7 +9144,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9157,7 +9158,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9172,7 +9173,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9183,7 +9184,7 @@ msgstr "" " την εμφάνιση. Το δεξί πλαίσιο είναι μια επεξηγηματική σύνοψη. {ph0}Ο " "κώδικας του Aegis διατίθεται με άδεια GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Μέσα στη γεννήτρια" @@ -9192,7 +9193,7 @@ msgstr "Μέσα στη γεννήτρια" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9203,12 +9204,12 @@ msgstr "" " από τη {ph2} και επιστρέφει αυτό το σώμα· ο αρχικός πηγαίος κώδικας " "ονομάζει τη βοηθητική συνάρτηση {ph3}." -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA · generateOTP, πλήρες σώμα" -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -9225,20 +9226,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Ελέγξτε την ανακατασκευή" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9251,29 +9252,29 @@ msgstr "" "ανακατασκευή σε {ph0}133 περιπτώσεις δοκιμής{ph1}, που περιλάμβαναν όρια " "χρονικών διαστημάτων και κωδικούς που αρχίζουν με μηδέν." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Χρόνος παραδείγματος" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Εξαψήφιος κωδικός" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 δευτερόλεπτα" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 δευτερόλεπτα" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9283,17 +9284,17 @@ msgstr "" "Η γεννήτρια συμφωνεί επίσης με τις έξι δημοσιευμένες περιπτώσεις αναφοράς " "SHA-1 του {ph0}RFC 6238{ph1}. Ελέγξτε την υλοποίηση στον περιηγητή με αυτές:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Εκτέλεση ελέγχων αναφοράς" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Διαβάστε τον υπολογισμό της επίδειξης" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -9302,7 +9303,7 @@ msgstr "" "Οι περιπτώσεις αναφοράς χρησιμοποιούν οκτώ ψηφία. Ο έλεγχος επαληθεύει " "επίσης τα εξαψήφια αποτελέσματά τους." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -9311,14 +9312,14 @@ msgstr "" "Η επαλήθευση εκτελεί τις εξαγόμενες μεθόδους Java και τη νέα επίδειξη. Το " "Android APK εξετάστηκε στατικά." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Εξετάστε το APK μόνοι σας" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9331,7 +9332,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9341,28 +9342,28 @@ msgstr "" "Η ανάλυση Android απαιτεί πλήρες JDK 17 ή νεότερο. Επιλέξτε το με το {ph0} ή" " το {ph1}. Αυτή η μελέτη χρησιμοποίησε JDK 21." -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Λήψη APK του Aegis" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Λήψη παρόχου ανάλυσης Android" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9375,7 +9376,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9385,7 +9386,7 @@ msgstr "" "Μια επόμενη ερώτηση: {ph0}τι συμβαίνει όταν ένας λογαριασμός χρησιμοποιεί " "οκτώ ψηφία ή διαφορετικό χρονικό διάστημα;{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Πηγές" @@ -9401,7 +9402,7 @@ msgstr "Πηγές" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9415,7 +9416,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -9423,7 +9424,7 @@ msgstr "" "{ph0}Περιπτώσεις αναφοράς RFC 6238{ph1} · {ph2}Δεδομένα δοκιμής της " "επίδειξης{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -9449,37 +9450,37 @@ msgstr "" "εξαψήφιου κωδικού σύνδεσης και δοκιμάστε μια ανακατασκευή με ρυθμιζόμενο " "ρολόι." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Μελέτη του APK Aegis" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής για το Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Ακολουθήστε τον υπολογισμό του κωδικού σύνδεσης" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Αντιγραφή εντολής εξέτασης APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -9488,26 +9489,26 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Μελέτη · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Βρείτε τη σημαία σε{ph0}ένα δυαδικό αρχείο CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9518,17 +9519,17 @@ msgstr "" "να μετατρέψετε τους κανόνες του σε εξισώσεις και να βρείτε μια είσοδο που " "κάνει το αρχικό πρόγραμμα να τυπώσει {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "masked squares flag checker · Εύκολο · Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Δείτε την αρχική πρόκληση" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Από ένα δυαδικό αρχείο σε μια ελεγμένη απάντηση" @@ -9539,7 +9540,7 @@ msgstr "Από ένα δυαδικό αρχείο σε μια ελεγμένη #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9557,7 +9558,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9575,7 +9576,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9587,7 +9588,7 @@ msgstr "" "Correct!{ph3}{ph4}Ένα script Python λύνει τις εξισώσεις. Το REA καταγράφει " "την αποδοχή του αποτελέσματος από το αρχικό πρόγραμμα.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -9595,14 +9596,14 @@ msgstr "" "Η πρόκληση είναι του joseph και δημοσιεύτηκε στο επίσημο αποθετήριο του " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Σε αυτή τη μελέτη" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -9610,7 +9611,7 @@ msgstr "{ph0}Βρείτε τον κώδικα ελέγχου{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -9618,7 +9619,7 @@ msgstr "{ph0}Διαβάστε μία μάσκα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -9626,7 +9627,7 @@ msgstr "{ph0}Από εντολές assembly σε ευανάγνωστο κώδι #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -9634,7 +9635,7 @@ msgstr "{ph0}Λύστε τις εξισώσεις{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -9642,20 +9643,20 @@ msgstr "{ph0}Ελέγξτε την απάντηση{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Δοκιμάστε το μόνοι σας{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Βρείτε τον κώδικα ελέγχου" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9673,17 +9674,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -9694,7 +9695,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9706,7 +9707,7 @@ msgstr "" "και να βρείτε τη σημαία. Εξηγήστε πώς λειτουργούν οι έλεγχοι και έπειτα " "επαληθεύστε την απάντηση με το αρχικό πρόγραμμα.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -9715,23 +9716,23 @@ msgstr "" "Παράδειγμα προτροπής, με την πρόκληση που κατεβάσατε διαθέσιμη τοπικά και " "συνδεδεμένο πάροχο ανάλυσης κώδικα μηχανής." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Ακολουθήστε την προτροπή εισόδου μέχρι τη συνάρτησή της" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Βοηθός → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → βοηθός · επιλεγμένα αποτελέσματα" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -9740,19 +9741,19 @@ msgstr "" "Η αναφορά δίνει στον βοηθό ένα σημείο για διερεύνηση, παρότι τα αρχικά " "ονόματα συναρτήσεων του εκτελέσιμου έχουν αφαιρεθεί." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Διαβάστε το πρόγραμμα ελέγχου και τις δύο βοηθητικές συναρτήσεις του" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → βοηθός · επιλεγμένες εντολές" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9765,7 +9766,7 @@ msgstr "" "το αποτέλεσμα με έναν αποθηκευμένο αριθμό. Τα βήματα των {ph0} byte σε {ph1}" " byte δίνουν 26 μάσκες." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -9775,12 +9776,12 @@ msgstr "" "διαδρομή του στόχου συντομεύεται για την εμφάνιση· οι διευθύνσεις " "αναφέρονται στην εικόνα που εισήγαγε το REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Ένας έλεγχος αποκαλύπτει έναν χαρακτήρα" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -9794,23 +9795,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Διαβάστε τη μάσκα και την τιμή-στόχο της από το δυαδικό αρχείο" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Βοηθός → REA · read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → βοηθός · έβδομες εγγραφές" @@ -9819,7 +9820,7 @@ msgstr "REA → βοηθός · έβδομες εγγραφές" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9831,12 +9832,12 @@ msgstr "" "το {ph1} σημαίνει −21. Η τιμή-στόχος είναι ακέραιος little-endian. Μαζί, " "αυτά τα byte λένε στον βοηθό ότι {ph2}, άρα ο χαρακτήρας είναι {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Από τις εντολές σε έναν ευανάγνωστο έλεγχο" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -9847,7 +9848,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -9855,7 +9856,7 @@ msgstr "{ph0}01{ph1} Έναρξη" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -9863,7 +9864,7 @@ msgstr "{ph0}02{ph1} Επιλογή" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -9871,7 +9872,7 @@ msgstr "{ph0}03{ph1} Πρόσθεση" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -9879,18 +9880,18 @@ msgstr "{ph0}04{ph1} Μετάβαση" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Σύγκριση" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA · επιλεγμένες αρχικές εντολές" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Ευανάγνωστος κώδικας C · σύνοψη ενός ελέγχου" @@ -9898,7 +9899,7 @@ msgstr "Ευανάγνωστος κώδικας C · σύνοψη ενός ελ #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -9907,7 +9908,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9919,7 +9920,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9931,7 +9932,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9945,7 +9946,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9955,7 +9956,7 @@ msgstr "" "{ph0}05 · Συγκρίνετε με την αποθηκευμένη τιμή-στόχο.{ph1} Ο καλών λαμβάνει " "το άθροισμα στον {ph2}. Μια διαφορά οδηγεί σε άλμα στο {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -9965,12 +9966,12 @@ msgstr "" "καλούντα της. Ο κώδικας C είναι μια επεξηγηματική σύνοψη με περιγραφικά " "ονόματα και έναν ενιαίο βρόχο 36 κελιών." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Λύστε τις 26 εξισώσεις" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -9982,13 +9983,13 @@ msgstr "" "αλληλεπικαλυπτόμενες επιλογές δίνουν εξισώσεις που ένα μικρό script Python " "μπορεί να λύσει μαζί." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python · απόσπασμα του λύτη" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10002,19 +10003,19 @@ msgstr "" "υποθέτει μια σημαία {ph0} με γράμματα, ψηφία, κάτω παύλες και άγκιστρα. Το " "πλήρες αρχείο λήψης περιλαμβάνει και τις 26 μάσκες και τιμές-στόχους." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Λήψη του πλήρους λύτη" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Ελέγξτε την απάντηση με το αρχικό πρόγραμμα" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10027,47 +10028,47 @@ msgstr "" "{ph0} σε {ph1} κάνει το πρώτο άθροισμα 1440 αντί για 1441 και το πρόγραμμα " "το απορρίπτει." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Είσοδος" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Παρατηρημένη έξοδος" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Κωδικός εξόδου" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Σημαία του λύτη" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Ένας χαρακτήρας άλλαξε" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Εμφάνιση της ανακτημένης σημαίας και της καταγεγραμμένης εξόδου" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA · έξοδος αρχικού προγράμματος" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Αντιγραφή σημαίας" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -10077,12 +10078,12 @@ msgstr "" " της πρόκλησης των διοργανωτών, τα οποία ελέγχθηκαν μετά την επίλυση του " "δυαδικού αρχείου." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Πηγή, ταυτότητα στόχου και λεπτομέρειες ανάλυσης" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -10093,12 +10094,12 @@ msgstr "" "4.1.0 και Ghidra 12.1.4 σε Linux x64. Το δυαδικό αρχείο είναι ELF x86-64 " "χωρίς σύμβολα, 15,248 byte." -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Αρχικό εκτελέσιμο · SHA-256" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -10121,7 +10122,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10132,12 +10133,12 @@ msgstr "" "{ph2}Μεταδεδομένα και σημαία της πρόκλησης{ph3} · {ph4}Σημειώσεις στοιχείων " "REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Δοκιμάστε το μόνοι σας" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -10147,23 +10148,23 @@ msgstr "" "την παραπάνω προτροπή για να διερευνήσετε με τον βοηθό σας ή εκτελέστε το " "παρεχόμενο script." -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Λήψη της αρχικής πρόκλησης" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Λήψη λύτη" -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Τερματικό · επίλυση και εκτέλεση" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10175,7 +10176,7 @@ msgstr "" "προγράμματος. Η επίλυση απαιτεί Python και {ph0}. Η εκτέλεση του αρχικού " "εκτελέσιμου απαιτεί Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Ρυθμίστε το REA με τον βοηθό προγραμματισμού σας" @@ -10196,27 +10197,27 @@ msgstr "" "DownUnderCTF. Βρείτε τις συναρτήσεις ελέγχου, εξαγάγετε τις μάσκες και " "συγκρίνετε μια ανακτημένη σημαία με το αρχικό πρόγραμμα." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Μελέτη προγράμματος ελέγχου σημαίας CTF" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "Εξίσωση μάσκας CTF· κυλήστε οριζόντια σε μικρότερες οθόνες" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -10227,42 +10228,42 @@ msgstr "" "παραλείπει 14. Μόνο αυτό το κελί συνεισφέρει στο άθροισμα. Ο απαιτούμενος " "κωδικός χαρακτήρα του είναι 55, που σημαίνει ότι ο χαρακτήρας είναι 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Ακολουθήστε τον έλεγχο CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Αντιγραφή εντολών assembly CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Αντιγραφή ευανάγνωστου ελέγχου CTF" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Αντιγραφή αποσπάσματος λύτη CTF" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Αντιγραφή ανακτημένης σημαίας" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Αντιγραφή εντολών λύτη CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -10271,25 +10272,25 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Μελέτη · DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, 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:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -10298,14 +10299,14 @@ msgstr "" "Στόχος είναι μια συντηρήσιμη έκδοση σε C του παιχνιδιού για Windows του " "1996. Με το REA, ο βοηθός εξετάζει το πρωτότυπο, μία συνάρτηση κάθε φορά." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 · C · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10317,14 +10318,14 @@ msgstr "" "εντολές, τους καλούντες και τις αναγνώσεις δεδομένων· το έργο ανακατασκευής " "υλοποιεί και δοκιμάζει το αποτέλεσμα. {ph0}Ανοίξτε το σχήμα{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Σε αυτή τη μελέτη" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -10332,7 +10333,7 @@ msgstr "{ph0}Το έργο{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -10340,7 +10341,7 @@ msgstr "{ph0}Στερεοφωνική θέση του ήχου{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -10348,23 +10349,23 @@ msgstr "{ph0}Έλεγχος του αποτελέσματος{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "συντηρούμενες συναρτήσεις C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "συγκρίσεις με τον αρχικό κώδικα" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "συναρτήσεις με ίδια μεταγλωττισμένα byte" @@ -10375,7 +10376,7 @@ msgstr "συναρτήσεις με ίδια μεταγλωττισμένα byte #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10385,12 +10386,12 @@ msgstr "" "Ορόσημο του έργου: 7 Οκτωβρίου 2026. {ph0}Καταγραφή προόδου{ph1} · " "{ph2}Κάλυψη δοκιμών{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Το έργο μέχρι σήμερα" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -10406,12 +10407,12 @@ msgstr "" "συνεχίζεται με τη φυσική της μπάλας και της ρακέτας, τον χειρισμό ενισχύσεων" " και την ενσωμάτωση στα Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Εύρεση του υπολογισμού της στερεοφωνικής θέσης του ήχου" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -10430,17 +10431,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -10451,7 +10452,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10462,7 +10463,7 @@ msgstr "" "υπολογίζει τη στερεοφωνική θέση του ήχου. Εξηγήστε τον υπολογισμό και δείξτε" " τον κώδικα.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -10473,7 +10474,7 @@ msgstr "" "διαθέσιμο τοπικά. Η παρακάτω διερεύνηση δείχνει τα ερωτήματα στο REA και τα " "στοιχεία πίσω από την απάντηση." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -10488,7 +10489,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10502,17 +10503,17 @@ msgstr "" " στοίβα και πράξεις κινητής υποδιαστολής. Αυτή η διαφορά έδωσε στον βοηθό " "έναν συγκεκριμένο λόγο να συνεχίσει τη διερεύνηση." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Η πρώτη προβολή του απομεταγλωττιστή" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Αποτέλεσμα REA · απόσπασμα ψευδοκώδικα" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -10521,31 +10522,31 @@ msgstr "" "Η έξοδος δείχνει μια κλήση μετατροπής. Η ανάγνωση των παρακάτω εντολών " "αποκαλύπτει την είσοδο και τον υπολογισμό που τροφοδοτεί αυτή την κλήση." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Τρεις ερωτήσεις που απαντήθηκαν μέσω του REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Ανακτήστε την είσοδο που λείπει" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Βοηθός → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → βοηθός · απόσπασμα εντολών" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10556,19 +10557,19 @@ msgstr "" "καλούντες. Εδώ, το {ph0} αποκαλύπτει την ακέραια είσοδο που λείπει από την " "προβολή του απομεταγλωττιστή." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Ακολουθήστε τον καλούντα για να κατανοήσετε την είσοδο" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → βοηθός · απόσπασμα καλούντος" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10579,25 +10580,25 @@ msgstr "" "εντολές του πολλαπλασιάζουν το {ph0} επί 30· η πρόσθεση του 20 δίνει τη " "συντεταγμένη οθόνης του τούβλου, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Διαβάστε τις τιμές πίσω από τις διευθύνσεις μνήμης" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "" "Αποτελέσματα byte του REA · αποκωδικοποιημένα ως αριθμοί διπλής ακρίβειας" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -10607,12 +10608,12 @@ msgstr "" "αρχική κλίμακα στερεοφωνικής θέσης. Ο βοηθός έχει πλέον τις τιμές που " "χρειάζονται για την έκφραση C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Από τα ευρήματα του REA σε C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -10623,7 +10624,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -10631,7 +10632,7 @@ msgstr "{ph0}01{ph1} Είσοδος" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -10639,7 +10640,7 @@ msgstr "{ph0}02{ph1} Πολλαπλασιασμός" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -10647,7 +10648,7 @@ msgstr "{ph0}03{ph1} Αφαίρεση" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -10655,18 +10656,18 @@ msgstr "{ph0}04{ph1} Κλιμάκωση" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Αρχικός κώδικας x86 · απόσπασμα" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Ανακατασκευασμένος κώδικας C" @@ -10676,7 +10677,7 @@ msgstr "Ανακατασκευασμένος κώδικας C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10696,7 +10697,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10713,7 +10714,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10731,7 +10732,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10749,7 +10750,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10762,7 +10763,7 @@ msgstr "" "C μετατρέπει το αποτέλεσμα σε {ph4}· οι συγκρίσεις με τον αρχικό κώδικα x86 " "ελέγχουν την επιστρεφόμενη τιμή." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -10773,23 +10774,23 @@ msgstr "" "επιστροφής. Η πλήρης καταγραφή παρακάτω περιλαμβάνει επίσης τις ενδιάμεσες " "αποθηκεύσεις, την προετοιμασία και τον καθαρισμό της συνάρτησης." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Πλήρης κώδικας assembly και υποστηρικτικά στοιχεία" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "Αποτέλεσμα REA · 0x406400–0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Τι παρέχει ο καλών" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10800,56 +10801,56 @@ msgstr "" "πλακιδίου της επί 30, προσθέτει 20 και έπειτα την ωθεί στη στοίβα πριν από " "την κλήση:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Τι τεκμηριώνουν οι αναγνώσεις δεδομένων" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "" "Αναγνώσεις byte του REA, αποκωδικοποιημένες ως αριθμοί διπλής ακρίβειας " "little-endian" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Διεύθυνση" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Τιμή" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Χρήση" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Πρώτος πολλαπλασιασμός" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Αφαίρεση" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} αρχικά" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Αποθηκευμένη κλίμακα στερεοφωνικής θέσης" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -10866,7 +10867,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10876,12 +10877,12 @@ msgstr "" "{ph0}Συντηρούμενος πηγαίος κώδικας{ph1} · {ph2}Σημειώσεις διερεύνησης και " "αναφορές στοιχείων{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Έλεγχος της ανακτημένης συνάρτησης" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -10891,12 +10892,12 @@ msgstr "" "συμφωνούν με το πρωτότυπο και τα μεταγλωττισμένα byte της συμφωνούν με το " "εκτελέσιμο." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205 περιπτώσεις συμπεριφοράς" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -10908,12 +10909,12 @@ msgstr "" "θέση από 0 έως 640 σε πέντε κλίμακες στερεοφωνικής θέσης: 0, 0.5, 1, 20 και " "−1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 ίδια byte" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -10925,7 +10926,7 @@ msgstr "" "εφαρμογή των ελεγμένων μετεγκαταστάσεων και τον έλεγχο των αναφερόμενων " "σταθερών." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -10940,18 +10941,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Συνεχίστε τη διερεύνηση" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -10963,7 +10964,7 @@ msgstr "" "κατάστασης και των εξαρτήσεών τους και έπειτα σύγκριση της υλοποίησης με το " "πρωτότυπο." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -10973,7 +10974,7 @@ msgstr "" "ακολουθήστε τις οδηγίες εγκατάστασης του έργου DX-Ball και παρέχετε τον " "αντίστοιχο αρχικό στόχο του. Έπειτα εκτελέστε:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "Στο τοπικό αντίγραφο του αποθετηρίου DX-Ball" @@ -10982,7 +10983,7 @@ msgstr "Στο τοπικό αντίγραφο του αποθετηρίου DX- #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10996,7 +10997,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -11012,7 +11013,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -11022,7 +11023,7 @@ msgstr "" "{ph0}Σωματίδια και παραγωγή μπόνους{ph1}{ph2}Μια μεγαλύτερη διερεύνηση της " "κατάστασης, των ουρών και των εγγραφών pixel.{ph3}" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Ξεκινήστε με τον δικό σας στόχο" @@ -11042,7 +11043,7 @@ msgstr "" "μέσω του REA μέχρι τον συντηρούμενο κώδικα C, τις δοκιμές με τον αρχικό " "κώδικα x86 και τα ίδια μεταγλωττισμένα byte συνάρτησης." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -11050,7 +11051,7 @@ msgstr "" "Διερεύνηση της στερεοφωνικής θέσης του ήχου στο DX-Ball· κυλήστε οριζόντια " "σε μικρότερες οθόνες" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -11066,70 +11067,70 @@ msgstr "" "έναντι του αρχικού κώδικα x86 σε 3,205 περιπτώσεις και με αναπαραγωγή " "μεταγλώττισης VC4.0 που ταιριάζει σε 63 byte." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Μελέτη ανακατασκευής του DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Ακολουθήστε τον υπολογισμό της στερεοφωνικής θέσης του ήχου" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Αντιγραφή αποσπάσματος αρχικού κώδικα assembly" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Αντιγραφή συνάρτησης στερεοφωνικής θέσης ήχου" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Αντιγραφή πλήρους κώδικα assembly για τη στερεοφωνική θέση του ήχου" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Αντιγραφή εντολής ανάλυσης DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Αρχική{ph1} / Μελέτες" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Μελέτες REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -11138,17 +11139,17 @@ msgstr "" "Android, παιχνίδια, Electron και μια πρόκληση CTF, με κώδικα, σχήματα και " "ελεγμένα αποτελέσματα." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android · Ανάλυση APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Πώς μια εφαρμογή ελέγχου ταυτότητας δημιουργεί έναν κωδικό σύνδεσης" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -11160,42 +11161,42 @@ msgstr "" "το ρολόι της επίδειξης για να δείτε γιατί ο κωδικός αλλάζει κάθε 30 " "δευτερόλεπτα." -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Κώδικας δημιουργίας" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Ανακτημένος κανόνας" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Ρυθμιζόμενο ρολόι" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Διαβάστε τη μελέτη Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF · Ανάλυση κώδικα μηχανής" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Λύστε ένα πρόγραμμα ελέγχου σημαίας CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -11206,42 +11207,42 @@ msgstr "" "ελέγχου της, μετατρέψτε μάσκες και αθροίσματα σε εξισώσεις και έπειτα " "επαληθεύστε τη σημαία που βρήκατε με το αρχικό πρόγραμμα." -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Δυαδικό αρχείο" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Κώδικας ελέγχου" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Εξισώσεις" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Correct!" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Διαβάστε τη μελέτη CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Κώδικας μηχανής · Ανακατασκευή" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Ο υπολογισμός της στερεοφωνικής θέσης του ήχου στο DX-Ball" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -11253,42 +11254,42 @@ msgstr "" "σταθερές του REA οδηγούν σε μια μικρή συνάρτηση C, ελεγμένη έναντι της " "αρχικής συμπεριφοράς και των 63 μεταγλωττισμένων byte." -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Εκτελέσιμο" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Ευρήματα REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Ανακτημένος κώδικας C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Επικύρωση" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Διαβάστε τη μελέτη DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron · Ιχνηλάτηση λειτουργίας" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Πώς το Notion αντιγράφει κείμενο και HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -11300,42 +11301,42 @@ msgstr "" "συστήματος και έπειτα δείτε πώς ένας μικρός δείκτης HTML κρατά τα δεδομένα " "εμπλουτισμένων μπλοκ συνδεδεμένα με ένα αντίγραφο." -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Συσκευασμένη εφαρμογή" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Εκτεθειμένο API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Περιβλήματα IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Πρόχειρο" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Διαβάστε τη μελέτη Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS · Ανακατασκευή" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Πώς το TH04 στοχεύει έναν δακτύλιο βολίδων" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -11347,37 +11348,37 @@ msgstr "" "ευανάγνωστο κώδικα C++ και έπειτα δείτε πώς παράγουν έναν δακτύλιο που " "στοχεύει τον παίκτη." -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Αρχικός κώδικας DOS" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Εντολές REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Υπολογισμός γωνίας" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Δακτύλιος βολίδων" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Διαβάστε τη μελέτη TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Οδηγοί βήμα προς βήμα" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -11387,7 +11388,7 @@ msgstr "" "Electron και ένα αίτημα περιηγητή. Καθένας ξεκινά με μια προτροπή και έναν " "συγκεκριμένο στόχο." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Διαβάστε τους οδηγούς" @@ -11407,12 +11408,12 @@ msgstr "" "μια εφαρμογή ελέγχου ταυτότητας Android, το DX-Ball, το Notion, το TH04 και " "ένα πρόγραμμα ελέγχου σημαίας DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -11421,25 +11422,25 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Μελέτη · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -11449,12 +11450,12 @@ msgstr "" "προφόρτωσης και της κύριας διεργασίας, μέχρι τη λειτουργία εγγραφής στο " "πρόχειρο του Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 · JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Η γέφυρα μέσα στο πακέτο της εφαρμογής υπολογιστή του Notion" @@ -11466,7 +11467,7 @@ msgstr "Η γέφυρα μέσα στο πακέτο της εφαρμογής #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11483,7 +11484,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11500,7 +11501,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11517,7 +11518,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11528,13 +11529,13 @@ msgstr "" "το παρεχόμενο κείμενο και HTML.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -11544,14 +11545,14 @@ msgstr "" "κύρια διεργασία. Η εξέταση των περιβλημάτων αποκαλύπτει τις κλήσεις Electron" " πίσω από αυτά τα ονόματα." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Σε αυτή τη μελέτη" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -11559,7 +11560,7 @@ msgstr "{ph0}Ακολουθήστε τη γέφυρα του προχείρου{ #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -11567,19 +11568,19 @@ msgstr "{ph0}Διατήρηση της δομής ενός μπλοκ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Πού καταλήγει η λειτουργία αντιγραφής;" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11599,17 +11600,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -11620,7 +11621,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11631,7 +11632,7 @@ msgstr "" "αντιγράφει κείμενο και HTML στο πρόχειρο του συστήματος. Δείξτε τον κώδικα " "σε κάθε βήμα.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -11640,12 +11641,12 @@ msgstr "" "Παράδειγμα προτροπής με το τοπικό πακέτο εφαρμογής του Notion διαθέσιμο στον" " βοηθό προγραμματισμού σας." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "Το REA βρίσκει από πού να ξεκινήσετε την ανάγνωση" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -11656,23 +11657,23 @@ msgstr "" "στη σελίδα και την κλήση που στέλνει ένα αίτημα IPC. Και τα δύο ευρήματα " "συνοδεύονται από περιοχές πηγαίου κώδικα στο ελαχιστοποιημένο πακέτο:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "Ευρήματα REA → δύο σημεία για άνοιγμα" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Εκτεθειμένο API σελίδας" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Κλήση IPC της διεργασίας απόδοσης" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11686,7 +11687,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11701,12 +11702,12 @@ msgstr "" "κύριο πακέτο. Τα τέσσερα παρακάτω αποσπάσματα δείχνουν τη διαδρομή που " "συνδέει." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Τέσσερα σύντομα τμήματα κώδικα" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -11715,20 +11716,20 @@ msgstr "" "Απλοποιημένα από τη συσκευασμένη JavaScript, με ευανάγνωστα ονόματα " "μεταβλητών. Τα άσχετα μέλη παραλείπονται." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Ξεκινήστε από το API που εκτίθεται στη σελίδα" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} · μέλος API" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11738,20 +11739,20 @@ msgstr "" "Αυτό το μέλος παρέχει το όνομα του καναλιού. Η υλοποίηση της {ph0} μας " "δείχνει πώς το αίτημα φεύγει από τη διεργασία της σελίδας." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Εξετάστε το περίβλημα της προφόρτωσης" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} · βοηθητική συνάρτηση IPC" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11762,13 +11763,13 @@ msgstr "" "απόκρισης του Electron. Μπορούμε πλέον να αναζητήσουμε το {ph0} στην πλευρά " "της κύριας διεργασίας." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Ελέγξτε πώς καταχωρίζεται ο παραλήπτης" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" @@ -11776,7 +11777,7 @@ msgstr "main/{ph0} · βοηθητική συνάρτηση χειριστή" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11786,19 +11787,19 @@ msgstr "" "Η κύρια διεργασία χρησιμοποιεί άλλο ένα περίβλημα. Η μέθοδός του {ph0} " "καταχωρίζει έναν παραλήπτη {ph1} για αυτό το κανάλι." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Βρείτε την εγγραφή και τον έλεγχο αποστολέα της" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" msgstr "main/{ph0} · παραλήπτης προχείρου" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -11810,13 +11811,13 @@ msgstr "" "περιβλήματα που εξετάστηκαν συνδέουν την εκτεθειμένη μέθοδο με αυτή την " "κλήση." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Πώς ένα αντιγραμμένο μπλοκ διατηρεί τη δομή του;" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11827,37 +11828,37 @@ msgstr "" "Κρατά τα δεδομένα του μπλοκ τοπικά και τοποθετεί ένα αναγνωριστικό στο " "αντιγραμμένο HTML για να τα συνδέσει." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Το HTML συνδέεται με αποθηκευμένα δεδομένα μπλοκ" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Αποστέλλεται στο πρόχειρο του συστήματος" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Αποθηκεύεται τοπικά από το Notion" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Διαβάστε το αναγνωριστικό του HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Βρείτε το ίδιο τοπικό αναγνωριστικό" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Επαναφέρετε τα δεδομένα μπλοκ του Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -11867,7 +11868,7 @@ msgstr "" "επαναφέρει τα δεδομένα του μπλοκ όταν τα αναγνωριστικά συμφωνούν· μια παλιά " "εγγραφή επιστρέφει μόνο κείμενο και HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -11877,24 +11878,24 @@ msgstr "" "συγκρίνει με το αποθηκευμένο αντίγραφο. Τα ίδια αναγνωριστικά επαναφέρουν τα" " δεδομένα του μπλοκ." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Περισσότερα παραδείγματα και πηγές" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Άλλο παράδειγμα: πίνακες Markdown" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -11903,22 +11904,22 @@ msgstr "" "Το Notion αναλύει το Markdown σε δεδομένα μπλοκ. Αυτό το παράδειγμα δείχνει " "πώς ένας πίνακας γίνεται γραμμές κεφαλίδων και δεδομένων." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Ένας πίνακας μέσα από τον αναλυτή Markdown του Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Είσοδος Markdown" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Δομημένη έξοδος αναλυτή · απόσπασμα" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -11927,13 +11928,13 @@ msgstr "" "Καταγεγραμμένη έξοδος από εξαγόμενο αναλυτή Markdown. Ο πίνακας γίνεται " "γραμμές και κελιά." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Μια άλλη διαδρομή: η σύνδεση SQLite εκτός δικτύου" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11947,7 +11948,7 @@ msgstr "" " και το άλλο σε μια βοηθητική διεργασία SQLite. Οι επόμενες παρτίδες εντολών" " και τα αποτελέσματα μεταφέρονται μέσω αυτού του άκρου." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -11957,7 +11958,7 @@ msgstr "" "βάσης δεδομένων και γιατί η ιχνηλάτηση μόνο του αρχικού αιτήματος IPC χάνει " "τη μεταγενέστερη επικοινωνία." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Πηγές και τρόπος ανάγνωσης των αποσπασμάτων" @@ -11965,7 +11966,7 @@ msgstr "Πηγές και τρόπος ανάγνωσης των αποσπασ #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11984,7 +11985,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -12002,7 +12003,7 @@ msgstr "" "περιγράφουν αυτούς τους ελέγχους και όχι μια καταγεγραμμένη συνεδρία του " "γραφικού περιβάλλοντος της εφαρμογής υπολογιστή." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -12017,7 +12018,7 @@ msgstr "" "υλοποιήσεις των περιβλημάτων τους στο πακέτο." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -12036,7 +12037,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -12050,7 +12051,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -12060,7 +12061,7 @@ msgstr "" "{ph0}Ανακατασκευή του DX-Ball{ph1}{ph2}Ακολουθήστε εντολές κώδικα μηχανής " "μέχρι μια ελεγμένη συνάρτηση C.{ph3}" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Αναλύστε τη δική σας εφαρμογή" @@ -12081,52 +12082,52 @@ msgstr "" "περιβλημάτων IPC και της κύριας διεργασίας του Electron, με σύντομα " "αποσπάσματα κώδικα και μια ματιά στη μορφή εμπλουτισμένου προχείρου του." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Μελέτη του Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Αντιγραφή προτροπής ανάλυσης Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Αντιγραφή αποσπάσματος προφόρτωσης Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Αντιγραφή αποσπάσματος περιβλήματος κλήσης Notion" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Αντιγραφή αποσπάσματος περιβλήματος χειριστή Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Αντιγραφή αποσπάσματος παραλήπτη προχείρου Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Επαναφορά δεδομένων εμπλουτισμένου προχείρου κατά την επικόλληση" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" @@ -12135,25 +12136,25 @@ msgstr "Μετάβαση στο περιεχόμενο" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Μελέτη · Touhou 4: Lotus Land Story" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Ανακατασκευή των σχηματισμών{ph0}βολίδων του TH04." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -12163,17 +12164,17 @@ msgstr "" "Χρησιμοποιήστε το REA για να εξετάσετε την αρχική συνάρτηση DOS και έπειτα " "ακολουθήστε τις εντολές της μέχρι τον ευανάγνωστο κώδικα C++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 · DOS 16 bit · C++ και assembly" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Δείτε την ανακατασκευή του TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Από τις αρχικές εντολές σε ελεγμένο πηγαίο κώδικα" @@ -12184,7 +12185,7 @@ msgstr "Από τις αρχικές εντολές σε ελεγμένο πηγ #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12200,7 +12201,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12218,7 +12219,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12235,7 +12236,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12247,7 +12248,7 @@ msgstr "" "καταγεγραμμένοι έλεγχοι μεταγλώττισης καλύπτουν τον κώδικα δημιουργίας " "βολίδων που περιέχει αυτή τη βοηθητική συνάρτηση.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -12256,14 +12257,14 @@ msgstr "" "Το REA επιστρέφει τον αρχικό κώδικα και τα στοιχεία ανάλυσής του. Το έργο " "TH04 παρέχει τον συντηρούμενο πηγαίο κώδικα και τους ελέγχους μεταγλώττισης." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Σε αυτή τη μελέτη" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -12271,7 +12272,7 @@ msgstr "{ph0}Ο δακτύλιος βολίδων{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -12279,7 +12280,7 @@ msgstr "{ph0}Τι επιστρέφει το REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -12287,7 +12288,7 @@ msgstr "{ph0}Από assembly σε C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -12295,18 +12296,18 @@ msgstr "{ph0}Έλεγχος του πηγαίου κώδικα{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Το πλήρες έργο{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Πώς ένας δακτύλιος στοχεύει τον παίκτη" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -12325,16 +12326,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Αντιγραφή" @@ -12345,7 +12346,7 @@ msgstr "Αντιγραφή" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12356,7 +12357,7 @@ msgstr "" "έναν δακτύλιο βολίδων και τον στοχεύει στον παίκτη. Εξηγήστε τον υπολογισμό " "και δείξτε τον κώδικα.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -12366,7 +12367,7 @@ msgstr "" "ανακατασκευής διαθέσιμα τοπικά." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12380,7 +12381,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12390,12 +12391,12 @@ msgstr "" "Απεικόνιση της ανακτημένης αριθμητικής γωνιών για πλήθος 16, κατεύθυνση " "παίκτη 40 και περιστροφή προτύπου 0. {ph0}Ανοίξτε το σχήμα{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Το πρότυπο βολής στον ανακτημένο πηγαίο κώδικα" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Επίθεση δακτυλίου της Elly · απόσπασμα πηγαίου κώδικα" @@ -12404,7 +12405,7 @@ msgstr "Επίθεση δακτυλίου της Elly · απόσπασμα πη #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12414,13 +12415,13 @@ msgstr "" "Αυτές οι γραμμές επιλέγουν τον σχηματισμό πριν από τη ρύθμιση της δυσκολίας " "και της απόδοσης. {ph0}Διαβάστε τον πηγαίο κώδικα της επίθεσης{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Τι επιστρέφει το REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12432,22 +12433,22 @@ msgstr "" "γωνία κάθε βολίδας. Το REA επιστρέφει τις εντολές, τον ψευδοκώδικα και τις " "αναφορές της. Τρία μέρη αυτού του αποτελέσματος εξηγούν τον σχηματισμό." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Ελέγξτε την εικόνα DOS πριν διαβάσετε τον κώδικά της" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Βοηθός → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → βοηθός · επιλεγμένα πεδία" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -12456,19 +12457,19 @@ msgstr "" "Ο έλεγχος συνδέει τον φορτωμένο κώδικα και τις εγγραφές μετεγκατάστασης με " "το παρεχόμενο εκτελέσιμο. Η παραπάνω διαδρομή συντομεύεται για την εμφάνιση." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Διαβάστε τον πολλαπλασιασμό και τη διαίρεση του δακτυλίου" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Βοηθός → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → βοηθός · απόσπασμα εντολών" @@ -12476,7 +12477,7 @@ msgstr "REA → βοηθός · απόσπασμα εντολών" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12489,22 +12490,22 @@ msgstr "" "συντηρούμενος πηγαίος κώδικας ονομάζει αυτό το πεδίο {ph2}. Η πλήρης " "ακολουθία εμφανίζεται παρακάτω." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Βρείτε πού ο σχηματισμός στρέφεται προς τον παίκτη" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Ίδιο αποτέλεσμα συνάρτησης · απόσπασμα στόχευσης" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Αντίστοιχος συντηρούμενος κώδικας C++" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -12518,12 +12519,12 @@ msgstr "" "διευθύνσεις ευανάγνωστες· το REA επιτρέπει στον βοηθό να ελέγξει τις αρχικές" " πράξεις πίσω από αυτές." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Από assembly σε ευανάγνωστο κώδικα C++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -12537,7 +12538,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -12545,7 +12546,7 @@ msgstr "{ph0}01{ph1} Δείκτης" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -12553,7 +12554,7 @@ msgstr "{ph0}02{ph1} Κατανομή" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -12561,7 +12562,7 @@ msgstr "{ph0}03{ph1} Στόχευση" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -12569,18 +12570,18 @@ msgstr "{ph0}04{ph1} Περιστροφή" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Αποθήκευση" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA · αρχικές εντολές 16 bit" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Ευανάγνωστος κώδικας C++ · σύνοψη στοχευμένου δακτυλίου" @@ -12588,7 +12589,7 @@ msgstr "Ευανάγνωστος κώδικας C++ · σύνοψη στοχευ #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12603,7 +12604,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12619,7 +12620,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12635,7 +12636,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12651,7 +12652,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12666,7 +12667,7 @@ msgstr "" "κώδικας μετατρέπει επίσης αυτή τη γωνία και το μέτρο ταχύτητας σε διάνυσμα " "ταχύτητας." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -12678,17 +12679,17 @@ msgstr "" "ευανάγνωστη σύνοψη. Οι παρακάτω έλεγχοι μεταγλώττισης αφορούν τον " "συντηρούμενο πηγαίο κώδικα στο συνδεδεμένο έργο." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Διαβάστε τον συντηρούμενο πηγαίο κώδικα δακτυλίου και στόχευσης" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Μακροεντολή δακτυλίου · κλάδος TH04, απόσπασμα" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Γωνία και διάνυσμα ταχύτητας · απόσπασμα πηγαίου κώδικα" @@ -12705,7 +12706,7 @@ msgstr "Γωνία και διάνυσμα ταχύτητας · απόσπασ #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12715,12 +12716,12 @@ msgstr "" "{ph0}Μακροεντολή δακτυλίου{ph1} · {ph2}Πηγαίος κώδικας στόχευσης και " "διανύσματος ταχύτητας{ph3} · {ph4}Αναπαράσταση γωνίας{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Έλεγχος του συντηρούμενου πηγαίου κώδικα" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -12730,12 +12731,12 @@ msgstr "" "δημιουργίας βολίδων, μαζί με αυτή τη βοηθητική συνάρτηση, με τη συγκεκριμένη" " αλυσίδα εργαλείων Turbo C++ 4.0J." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 ίδια byte" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -12744,12 +12745,12 @@ msgstr "" "Ο μεταγλωττισμένος κώδικας δημιουργίας βολίδων συμφωνεί με ένα τμήμα 2,139 " "byte του αρχικού εκτελέσιμου." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Δύο καθαρές μεταγλωττίσεις" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -12763,7 +12764,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -12771,59 +12772,59 @@ msgstr "" "Καταγράφηκε στις 3 Οκτωβρίου 2026. {ph0}Διαβάστε τους ελέγχους " "μεταγλώττισης{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Ταυτότητα στόχου και πεδίο ανάλυσης" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Αρχικός στόχος" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156,258 byte, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Σημείο εισόδου βοηθητικής συνάρτησης" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} στη φορτωμένη εικόνα του REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Μετατόπιση στο αρχικό αρχείο" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, επιστρέφεται από την {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Καταγεγραμμένη εξέταση κώδικα" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 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:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -12834,7 +12835,7 @@ msgstr "" "συνεισφορά του στο MAP και την επικαλυπτόμενη μετεγκατάσταση." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12850,7 +12851,7 @@ msgstr "" "αναφερόμενες περιοχές." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12868,7 +12869,7 @@ msgstr "" "η ανεξάρτητη τεκμηρίωση προέλευσης ενός ανέπαφου αντιγράφου παραμένει " "ανοικτή." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -12879,12 +12880,12 @@ msgstr "" "παιχνιδιού, ο χρονισμός και η συμπεριφορά του υλικού PC-98 έχουν ξεχωριστούς" " ελέγχους κατά την εκτέλεση στο έργο ανακατασκευής." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Η πλήρης ανακατασκευή του TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -12898,7 +12899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -12910,7 +12911,7 @@ msgstr "{ph0}Εξερευνήστε το αποθετήριο TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12926,7 +12927,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12942,7 +12943,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12968,22 +12969,22 @@ msgstr "" "κώδικα assembly και τον ανακτημένο κώδικα C++ για να δείτε πώς οι βολίδες " "κατανέμονται σε δακτύλιο και στοχεύουν τον παίκτη." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Σε αυτή τη σελίδα" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Μελέτη σχηματισμών βολίδων TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Αντιγραφή παραδείγματος προτροπής TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -12991,7 +12992,7 @@ msgstr "" "Σταθεροί και στοχευμένοι δακτύλιοι βολίδων TH04· κυλήστε οριζόντια σε " "μικρότερες οθόνες" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -13004,27 +13005,27 @@ msgstr "" "ίδιο ποσό· η επισημασμένη πρώτη βολίδα δείχνει προς τον παίκτη. Και οι δύο " "διατηρούν απόσταση 16 μονάδων γωνίας, ή 22.5 μοιρών." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Αντιγραφή προτύπου βολής TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Ακολουθήστε τον υπολογισμό στοχευμένου δακτυλίου TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Αντιγραφή αποσπάσματος assembly TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Αντιγραφή ευανάγνωστου υπολογισμού στοχευμένου δακτυλίου" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" @@ -13524,7 +13525,7 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Ίδια απόσταση: 256 ÷ 16 = 16 μονάδες γωνίας = 22.5°" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13535,7 +13536,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13547,7 +13548,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13555,7 +13556,7 @@ msgstr "{ph0}1. Προετοιμάστε τον υπολογιστή σας{ph1} #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13563,7 +13564,7 @@ msgstr "{ph0}2. Επιλέξτε βοηθό{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13571,7 +13572,7 @@ msgstr "{ph0}3. Συνδέστε το REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13579,18 +13580,18 @@ msgstr "{ph0}4. Δοκιμάστε μια διερεύνηση{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Άλλοι στόχοι και πάροχοι ανάλυσης{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Προετοιμάστε τον υπολογιστή σας" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13600,7 +13601,7 @@ msgstr "" "τοπικός βοηθός προγραμματισμού μπορεί να διαβάσει αυτά τα αρχεία και να " "εκτελέσει εργαλεία για εσάς." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13611,7 +13612,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13624,7 +13625,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13637,7 +13638,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13648,13 +13649,13 @@ msgstr "" "LTS για macOS (.pkg){ph1}, ανοίξτε το και ακολουθήστε τις οδηγίες του. " "Έπειτα ανοίξτε ξανά το Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Χρησιμοποιείτε ήδη το Homebrew;" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13665,24 +13666,24 @@ msgstr "" "εκτελέστε {ph0}· σε άλλες διανομές, χρησιμοποιήστε τον διαχειριστή πακέτων " "σας." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Κλείστε το τερματικό, ανοίξτε το ξανά και έπειτα:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Δημιουργήστε έναν φάκελο εργασίας για τον βοηθό σας" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Στο τερματικό σας, δημιουργήστε έναν φάκελο για την άσκηση και μεταβείτε σε " "αυτόν:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13691,12 +13692,12 @@ msgstr "" "Κρατήστε αυτό το τερματικό ανοιχτό για το επόμενο βήμα. Αν έχετε ήδη φάκελο " "εργασίας, ανοίξτε εκείνον." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Επιλέξτε βοηθό προγραμματισμού" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13706,17 +13707,17 @@ msgstr "" "παρέχει τα εργαλεία εξέτασης που χρησιμοποιεί. Επιλέξτε μία εφαρμογή " "παρακάτω· ανοίξτε τις οδηγίες της αν δεν την έχετε χρησιμοποιήσει ξανά." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · χρησιμοποιήστε τον λογαριασμό σας στο ChatGPT" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Εγκαταστήστε το Codex με την εντολή για το λειτουργικό σας σύστημα:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -13725,7 +13726,7 @@ msgstr "" "Μετά την εγκατάσταση, ανοίξτε ξανά το τερματικό και επιστρέψτε στον φάκελο " "εργασίας. Έπειτα ξεκινήστε το Codex:" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13737,29 +13738,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Εγκατάσταση και σύνδεση στο Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf ή VS Code · χρησιμοποιήστε έναν επεξεργαστή κώδικα" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" "Εγκαταστήστε τον επεξεργαστή για το λειτουργικό σας σύστημα και συνδεθείτε." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Ανοίξτε τον φάκελο rea-work που δημιουργήσατε στο βήμα 1." -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -13775,7 +13776,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13785,18 +13786,18 @@ msgstr "" "{ph0}Ρύθμιση του Cursor{ph1} · {ph2}Ρύθμιση του Windsurf / Devin " "Desktop{ph3} · {ph4}Ρύθμιση του VS Code και του Copilot{ph5}" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · χρησιμοποιήστε τον λογαριασμό σας στο Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Εγκαταστήστε το με την εντολή για το λειτουργικό σας σύστημα:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13810,18 +13811,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Εγκατάσταση Claude Code και επιλογές λογαριασμού{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · χρησιμοποιήστε μια συνομιλία στην επιφάνεια εργασίας" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -13833,7 +13834,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13848,7 +13849,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13858,14 +13859,14 @@ msgstr "" "{ph0}Λήψη Claude Desktop{ph1} · {ph2}Λεπτομέρειες σύνδεσης Claude " "Desktop{ph3}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · επιλέξτε μοντέλο τεχνητής νοημοσύνης" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13878,19 +13879,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Εγκατάσταση OpenCode και ρύθμιση μοντέλου{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Όλες οι υποστηριζόμενες εφαρμογές και τα αναγνωριστικά ρύθμισης" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13900,12 +13901,12 @@ msgstr "" "Η έκδοση npm 6.4.0 υποστηρίζει τις παρακάτω εφαρμογές. Χρησιμοποιήστε το " "αναγνωριστικό με το {ph0} όταν επιλέγετε ρητά μια εφαρμογή." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Εφαρμογή" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Αναγνωριστικό ρύθμισης" @@ -13915,7 +13916,7 @@ msgstr "Αναγνωριστικό ρύθμισης" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13935,7 +13936,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13945,13 +13946,13 @@ msgstr "" "{ph0}Διαμόρφωση εφαρμογών και αντιμετώπιση προβλημάτων{ph1} · " "{ph2}Διαθεσιμότητα εκδόσεων{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · συνδεθείτε στον φιλοξενούμενο υπολογιστή του" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13965,30 +13966,30 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Οδηγίες σύνδεσης του Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Συνδέστε το REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Αντιγράψτε αυτό στον βοηθό προγραμματισμού σας:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "" "Για μία συγκεκριμένη εφαρμογή, προσθέστε το αναγνωριστικό ρύθμισής της:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14000,7 +14001,7 @@ msgstr "" "Enter. Στη λίστα εφαρμογών του REA, χρησιμοποιήστε τα βέλη για μετακίνηση, " "το Space για να επιλέξετε την εφαρμογή σας και το Enter για να συνεχίσετε." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -14009,7 +14010,7 @@ msgstr "" "Το MCP είναι η σύνδεση που επιτρέπει στον βοηθό σας να καλεί το REA. Η " "δεξιότητα του δίνει μια ροή εργασίας για τη διερεύνηση λογισμικού." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -14020,7 +14021,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14030,21 +14031,21 @@ msgstr "" "Αντικαταστήστε το {ph0} με το αναγνωριστικό ρύθμισης της εφαρμογής σας. Ένας" " επιτυχής έλεγχος αναφέρει {ph1}. Έπειτα ζητήστε από τον βοηθό σας:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Ελέγξτε ότι το REA είναι συνδεδεμένο και δείξτε μου ποια εργαλεία του REA " "μπορείτε να χρησιμοποιήσετε." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Δοκιμάστε την πρώτη σας διερεύνηση" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14056,7 +14057,7 @@ msgstr "" "{ph0}Export notes{ph1}. Ο βοηθός σας μπορεί να εξετάσει τον κώδικά της χωρίς" " να εγκαταστήσει ή να εκκινήσει το Electron." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Ο βοηθός προγραμματισμού σας" @@ -14070,7 +14071,7 @@ msgstr "Ο βοηθός προγραμματισμού σας" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14084,7 +14085,7 @@ msgstr "" " Export notes. Δείξτε πού γράφεται το {ph4}, ποια πεδία περιέχει και τα " "σχετικά αρχεία και γραμμές.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Αναζητήστε μια σύντομη εξήγηση με αναφορές σε αρχεία και γραμμές:" @@ -14093,7 +14094,7 @@ msgstr "Αναζητήστε μια σύντομη εξήγηση με αναφ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14107,13 +14108,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Ελέγξτε μια πρόβλεψη στην καθοδηγούμενη άσκηση →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "" @@ -14122,14 +14123,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Λήψη παραδείγματος ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14141,7 +14142,7 @@ msgstr "" "για την εξαγωγή." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14151,12 +14152,12 @@ msgstr "" "Χρησιμοποιήστε το REA για να εξετάσετε την εφαρμογή στο {ph0}. Βρείτε πώς " "εξάγει δεδομένα και δείξτε τα σχετικά αρχεία και γραμμές." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Αναλύστε άλλο είδος λογισμικού" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -14165,12 +14166,12 @@ msgstr "" "Επιλέξτε την ενότητα για τον στόχο σας. Πάροχος ανάλυσης είναι το τοπικό " "εργαλείο ανάλυσης που χρησιμοποιεί το REA για αυτό το είδος λογισμικού." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Εκτελέσιμα και βιβλιοθήκες εγγενούς κώδικα · Hopper, Ghidra ή IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -14180,47 +14181,47 @@ msgstr "" "σύστημα φιλοξενίας είναι το λειτουργικό σας σύστημα· ο στόχος είναι το " "πρόγραμμα που θέλετε να εξετάσετε." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Πάροχος ανάλυσης" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Μη διαθέσιμο" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Υποστηριζόμενες διανομές" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · πειραματικό" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Επαληθευμένα προφίλ" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Επαληθευμένο προφίλ χωρίς γραφικό περιβάλλον" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Δείτε τον οδηγό παρόχου ανάλυσης" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · αφήστε τη ρύθμιση να το εγκαταστήσει ή να το συνδέσει" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -14232,7 +14233,7 @@ msgstr "" "όταν ανοίξει για πρώτη φορά το Hopper. Στο Linux, η ρύθμιση προετοιμάζει την" " υποστηριζόμενη έκδοση επίδειξης και το ιδιωτικό περιβάλλον οθόνης της." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -14242,7 +14243,7 @@ msgstr "" "ή Omarchy. Το Hopper είναι εμπορικό λογισμικό· η έκδοση επίδειξής του έχει " "περιορισμούς που ορίζει ο κατασκευαστής." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14255,18 +14256,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Ρύθμιση Hopper και αντιμετώπιση προβλημάτων{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · εγκαταστήστε το δωρεάν εργαλείο ανάλυσης και τη Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14276,7 +14277,7 @@ msgstr "" "Επιλέξτε το πακέτο που αντιστοιχεί στην αρχιτεκτονική του υπολογιστή σας." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14289,7 +14290,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14305,7 +14306,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14313,7 +14314,7 @@ msgstr "{ph0}Λήψη JDK{ph1} · {ph2}Λήψη Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14324,7 +14325,7 @@ msgstr "" " φάκελο για το {ph1}. Η δεύτερη επιβεβαιώνει ότι ο μεταγλωττιστής είναι " "εγκατεστημένος:" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14335,12 +14336,12 @@ msgstr "" "Για μια νέα εγκατάσταση σε macOS ή Linux arm64, μεταγλωττίστε τον " "απομεταγλωττιστή εγγενούς κώδικα για τον υπολογιστή σας πριν συνεχίσετε." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Μεταγλωττίστε τον απομεταγλωττιστή εγγενούς κώδικα του Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14353,7 +14354,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14363,7 +14364,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14373,20 +14374,20 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · οδηγίες μεταγλώττισης εγγενών στοιχείων{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" "Έπειτα ελέγξτε το Ghidra και αποθηκεύστε τις διαδρομές του για την εφαρμογή " "σας:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14404,7 +14405,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14414,12 +14415,12 @@ msgstr "" "{ph0}Ρύθμιση Ghidra και απαιτήσεις αρχιτεκτονικής{ph1} · {ph2}Οδηγός Ghidra " "για Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · συνδέστε μια υπάρχουσα εγκατάσταση" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14431,7 +14432,7 @@ msgstr "" "περιβάλλον με ανοιχτό το αρχικό δυαδικό αρχείο ή έναν επόπτη χωρίς γραφικό " "περιβάλλον που ανοίγει ιδιωτική βάση δεδομένων." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14444,14 +14445,14 @@ msgstr "" "εγγενής γέφυρα γραφικού περιβάλλοντος έχει δικές της απαιτήσεις έκδοσης και " "πλατφόρμας." -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Προετοιμάστε το αρχείο καταχώρισης IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14467,7 +14468,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14480,7 +14481,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14493,7 +14494,7 @@ msgstr "" "αρχείο στο IDA και ξεκινήστε το πρόσθετο του υποκείμενου διακομιστή πριν " "ζητήσετε από το REA να το εξετάσει." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14505,14 +14506,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Προφίλ IDA, παραδείγματα καταχώρισης και επαληθευμένες πλατφόρμες{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14523,18 +14524,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Ακολουθήστε ένα παράδειγμα ανάλυσης εγγενούς κώδικα{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Ιστότοποι, Android, .NET, υλικολογισμικό και άλλοι στόχοι" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14543,120 +14544,120 @@ msgstr "" "Ανοίξτε τον οδηγό για τον στόχο που διαθέτετε. Κάθε οδηγός δίνει τα πρόσθετα" " εργαλεία, τα υποστηριζόμενα συστήματα φιλοξενίας και την πρώτη εντολή." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Στόχος" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Εργαλεία προς προετοιμασία" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Οδηγός" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Ανοίξτε τον οδηγό{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Ιστότοπος" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / πακέτα" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Συσκευή Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Πόροι Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Έργο JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Υλικολογισμικό" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Βάση δεδομένων SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Κώδικας bytecode EVM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / κατάρρευση Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Λογικά σήματα" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Συμπεριφορά διεργασίας" @@ -14672,7 +14673,7 @@ msgstr "Συμπεριφορά διεργασίας" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14682,18 +14683,18 @@ msgstr "" "{ph0}Οδηγός Flutter{ph1} · {ph2}Πακέτα και πόροι{ph3} · {ph4}Κώδικας " "bytecode EVM{ph5} · {ph6}Όλοι οι οδηγοί διερεύνησης{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Χρησιμοποιήστε το REA από τερματικό" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Εντολές CLI, καθολική εγκατάσταση και curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14703,7 +14704,7 @@ msgstr "" "Αντικαταστήστε το {ph0} με ένα όνομα ή μια διεύθυνση συνάρτησης από τη λίστα" " συναρτήσεων του στόχου. Το Ghidra πρέπει να έχει ρυθμιστεί πρώτα." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14713,7 +14714,7 @@ msgstr "" "εγκατάστασης μέσω curl αφού προετοιμάσετε το Node.js:" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14723,7 +14724,7 @@ msgstr "" "Ακολουθήστε τις οδηγίες ρύθμισης για να συνδέσετε τον βοηθό σας. Αν δεν " "εμφανιστούν, εκτελέστε {ph0}." -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14733,12 +14734,12 @@ msgstr "" "ρύθμισής σας. Σε εφαρμογές επεξεργασίας κώδικα, ενεργοποιήστε το REA στις " "ρυθμίσεις MCP και επιτρέψτε τα εργαλεία του στη συνομιλία του βοηθού." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL και διαδρομές με κενά" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14751,17 +14752,17 @@ msgstr "" "Οι πάροχοι ανάλυσης χωρίς γραφικό περιβάλλον εκτελούνται στο ίδιο σύστημα με" " το REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Εντολή ρύθμισης για Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Ενημερώστε ή αφαιρέστε το REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14772,7 +14773,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14786,53 +14787,53 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Λεπτομέρειες ενημέρωσης και απεγκατάστασης{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Αντιγραφή εντολής ρύθμισης REA για Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Αντιγραφή εντολής" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Αντιγραφή προτροπής διερεύνησης σημειώσεων" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" @@ -14840,13 +14841,13 @@ msgstr "{ph0}Πώς λειτουργεί{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Μελέτες{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14856,19 +14857,19 @@ msgstr "" "ιστότοπο. Το REA τού δίνει τα εργαλεία για να εξετάσει τον κώδικα που εξηγεί" " την απάντηση." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Ξεκινήστε" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Δείτε ένα παράδειγμα ↓" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14876,13 +14877,13 @@ msgstr "{ph0}Μελέτες →{ph1} — διερευνήσεις και δια #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Ιστολόγιο →{ph1} — μέθοδοι και σημειώσεις ανακατασκευής." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Ρύθμιση για την πλατφόρμα σας:" @@ -14890,18 +14891,18 @@ msgstr "Ρύθμιση για την πλατφόρμα σας:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Άλλοι τρόποι εγκατάστασης: {ph0}{ph1} →{ph2}" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Πώς λειτουργεί" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14913,61 +14914,61 @@ msgstr "" "ακολουθήσει τον κώδικα, να εξηγήσει μια λειτουργία και να σας βοηθήσει να " "την ανακατασκευάσετε." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Ρωτήστε για μία λειτουργία" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Δώστε στον βοηθό σας ένα πρόγραμμα ή μια σελίδα και μια ερώτηση." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Εξετάστε το πρόγραμμα" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "Το REA επιστρέφει κώδικα, αναφορές και παρατηρήσεις από την εκτέλεση." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Εξηγήστε το και δοκιμάστε μια αλλαγή" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Ο βοηθός σας χρησιμοποιεί τα ευρήματα για να εξηγήσει ή να ανακατασκευάσει " "τη λειτουργία." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Δείτε ολόκληρη τη διερεύνηση του Calculator" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" msgstr "Γιατί το Calculator δίνει 220 για το {ph0};" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Ακολουθήστε τις εντολές βήμα προς βήμα" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Κάντε την ίδια ερώτηση στον βοηθό σας" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14976,7 +14977,7 @@ msgstr "" "Ας δοκιμάσουμε δύο παραδείγματα: αλλάζουμε την ταχύτητα ενός παιχνιδιού και " "έπειτα ανακατασκευάζουμε το κουμπί % του Calculator." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14985,7 +14986,7 @@ msgstr "" "Το παιχνίδι επιταχύνει όσο τρέχετε. Για να το ανακατασκευάσουμε με " "ρυθμιστικό ταχύτητας, πρέπει πρώτα να βρούμε πώς αλλάζει η ταχύτητα." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Ρωτήστε για την ταχύτητα" @@ -14998,7 +14999,7 @@ msgstr "1. Ρωτήστε για την ταχύτητα" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15007,12 +15008,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Παράδειγμα ερώτησης · Παιχνίδι με " "τον δεινόσαυρο" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Βρείτε τον κανόνα ταχύτητας" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -15022,12 +15023,12 @@ msgstr "" "εκτελείται. Η ταχύτητα ξεκινά από το 6 και αυξάνεται λίγο σε κάθε ενημέρωση " "όσο παραμένει κάτω από το 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Παίξτε το αποτέλεσμα" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15037,7 +15038,7 @@ msgstr "" " ρυθμιστικό ταχύτητας. Πατήστε Έναρξη και έπειτα επιλέξτε τη δική σας " "ταχύτητα." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15046,7 +15047,7 @@ msgstr "" "Ενεργοποιήστε τη JavaScript για να παίξετε. Μπορείτε πάντως να διαβάσετε τον" " κανόνα και να ανοίξετε τον παρακάτω πηγαίο κώδικα." -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -15055,7 +15056,7 @@ msgstr "" "Ξεκινήστε από το 6. Προσθέστε 0.001 σε κάθε ενημέρωση χωρίς σύγκρουση, όσο η" " ταχύτητα παραμένει κάτω από το 13." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15064,7 +15065,7 @@ msgstr "" "Το κουμπί % κάνει διαφορετικά πράγματα μετά το + και το ×. Ας βρούμε τους " "δύο κανόνες και ας τους δοκιμάσουμε σε μια μικρή αριθμομηχανή." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Ρωτήστε για το κουμπί %" @@ -15077,19 +15078,19 @@ msgstr "1. Ρωτήστε για το κουμπί %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Παράδειγμα ερώτησης · Calculator" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Βρείτε και τους δύο κανόνες" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15098,24 +15099,24 @@ msgstr "" "Το REA βοηθά τον βοηθό προγραμματισμού να διαβάσει τον κώδικα πίσω από το " "κουμπί %. Το κουμπί εφαρμόζει δύο διαφορετικούς κανόνες:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Δοκιμάστε το κουμπί %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" "Αναπαραγάγαμε και τους δύο κανόνες παρακάτω. Επιλέξτε + ή ×, πατήστε % και " "έπειτα =." -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Μελέτες περίπτωσης του REA." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -15123,17 +15124,17 @@ msgstr "" "Εξερευνήστε μια λειτουργία σε μια κυκλοφορημένη εφαρμογή ή ένα παιχνίδι, με " "κώδικα και ελεγμένα αποτελέσματα." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android · Ανάλυση APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Πώς μια εφαρμογή ελέγχου ταυτότητας δημιουργεί κωδικό σύνδεσης" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -15143,22 +15144,22 @@ msgstr "" "κυκλοφορήσει και έπειτα μετακινήστε το ρολόι του παραδείγματος για να δείτε " "γιατί αλλάζει κάθε 30 δευτερόλεπτα." -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Διαβάστε τη μελέτη περίπτωσης Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron · Ιχνηλάτηση λειτουργίας" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Πώς το Notion αντιγράφει κείμενο και HTML" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -15167,22 +15168,22 @@ msgstr "" "Ακολουθήστε τη JavaScript του πακέτου Notion μέχρι το πρόχειρο του " "συστήματος και δείτε πώς η αντιγραφή διατηρεί τα πλούσια δεδομένα των μπλοκ." -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Διαβάστε τη μελέτη περίπτωσης Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Κώδικας μηχανής · Ανακατασκευή" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Ο υπολογισμός στερεοφωνικής τοποθέτησης ήχου του DX-Ball" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -15191,17 +15192,17 @@ msgstr "" "Ανακτήστε πώς η θέση μιας μπάλας μετατρέπεται σε ήχο αριστερά/δεξιά σε ένα " "παιχνίδι Windows του 1996." -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Διαβάστε τη μελέτη περίπτωσης DX-Ball" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Επιλέξτε τον στόχο σας." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -15210,14 +15211,14 @@ msgstr "" "Αυτοί οι οδηγοί καλύπτουν τη ρύθμιση και μια πρώτη διερεύνηση για κάθε είδος" " λογισμικού." -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Δοκιμάστε ένα μεγαλύτερο έργο" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15226,7 +15227,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15236,7 +15237,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -15244,7 +15245,7 @@ msgstr "" "{ph0}Ζητήματα στο GitHub{ph1} — αναφέρετε ένα σφάλμα ή ζητήστε μια " "λειτουργία." -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Επιλογές ρύθμισης" @@ -15254,7 +15255,7 @@ msgstr "Επιλογές ρύθμισης" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15270,7 +15271,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15282,7 +15283,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15294,7 +15295,7 @@ msgstr "" "προεπιλεγμένη εντολή ρύθμισης είναι {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15306,67 +15307,67 @@ msgstr "" " το {ph0}. Παραθέστε τις συναρτήσεις και τις συμβολοσειρές του και εξηγήστε " "το τμήμα που χειρίζεται την είσοδο του χρήστη με αναφορές στον κώδικα." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Συνεισφέροντες" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Μετάβαση στο περιεχόμενο" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Αρχική{ph1} / Συνεισφέροντες" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Το φτιάχνουμε μαζί." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Ευχαριστούμε όλους όσοι βοηθούν να γίνει το REA καλύτερο." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15375,22 +15376,22 @@ msgstr "" "Κώδικας, τεκμηρίωση, δοκιμές, μεταφράσεις και ιδέες — υπάρχουν πολλοί τρόποι" " να συνεισφέρετε." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Πώς να συνεισφέρετε" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Συμμετέχετε στη συζήτηση →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Συνεισφέροντες" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Βρείτε έναν συνεισφέροντα" @@ -15398,13 +15399,13 @@ msgstr "Βρείτε έναν συνεισφέροντα" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "Από τη {ph0}λίστα συνεισφερόντων του GitHub{ph1} · Ενημερώθηκε {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -15423,12 +15424,12 @@ msgstr "" "Γνωρίστε τους ανθρώπους που συνεισφέρουν κώδικα, τεκμηρίωση, δοκιμές και " "ιδέες στο REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Όνομα χρήστη GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Επιστροφή στην κορυφή" diff --git a/website/locales/es/messages.po b/website/locales/es/messages.po index 39b5a01a1c9..06d55041059 100644 --- a/website/locales/es/messages.po +++ b/website/locales/es/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Inicio{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Reflexiones sobre ingeniería inversa." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Reconstrucción del juego{ph0}Ensayo" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "La revolución industrial en ingeniería inversa" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -53,36 +53,36 @@ msgstr "" "enseñó sobre los agentes, la verificación y el conocimiento que componen los" " proyectos." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Leer el artículo" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Por N0zoM1z0 * 10 octubre 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -102,38 +102,38 @@ msgstr "" "Reflexiones sobre ingeniería inversa, aprovechando la experiencia práctica " "con REA y agentes de IA." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -142,122 +142,122 @@ msgstr "" "REA — Descubra cómo funciona el software. Ingeniería inversa con su agente " "de codificación." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Inicio de REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Navegación principal" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA en GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Únete a REA en Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Sigue a REA en X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -266,35 +266,35 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Inicio{ph1} / {ph2}Blog{ph3} / Reconstrucción Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Ensayo * Reconstrucción de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "La revolución industrial en ingeniería inversa." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Por N0zoM1z0 * 10 octubre 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Ideas clave" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -307,7 +307,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -321,7 +321,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -334,7 +334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -347,7 +347,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -357,65 +357,65 @@ msgstr "" "{ph0}Estamos en los primeros días de la revolución industrial de ER.{ph1} " "Los métodos aún están tomando forma. Queda mucho por explorar." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Cómo se compone la experiencia" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Dirección humana{ph1} * Objetivo y criterios de aceptación" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Autonomía" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agente" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Elige un experimento.{ph0}Propón una hipótesis." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Verificación" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Referencia de validación" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Prueba contra a{ph0}referencia concreta." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repositorio" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Memoria de trabajo" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -424,7 +424,7 @@ msgstr "Código, evidencia,{ph0}cheques y lecciones." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -433,26 +433,26 @@ msgstr "Desajuste{ph0}{ph1}Revisar la hipótesis{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Una mejor{ph0}{ph1}punto de partida{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Reutilización" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Pase{ph1} * Conservar el resultado y su evidencia" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -461,14 +461,14 @@ msgstr "" "Cada proyecto deja al siguiente con un mejor punto de partida. Eso incluye " "arreglar los cheques cuando descubrimos una brecha." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "En este artículo" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -476,7 +476,7 @@ msgstr "{ph0}Agosto de 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -484,7 +484,7 @@ msgstr "{ph0} TH08: la continuación{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -492,7 +492,7 @@ msgstr "{ph0}Dos enfoques{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -500,7 +500,7 @@ msgstr "{ph0} TH095: composición{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -508,7 +508,7 @@ msgstr "{ph0} TH04: entre arquitecturas{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -516,7 +516,7 @@ msgstr "{ph0}De exacto a legible{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -524,18 +524,18 @@ msgstr "{ph0}El cambio industrial{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Lo que se hace posible{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Qué cambió en agosto de 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -550,7 +550,7 @@ msgstr "" "tiempo a la siguiente función. También significaba mantener una imagen cada " "vez más grande en mi cabeza." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -564,7 +564,7 @@ msgstr "" "puede ser útil en otros lugares, pero cada campo necesita establecer qué " "puede verificar con una referencia confiable." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -578,7 +578,7 @@ msgstr "" "reconstrucción de Touhou me dio un proyecto sustancial en el que " "averiguarlo." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -595,7 +595,7 @@ msgstr "" "Darle esa libertad marcó la diferencia: pude dedicar más atención a la " "dirección del proyecto y a si sus controles eran confiables." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -606,7 +606,7 @@ msgstr "" "sobreviviría más allá del proyecto actual. ¿Se beneficiaría el próximo juego" " de todo lo que acabábamos de aprender?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: construyendo sobre el trabajo humano" @@ -615,7 +615,7 @@ msgstr "TH08: construyendo sobre el trabajo humano" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -629,7 +629,7 @@ msgstr "" "sustancial. Vino con el conocimiento de la construcción y una historia de " "contribuciones que conservé en la continuación." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -641,7 +641,7 @@ msgstr "" " agosto, el libro mayor registró la fuente de las 1.107 funciones de juego " "identificadas." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -652,7 +652,7 @@ msgstr "" "aproximadamente once días después de que comenzara la continuación. Siguió " "una edición web. La versión nativa Linux de 64 bits llegó el 30 de agosto." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -668,7 +668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -687,12 +687,12 @@ msgstr "" "propone una explicación y la prueba; un desajuste le da algo específico para" " investigar." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Una coincidencia exacta con la constante incorrecta" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -704,7 +704,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -717,7 +717,7 @@ msgstr "" "reconstruida verificó la potencia del jugador contra {ph0}. El original " "usado {ph1}, el umbral de potencia máxima." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -733,14 +733,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" "{ph0}Sin embargo, la función ya había pasado la comparación exacta.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -756,7 +756,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -772,7 +772,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -787,7 +787,7 @@ msgstr "" " coma flotante. Encontró otras doce referencias incorrectas en cinco " "funciones aceptadas." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -801,7 +801,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -811,7 +811,7 @@ msgstr "" "{ph0}La referencia de verificación (oracle) también necesitaba " "reconstrucción.{ph1} Repararlo era parte de reparar el juego." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -829,7 +829,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -846,7 +846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -856,7 +856,7 @@ msgstr "" "{ph0}Un lote exitoso nos dio tanto el código recuperado como un mejor " "entorno para el siguiente lote.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Dos ideas diferentes de reconstrucción" @@ -865,7 +865,7 @@ msgstr "Dos ideas diferentes de reconstrucción" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -877,7 +877,7 @@ msgstr "" "tipo de trabajo. El aviso anuncia que se realizarán desarrollos adicionales " "de forma privada hasta su finalización. Un pasaje dice:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -887,7 +887,7 @@ msgstr "" " que se aleja de nuestro trabajo pinta una mala imagen para futuros " "esfuerzos de descompilación…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -904,7 +904,7 @@ msgstr "" "que hay detrás. El desacuerdo que quiero discutir es sobre cómo debe " "proceder la reconstrucción y cómo debe juzgarse una contribución." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -918,7 +918,7 @@ msgstr "" "confianza en el colaborador importaba porque gran parte del razonamiento " "ocurría mientras trabajaban." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -929,7 +929,7 @@ msgstr "" "herramientas. Lo que cambió para mí fue que un agente podía usar ese " "conocimiento para llevar a cabo la próxima investigación por su cuenta." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -944,7 +944,7 @@ msgstr "" "Quiero que otra persona pueda examinar por qué elegimos una implementación, " "incluso si un agente hizo la mayor parte del trabajo." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -957,7 +957,7 @@ msgstr "" "Eso plantea preguntas reales sobre el crédito. También cambia lo que los " "mantenedores necesitan saber antes de aceptar una contribución." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -972,7 +972,7 @@ msgstr "" " diseñar el proceso y reconocer cuándo su resultado es incorrecto. " "Diferentes comunidades pueden elegir cuánto de ese cambio quieren asumir." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -997,7 +997,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1010,14 +1010,14 @@ msgstr "" "abreviado. TH08 ' s {ph4}créditos y procedencia{ph5} registre el límite de " "continuación." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: la experiencia comienza a agravarse" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1032,7 +1032,7 @@ msgstr "" "aprender el juego. Pero ya sabíamos mucho más sobre cómo comenzar una " "reconstrucción y cómo mantenerla en marcha." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1046,7 +1046,7 @@ msgstr "" "reconstrucción del Windows i386 se marcó como jugable el 10 de septiembre, " "aproximadamente doce días después de la inicialización." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1058,7 +1058,7 @@ msgstr "" "experiencia ya estaba presente en las herramientas y en la forma en que se " "organizó el proyecto." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1073,7 +1073,7 @@ msgstr "" "Necesitamos verlos trabajar juntos. Esa lección ayudó a dar forma a la forma" " en que abordamos la compilación de todo el programa de TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1086,7 +1086,7 @@ msgstr "" "puede seguir ayudándome después de que haya seguido adelante. El siguiente " "agente puede usar el resultado sin repetir la investigación que lo condujo." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1101,7 +1101,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1113,7 +1113,7 @@ msgstr "" " juego.{ph1} Podemos dedicar más esfuerzo del próximo proyecto a lo que " "realmente es nuevo sobre su objetivo." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1127,7 +1127,7 @@ msgstr "" " proyecto para descubrir por qué la fuente se ve de la manera en que lo " "hace." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: el flujo de trabajo sobrevive a una arquitectura diferente" @@ -1136,7 +1136,7 @@ msgstr "TH04: el flujo de trabajo sobrevive a una arquitectura diferente" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1152,7 +1152,7 @@ msgstr "" "diferente de los juegos Windows. Existentes {ph2}Trabajo ReC98{ph3} también " "nos dio valiosos conocimientos y material de origen aquí." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1165,7 +1165,7 @@ msgstr "" "salvaciones. El trabajo actual es un puerto nativo de 64 bits. Establecer " "una versión de DOS que funcione primero le da a ese puerto una referencia." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1178,7 +1178,7 @@ msgstr "" " Pero el agente aún podría seguir una pregunta hasta un resultado y dejar " "que ese resultado guíe el próximo experimento." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1193,7 +1193,7 @@ msgstr "" "controles estén disponibles, un agente puede resolver la pregunta de la " "misma manera que lo hizo con un título Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1205,7 +1205,7 @@ msgstr "" "trabajar. La arquitectura definió el problema; el flujo de trabajo aún nos " "dio una forma de resolverlo." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1222,7 +1222,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1233,12 +1233,12 @@ msgstr "" "pruebas manuales{ph1} · {ph2}puerto de 64 bits{ph3}. El puerto permanece en " "desarrollo." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Del código exacto al código legible" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1247,7 +1247,7 @@ msgstr "" "Una vez que una reconstrucción funciona, quiero que alguien más pueda " "entenderla." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1262,7 +1262,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1279,7 +1279,7 @@ msgstr "" "el razonamiento con la fuente para que la siguiente persona pueda ver de " "dónde vino esa interpretación." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1294,14 +1294,14 @@ msgstr "" "poseer ese estado. Para mover el comportamiento de manera segura, " "necesitamos recuperar la relación detrás del antiguo acceso a la memoria." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "El orden que uso ahora es:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1317,7 +1317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1334,7 +1334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1350,7 +1350,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1365,7 +1365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1382,7 +1382,7 @@ msgstr "" "verifica que el programa reconstruido aún se construya y se comporte " "correctamente a lo largo de las rutas que ejercitamos." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1396,7 +1396,7 @@ msgstr "" "disponibles le da al agente una falla concreta para investigar antes de " "llevar a cabo una refactorización adicional." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1414,7 +1414,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1433,7 +1433,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1444,12 +1444,12 @@ msgstr "" "semántica hace utilizable el conocimiento recuperado.{ph1} Entonces, un " "puerto puede basarse en ambos." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Qué hace que esto sea un cambio industrial" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1463,7 +1463,7 @@ msgstr "" "hacer. Una herramienta mejor podría ayudar con cada función posterior que la" " necesitara." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1477,7 +1477,7 @@ msgstr "" "que prescriba cada paso, gran parte del trabajo permanece atado a mi " "atención." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1491,7 +1491,7 @@ msgstr "" " de nuevo. Todavía tengo que decidir si la evidencia acumulada respalda un " "hito del proyecto." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1507,7 +1507,7 @@ msgstr "" "usarlos para probar la fuente que propone y ver dónde se sostiene su " "explicación." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1525,7 +1525,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1546,7 +1546,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1564,7 +1564,7 @@ msgstr "" "resultados afectados. El próximo proyecto puede heredar una herramienta más " "sólida." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1580,7 +1580,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1593,7 +1593,7 @@ msgstr "" " y lecciones. Trabajar en un juego puede mejorar las condiciones iniciales " "de otro." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1605,12 +1605,12 @@ msgstr "" "Mejorar esas herramientas cambia cuánto puede hacer la próxima persona, o el" " próximo agente." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Los proyectos que ahora podemos considerar" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1622,7 +1622,7 @@ msgstr "" "atención de la que podría prestarle de manera realista. Muchos proyectos se " "quedarían en ideas." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1640,7 +1640,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1651,7 +1651,7 @@ msgstr "" "retroalimentación y conocimiento acumulado le permitirían a un agente " "trabajar en esto de manera confiable?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1662,12 +1662,12 @@ msgstr "" "Cada uno puede mejorar la forma en que nos acercamos al siguiente. Quiero " "seguir explorando hasta dónde nos puede llevar eso." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Hitos y fuentes del proyecto" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1702,7 +1702,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1737,7 +1737,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1756,7 +1756,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1780,7 +1780,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1803,7 +1803,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1820,7 +1820,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1842,7 +1842,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1857,7 +1857,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1879,27 +1879,27 @@ msgstr "" " Touhou con agentes de IA y cómo el conocimiento se compone en TH08 , TH095 " "y PC-98 TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Experiencia transmitida entre proyectos" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Ensayo de reconstrucción de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -1908,18 +1908,18 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Inicio{ph1}{ph2}/{ph3}Laboratorio de velocidad de dinosaurios" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Inspeccionar → reconstruir → cambiar" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Reconstruye la regla de velocidad del dinosaurio." @@ -1928,7 +1928,7 @@ msgstr "Reconstruye la regla de velocidad del dinosaurio." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1941,15 +1941,15 @@ msgstr "" "usamos su regla para construir este minijuego con {ph2}velocidad " "ajustable.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "En esta página" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1957,7 +1957,7 @@ msgstr "{ph0}Juega y cambia la velocidad{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1965,7 +1965,7 @@ msgstr "{ph0}Lea la regla recuperada{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1973,18 +1973,18 @@ msgstr "{ph0}Compruebe la reconstrucción{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Pruebe el análisis{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Juega y cambia la velocidad" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1996,49 +1996,49 @@ msgstr "" "velocidad fija. Seleccione la regla recuperada para comenzar en 6 y acelerar" " gradualmente nuevamente." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Juega a la reconstrucción" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Jugar" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Saltar ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Reiniciar" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Velocidad" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Utilice la regla de aceleración recuperada" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regla original: comience en 6, luego aumente hacia 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Mueva el control deslizante para establecer su propia velocidad. Espaciar o " "saltar despeja un cactus." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2047,7 +2047,7 @@ msgstr "" "Habilite JavaScript para reproducir la reconstrucción. El código y la " "explicación anteriores siguen siendo legibles." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Lea el script REA devuelto" @@ -2055,7 +2055,7 @@ msgstr "Lea el script REA devuelto" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2070,7 +2070,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2080,18 +2080,18 @@ msgstr "" "Los ajustes son {ph0}, {ph1} y {ph2}. El juego ejecuta esta rama en una " "actualización sin colisión." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Usa la misma regla en el nuevo juego" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2109,7 +2109,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" @@ -2117,12 +2117,12 @@ msgstr "" "{ph0}Descargar la regla de velocidad{ph1} · {ph2}Leer el código del " "juego{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Compruebe la reconstrucción" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2133,27 +2133,27 @@ msgstr "" "obstáculos y programación automática. Compare esas velocidades registradas " "con una repetición de la regla recuperada." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Actualizaciones" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Juego original" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Regla reconstruida" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Ejecute la verificación de velocidad" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2163,14 +2163,14 @@ msgstr "" " lo que el incremento final puede tomar una velocidad justo por encima de " "13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Pruebe el análisis usted mismo" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2179,7 +2179,7 @@ msgstr "{ph0}Configurar REA {ph1} con su agente de codificación." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2188,7 +2188,7 @@ msgstr "" "Siga el {ph0}pasos de conexión del navegador{ph1}, usando {ph2} como la URL " "de la página." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2205,7 +2205,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2217,7 +2217,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Su agente de codificación" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2231,7 +2231,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2246,7 +2246,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2272,12 +2272,12 @@ msgstr "" "Lee la regla de velocidad del juego de dinosaurios con REA, reconstrúyela, " "luego cambia la velocidad y juega." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Reconstrucción de la velocidad de los dinosaurios" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2286,52 +2286,52 @@ msgstr "" "Minijuego de dinosaurios. Usa el botón de salto o presiona la barra " "espaciadora mientras el juego está enfocado." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Copiar regla de velocidad reconstruida" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie el mensaje de análisis de dinosaurios" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Inicio{ph1} / Preguntas frecuentes" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA PREGUNTAS frecuentes." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Configuración, actualizaciones, análisis y solución de problemas." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Temas" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2339,7 +2339,7 @@ msgstr "{ph0}Configuración y actualizaciones{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2347,7 +2347,7 @@ msgstr "{ph0}Análisis{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2355,31 +2355,31 @@ msgstr "{ph0}Solución de Problemas{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Datos e intercambio{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Configuración y actualizaciones" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "¿Cómo instalo REA ?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * configuración del agente" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Copiar" @@ -2387,7 +2387,7 @@ msgstr "Copiar" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2401,12 +2401,12 @@ msgstr "" "ruta del archivo y una pregunta. La {ph0}guía de configuración{ph1} explica " "los requisitos y los pasos de tu primer análisis." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "¿Qué agentes de codificación pueden usar REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2421,18 +2421,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Conecte a su agente de codificación{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "¿Cómo actualizo REA ?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2441,13 +2441,13 @@ msgstr "" "REA se publica con frecuencia, incluidas correcciones de errores. Si instaló" " el CLI con npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * instalado CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2457,14 +2457,14 @@ msgstr "" "Siga el comando de actualización de configuración que imprime la " "actualización. Si configura su agente a través de {ph0}, corre:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * actualizar la configuración del agente" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2477,14 +2477,14 @@ msgstr "" " la nueva versión. Para un comando puntual de CLI, añade el comando después " "de {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Está instalando la habilidad desde skills.sh ¿suficiente?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2497,24 +2497,24 @@ msgstr "" "habilidad correspondiente, reinicie su agente para que pueda llamar a las " "herramientas." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Análisis" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "¿Qué puedo analizar con REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Comience con el tipo de software que tiene:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2526,7 +2526,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2538,7 +2538,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2548,7 +2548,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2560,12 +2560,12 @@ msgstr "" "Android, firmware y recursos empaquetados. {ph0}Ver los estudios de " "caso{ph1} para investigaciones trabajadas." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "¿Necesito Hopper, Ghidra o IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2578,7 +2578,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2591,12 +2591,12 @@ msgstr "" "destino determinan qué proveedor se puede utilizar. {ph0}Configurar el " "análisis de programas de código máquina{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "¿Puedo usar REA sin un agente de codificación?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2605,14 +2605,14 @@ msgstr "" "Sí. El CLI utiliza los mismos flujos de trabajo de análisis. Para una " "aplicación JavaScript o Electron local:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * análisis estático de aplicaciones" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2623,13 +2623,13 @@ msgstr "" "{ph0}Utilice el CLI {ph1} para opciones de instalación." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "¿Qué código devuelve REA?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2644,7 +2644,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2656,12 +2656,12 @@ msgstr "" "probar una implementación. El {ph0} Cálculo de DX-Ball{ph1} y " "{ph2}Comprobador de banderas CTF{ph3} muestre cómo funciona ese proceso." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "¿Qué le pregunto a mi agente?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2678,7 +2678,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2686,7 +2686,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Su agente de codificación" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2696,18 +2696,18 @@ msgstr "" "Reemplaza el camino con tu objetivo. El {ph0}guías{ph1} proporcione " "indicaciones para ejemplos nativos, Electron y del navegador." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Solución de Problemas" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "¿Por qué mi agente no puede ver las herramientas REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2717,7 +2717,7 @@ msgstr "" "Reinicie o vuelva a conectar su agente después de la configuración. " "Verifique su registro REA con {ph0}; para Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * compruebe un cliente" @@ -2725,7 +2725,7 @@ msgstr "Terminal * compruebe un cliente" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2736,14 +2736,14 @@ msgstr "" "muestra un registro faltante o obsoleto, ejecute el programa de instalación " "para ese cliente:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * reparar la configuración de un cliente" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2755,14 +2755,14 @@ msgstr "" " herramientas, verifique el error de conexión MCP del cliente. {ph0}Más " "diagnósticos de configuración{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "¿Necesito iniciar Hopper primero?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2775,14 +2775,14 @@ msgstr "" " antes del análisis desatendido. {ph0}Consulte configuración de proveedor " "nativo{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "¿Qué hago si encuentro un error?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2794,7 +2794,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2807,17 +2807,17 @@ msgstr "" " el nombre del proveedor cuando el problema implique el análisis de " "programas de código máquina." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Datos e intercambio" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "¿REA carga mi aplicación?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2826,7 +2826,7 @@ msgstr "" "REA analiza los objetivos en su máquina. Su agente recibe los resultados y " "la política de datos de su proveedor de modelos se aplica a esos resultados." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "¿Cómo puedo compartir un ejemplo o contribuir?" @@ -2835,7 +2835,7 @@ msgstr "¿Cómo puedo compartir un ejemplo o contribuir?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2851,7 +2851,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2879,77 +2879,77 @@ msgstr "" "herramientas de análisis, agentes de codificación, solución de problemas y " "ejemplos para compartir." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Preguntas frecuentes sobre REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Copie el comando de configuración REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Copie el comando de actualización REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Comando de actualización de la configuración del agente de copia" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Copie el comando de análisis REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Copie el mensaje de análisis de ejemplo" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Copie el comando de diagnóstico del cliente" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Copiar comando de configuración de ámbito" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Inicio{ph1} / Tu primera investigación" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Averigüe dónde{ph0}las notas exportadas van." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2958,14 +2958,14 @@ msgstr "" "Use REA para inspeccionar una aplicación pequeña, siga su botón Exportar " "notas y verifique un detalle usted mismo." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "En este ejercicio" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2973,7 +2973,7 @@ msgstr "{ph0}1. Configurar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2981,7 +2981,7 @@ msgstr "{ph0}2. Pregunte sobre exportación{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2989,7 +2989,7 @@ msgstr "{ph0}3. Sigue la respuesta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2997,13 +2997,13 @@ msgstr "{ph0}4. Comprobar una predicción{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Haz otra pregunta{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Conecte a su agente a REA" @@ -3016,30 +3016,30 @@ msgstr "1. Conecte a su agente a REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Su agente de codificación" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "O ejecute este comando en su terminal:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3048,14 +3048,14 @@ msgstr "" "Revise el plan, apruebe la configuración y luego reinicie su agente. ¿Ya " "estás conectado? Continúe abajo." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Pregunte dónde está escrito el CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3067,7 +3067,7 @@ msgstr "" "exportación{ph1} botón. Su agente puede inspeccionar su código sin instalar " "ni iniciar Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3079,14 +3079,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Descargar ZIP de ejemplo{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3096,12 +3096,12 @@ msgstr "" "Si su agente no puede descargar archivos, descomprímalo usted mismo. Dale el" " camino al {ph0} carpeta y la misma pregunta de exportación." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Siga la respuesta de regreso al código" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Busque una breve explicación con referencias de archivos y líneas:" @@ -3110,7 +3110,7 @@ msgstr "Busque una breve explicación con referencias de archivos y líneas:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3122,12 +3122,12 @@ msgstr "" "como CSV y escribe {ph1} en la carpeta de descargas del usuario. Las " "columnas son {ph2} y {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Del botón al escritor de archivos" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3136,7 +3136,7 @@ msgstr "" "El análisis estático de REA empareja el mensaje con su controlador. El " "destino se lee del código." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3148,7 +3148,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." @@ -3156,12 +3156,12 @@ msgstr "" "{ph0}Vea el rastreo completo del código y el resultado registrado de " "REA{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Comprobar una predicción" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3170,29 +3170,29 @@ msgstr "" "Una coma separa las columnas CSV. ¿Qué sucede cuando el título de una nota " "contiene una coma o comillas?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Ejecute el cheque usted mismo" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Abra una terminal en el desempaquetado {ph0} carpeta:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Haz otra pregunta" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Prueba un seguimiento en la misma conversación:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3201,7 +3201,7 @@ msgstr "" "¿Qué sucede si el archivo no se puede escribir? Siga el error de regreso a " "la página." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3214,7 +3214,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3228,7 +3228,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3243,7 +3243,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3268,116 +3268,116 @@ msgstr "" " a dónde van las notas exportadas y verifique el formateador CSV con un " "título de muestra." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Su primera investigación sobre REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Copie el mensaje de instalación de REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Comando Copiar configuración" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Aviso de investigación de Copy Notes" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Copie el mensaje de verificación CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Comando Copiar comprobación del formateador" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Inicio{ph1} / Empezar" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Configure REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Abra una terminal y verifique:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Copiar" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3389,19 +3389,19 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." msgstr "" -"Tu propia distribución {ph0} el paquete suele ser anterior a 22.23.4, así que " -"verifique {ph1} si lo usas en su lugar." +"Tu propia distribución {ph0} el paquete suele ser anterior a 22.23.4, así " +"que verifique {ph1} si lo usas en su lugar." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3413,7 +3413,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3421,7 +3421,7 @@ msgstr "{ph0}Utilice el CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3435,18 +3435,18 @@ msgstr "{ph0}Cómo obtener ayuda{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Tu agente de programación" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "O ejecute la configuración usted mismo" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "¿Cómo abro una terminal?" @@ -3455,7 +3455,7 @@ msgstr "¿Cómo abro una terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3471,7 +3471,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3485,7 +3485,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3499,7 +3499,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3509,7 +3509,7 @@ msgstr "" "Pegue un comando con {ph0} {ph1} ( macOS : {ph2} {ph3}; Terminales Linux: " "{ph4} {ph5} {ph6}), luego presione Entrar." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3521,7 +3521,7 @@ msgstr "" "de seguridad de la configuración existente. Pregunta antes de aplicar los " "cambios." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "¿Cómo reinicio mi cliente?" @@ -3530,7 +3530,7 @@ msgstr "¿Cómo reinicio mi cliente?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3546,7 +3546,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3556,7 +3556,7 @@ msgstr "" "{ph0}Agentes terminales{ph1} ( Claude Code, Codex, Gemini CLI ): salga de la" " sesión y vuelva a iniciarla." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "¿Cómo obtengo la ruta completa de una carpeta?" @@ -3565,7 +3565,7 @@ msgstr "¿Cómo obtengo la ruta completa de una carpeta?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3580,7 +3580,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3592,7 +3592,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3602,15 +3602,15 @@ msgstr "" "{ph0}Cualquier sistema:{ph1} arrastre la carpeta a una ventana de terminal y" " aparecerá su ruta." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "En una terminal, coloque comillas alrededor de una ruta que contenga " "espacios." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3619,14 +3619,14 @@ msgstr "" "Analice una carpeta de aplicación JavaScript o Electron o un archivo ASAR " "sin ejecutar la aplicación:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Análisis estático de aplicaciones" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3636,13 +3636,13 @@ msgstr "" "Reemplace la ruta con el directorio de la aplicación extraída o {ph0} " "archivo. En Windows, una ruta como {ph1} trabaja aquí." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "¿Dónde encuentro el archivo .asar de una aplicación?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3654,7 +3654,7 @@ msgstr "" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3666,7 +3666,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3679,14 +3679,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} a menudo {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3694,7 +3694,7 @@ msgstr "" "Algunas aplicaciones se instalan en otro lugar. Busque en la carpeta de la " "aplicación {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3706,36 +3706,36 @@ msgstr "" "se pueden resolver están marcadas en el resultado." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Si desea un permanente {ph0} comando en tu shell:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Instale el CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Continúe con la guía de aplicación del JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Conecte su instalación de Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Conecte Ghidra en Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3746,7 +3746,7 @@ msgstr "" "DLL nativas x86 y x64 PE en unidades NTFS locales fijas. Usa una instalación" " existente de Ghidra 12.1.x y un JDK de 64 bits, versión 21 o posterior:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3754,7 +3754,7 @@ msgstr "" "Reemplace las dos rutas con sus instalaciones, luego revise el plan de " "configuración." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3764,18 +3764,18 @@ msgstr "" "anterior; detecta una instalación existente u ofrece un plan de instalación " "para su aprobación." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Cómo obtener ayuda" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Si su agente no ve REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3785,22 +3785,22 @@ msgstr "" "Reinicie o vuelva a conectar el cliente después de la configuración. " "Compruebe su conexión REA con {ph0}; para Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Si un proveedor necesita atención" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Verifique el proveedor que está usando. Para Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Consulte a un proveedor" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3810,7 +3810,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3823,7 +3823,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3837,7 +3837,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3851,7 +3851,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3876,68 +3876,68 @@ msgstr "" "JavaScript o Electron local desde la terminal. Configuración, primeras " "preguntas y guías nativas para proveedores." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Copiar comprobación de la versión Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Copie el comando de instalación de Node.js para Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Copie el comando de instalación Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Copie el comando de instalación fnm para Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Copie los 24 comandos Node.js para Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "Guía de introducción al REA" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Copie el mensaje de instalación de REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Copie el comando de análisis JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Copie el comando de instalación de CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Copie el comando de diagnóstico del proveedor" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -3946,20 +3946,20 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Inicio{ph1} / {ph2}Guías{ph3} / Observación del navegador" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Vea lo que sucede{ph0}cuando haces clic." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3968,14 +3968,14 @@ msgstr "" "Use una pequeña aplicación de navegador para conectar una acción, su " "solicitud de red y el JavaScript que genera una descarga." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "En esta guía" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3983,7 +3983,7 @@ msgstr "{ph0}El ejemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3991,7 +3991,7 @@ msgstr "{ph0}Abra el navegador{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3999,7 +3999,7 @@ msgstr "{ph0}Pregúntele a su agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -4007,13 +4007,13 @@ msgstr "{ph0}Captura desde CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Lea la solicitud y el script{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "¿Qué sucede cuando haces clic en Exportar?" @@ -4023,7 +4023,7 @@ msgstr "¿Qué sucede cuando haces clic en Exportar?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4035,7 +4035,7 @@ msgstr "" "exportación{ph3} botón. Al hacer clic en él, se carga {ph4}, formatea las " "dos notas como CSV e inicia una descarga ." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Del clic a la descarga de CSV" @@ -4046,7 +4046,7 @@ msgstr "Del clic a la descarga de CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4062,7 +4062,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4081,7 +4081,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4091,17 +4091,17 @@ msgstr "" "{ph0}03 * Su agente{ph1}{ph2}Lea el código de exportación{ph3}{ph4}Conecte " "la solicitud observada a {ph5} en {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Inicie la captura antes de hacer clic en Exportar notas." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Abra Chrome con depuración remota" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4110,21 +4110,21 @@ msgstr "" "Abra el ejemplo de Hosted Notes con un perfil de navegador independiente y " "un puerto de depuración local. En Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Inicie el navegador de ejemplo" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4133,7 +4133,7 @@ msgstr "" "Utilice la ruta ejecutable de su navegador instalado en macOS o Windows . " "Puede reemplazar la URL de la página con otra página que desee inspeccionar." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4142,7 +4142,7 @@ msgstr "" "REA se conecta a este navegador existente. Usted mantiene el control de la " "página, realiza la acción y cierra el navegador cuando termina." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Pídale a su agente que vea una acción" @@ -4155,7 +4155,7 @@ msgstr "Pídale a su agente que vea una acción" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4167,7 +4167,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Su agente de codificación" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4179,7 +4179,7 @@ msgstr "" "CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4190,7 +4190,7 @@ msgstr "" "{ph0}, y la URL de la página. Deje que inicie la captura antes de hacer " "clic." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4201,23 +4201,23 @@ msgstr "" "y lee la evidencia resultante. Luego puede inspeccionar el script detrás de " "la exportación." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "O captura desde la terminal" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Encontrar el ID de destino de la página:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Encuentra la página" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4227,14 +4227,14 @@ msgstr "" "Elija el destino con la URL de ejemplo de Notes. Reemplazar {ph0} abajo con " "su ID, luego ejecute:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Captura los siguientes diez segundos" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4245,7 +4245,7 @@ msgstr "" "{ph0}Notas de exportación{ph1} en ese navegador. El resultado llega después " "de que finaliza la ventana de observación." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4256,49 +4256,49 @@ msgstr "" "red durante esa ventana y la forma de la respuesta JSON. Las solicitudes " "anteriores están fuera de esta captura." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Leer el script de solicitud y exportación" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Grabado con REA 4.1.0 en el ejemplo de notas locales" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Hecho capturado" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Valor" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Solicitud" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Respuesta" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Iniciador de la solicitud" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * guión" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Estructura de respuesta" @@ -4306,19 +4306,19 @@ msgstr "Estructura de respuesta" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} con {ph1} y {ph2} campos" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Leer los scripts cargados" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4330,7 +4330,7 @@ msgstr "" "datos:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4343,7 +4343,7 @@ msgstr "" "solicitó este clic {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4355,7 +4355,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4381,65 +4381,65 @@ msgstr "" "navegador, capture un clic, inspeccione la solicitud y siga el script de " "exportación." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Observación del navegador" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Copie inicie el navegador de ejemplo" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Copie el mensaje de ejemplo" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Copiar buscar la página" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Copia captura los siguientes diez segundos" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Copiar leer los scripts cargados" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Inicio{ph1} / Guías" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Guías REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4448,37 +4448,37 @@ msgstr "" "Analice una función nativa, una exportación Electron o una solicitud del " "navegador. Cada guía incluye un mensaje, código y resultados." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Primera investigación" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Configurar REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Conecte su agente de codificación o use REA desde la terminal." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Comience con REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Programas de código máquina" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Recuperar un cálculo de la posición del sonido izquierda/derecha" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4488,22 +4488,22 @@ msgstr "" "siga a la persona que llama, lea las constantes numéricas y verifique la C " "recuperada." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Guía de análisis de programas de código máquina" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript y Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Siga una exportación de CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4513,14 +4513,14 @@ msgstr "" "la precarga y el proceso principal. Utilice REA para conectar la API, el " "canal IPC y el escritor de archivos." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Guía JavaScript y Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4528,17 +4528,17 @@ msgstr "" "Para obtener una aplicación empaquetada más grande, siga {ph0} Puente del " "portapapeles de Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Comportamiento del navegador" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Observar un clic" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4547,7 +4547,7 @@ msgstr "" "Abra un ejemplo de notas de trabajo, capture una solicitud de exportación y " "busque el código que convierte su respuesta en una descarga." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Guía de observación del navegador" @@ -4566,12 +4566,12 @@ msgstr "" "Aprenda REA a través de breves ejemplos trabajados: un cálculo nativo, una " "exportación Electron CSV y una solicitud del navegador." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -4580,20 +4580,20 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Inicio{ph1} / {ph2}Guías{ph3} / JavaScript y Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Rastrear un Electron {ph0} Exportación CSV." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4602,14 +4602,14 @@ msgstr "" "Haga clic en un botón desde la API de la página, a través de Electron IPC, " "hasta el escritor de archivos CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "En esta guía" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4617,7 +4617,7 @@ msgstr "{ph0}El ejemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4625,7 +4625,7 @@ msgstr "{ph0}Pregúntele a su agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4633,7 +4633,7 @@ msgstr "{ph0}Rastrear el código de exportación{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4641,20 +4641,20 @@ msgstr "{ph0}Prueba el ejemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Inspeccione la grabadora CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "¿A dónde van las \"Notas de exportación\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4666,7 +4666,7 @@ msgstr "" "de exportación{ph1} llama a una API en la página, cruza al proceso principal" " y escribe un CSV . El comportamiento se distribuye en varios archivos." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "La exportación CSV a través de procesos Electron" @@ -4680,7 +4680,7 @@ msgstr "La exportación CSV a través de procesos Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4697,7 +4697,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4714,7 +4714,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4727,13 +4727,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} formatea las notas → {ph1} escribe {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4744,14 +4744,14 @@ msgstr "" " API expuesta. La ruta se infiere del código; una captura en tiempo de " "ejecución puede verificar qué se ejecuta." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Pregunte por la exportación CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4769,14 +4769,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Su agente de codificación" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Copiar" @@ -4787,7 +4787,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4798,7 +4798,7 @@ msgstr "" "esta aplicación. ¿Dónde se crea el CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4808,7 +4808,7 @@ msgstr "" "Mensaje de ejemplo. Incluya la ruta absoluta a la carpeta de la aplicación o" " {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4819,17 +4819,17 @@ msgstr "" "módulos y límites de procesos. Su agente usa ese mapa para limitar la " "investigación a la función de exportación." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Rastrear el código de exportación" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "La página llama a una pequeña API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4840,7 +4840,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4852,7 +4852,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4863,7 +4863,7 @@ msgstr "" "notas y el proceso principal escribe {ph1} en la carpeta de descargas del " "usuario." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4873,7 +4873,7 @@ msgstr "" "ubicaciones de origen acompañan a los hallazgos de la API, el canal y el " "controlador." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analice el ejemplo usted mismo" @@ -4881,25 +4881,25 @@ msgstr "Analice el ejemplo usted mismo" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Descargar ZIP de ejemplo{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Explore los seis archivos fuente" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Análisis estático de aplicaciones" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4910,7 +4910,7 @@ msgstr "" "canal IPC y un controlador coincidente en {ph0}. Las ubicaciones de origen " "están en {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4921,13 +4921,13 @@ msgstr "" "ASAR. Un agente puede seguir una cadena literal, un nombre de API o un canal" " IPC con las herramientas de rastreo de funciones de REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Inspeccione la grabadora CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4937,7 +4937,7 @@ msgstr "" "Sigue {ph0} a su manejador. ¿Qué entradas llegan al escritor CSV y qué " "sucede si falla la escritura del archivo?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4953,7 +4953,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4967,7 +4967,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4981,7 +4981,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -5007,32 +5007,32 @@ msgstr "" "precarga y controlador IPC con REA . Incluye archivos de ejemplo " "descargables y un resultado de análisis verificado." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript y Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Copie el mensaje de ejemplo" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Copiar análisis de aplicaciones estáticas" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -5041,7 +5041,7 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5049,7 +5049,7 @@ msgstr "" "{ph0}Inicio{ph1} / {ph2}Guías{ph3} / Análisis de programas de código máquina" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." @@ -5057,7 +5057,7 @@ msgstr "" "Recuperar DX-Ball 's{ph0}cálculo de la posición del sonido izquierda / " "derecha." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5066,14 +5066,14 @@ msgstr "" "Inspeccione las instrucciones originales, identifique la entrada y las " "constantes, luego verifique la C recuperada." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "En esta guía" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5081,7 +5081,7 @@ msgstr "{ph0}El ejemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5089,7 +5089,7 @@ msgstr "{ph0}Pregúntele a su agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5097,7 +5097,7 @@ msgstr "{ph0}Lea los resultados del REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5105,18 +5105,18 @@ msgstr "{ph0}Recuperar y comprobar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Usa tu propio binario{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Calcular el posicionamiento del sonido estéreo izquierdo/derecho" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5128,7 +5128,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5140,7 +5140,7 @@ msgstr "" " llamada a {ph1}. REA también devuelve sus instrucciones y llamadas, que le" " dan al agente una forma de investigar la aritmética faltante." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "¿Eres nuevo en estos términos?" @@ -5149,7 +5149,7 @@ msgstr "¿Eres nuevo en estos términos?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5161,7 +5161,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5174,7 +5174,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5187,7 +5187,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5199,7 +5199,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5209,7 +5209,7 @@ msgstr "" "{ph0}Constantes:{ph1} números fijos almacenados en el programa, leídos como " "bytes sin procesar y decodificados." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Tres pruebas, un cálculo" @@ -5220,7 +5220,7 @@ msgstr "Tres pruebas, un cálculo" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5238,7 +5238,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5256,7 +5256,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5267,7 +5267,7 @@ msgstr "" "numéricas{ph3}{ph4}Decodificación de bytes referenciados a {ph5}, {ph6} y un" " valor de escala.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5276,7 +5276,7 @@ msgstr "" "REA proporciona las instrucciones, la relación función-llamada y los bytes. " "El agente los interpreta juntos." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Pregunte sobre el comportamiento" @@ -5285,7 +5285,7 @@ msgstr "Pregunte sobre el comportamiento" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5296,19 +5296,19 @@ msgstr "" "herramienta de análisis de programas de código máquina{ph3}, proporcione el " "ejecutable local y una pregunta:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "¿Qué herramienta de análisis debo usar?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA necesita uno de estos para leer programas nativos:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5322,7 +5322,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5335,7 +5335,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5346,7 +5346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5362,14 +5362,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Su agente de codificación" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Copiar" @@ -5380,7 +5380,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5391,7 +5391,7 @@ msgstr "" "posicionamiento del sonido estéreo. Explique el cálculo y muestre el " "código.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5402,7 +5402,7 @@ msgstr "" "DX-Ball 1.07. REA no incluye DX-Ball, así que use su propia copia o haga el" " mismo tipo de pregunta sobre otro pequeño programa Windows que tenga." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "¿Cómo obtengo la ruta completa de un archivo?" @@ -5411,7 +5411,7 @@ msgstr "¿Cómo obtengo la ruta completa de un archivo?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5426,7 +5426,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5439,7 +5439,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5449,17 +5449,17 @@ msgstr "" "{ph0}Cualquier sistema:{ph1} arrastre el archivo a una ventana de terminal y" " aparecerá su ruta." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Lea los resultados del REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Lea la entrada" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5469,13 +5469,13 @@ msgstr "" " de coma flotante. Esta es la entrada ausente en la primera vista de " "pseudocódigo." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Siga a la persona que llama" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5486,12 +5486,12 @@ msgstr "" "instrucciones anteriores multiplican la coordenada del mosaico por 30; " "sumando {ph0} (20) da la posición de la pantalla del ladrillo." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Lee las constantes a las que se hace referencia" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5501,12 +5501,12 @@ msgstr "" "proporciona los valores reales; el orden de instrucción le dice al agente " "cómo se usan." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Escriba y verifique la función recuperada" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5517,7 +5517,7 @@ msgstr "" "-500, 0 y 500 antes de la conversión de enteros. El cálculo coloca el centro" " de la pantalla en el centro del campo estéreo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5530,21 +5530,21 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" "{ph0}Vea la investigación completa y la comparación de assembly-to-C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Pruébalo con tu propio binario" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5558,7 +5558,7 @@ msgstr "" " para investigar . Las preguntas iniciales útiles incluyen \"¿ Cómo se " "analiza este archivo?\"o\" ¿Qué función maneja esta acción de menú?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5567,13 +5567,13 @@ msgstr "" "Si ya conoce el nombre o la dirección de una función, puede consultarla " "desde el terminal. Para una instalación Ghidra configurada:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Análisis de funciones" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5587,7 +5587,7 @@ msgstr "" " sesión. Las consultas MCP de su agente reutilizan el binario importado " "mientras esa sesión está abierta." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5611,50 +5611,50 @@ msgstr "" "Recupere un cálculo nativo con REA: inspeccione instrucciones, siga a una " "persona que llama, lea constantes y verifique C reconstruido." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Análisis de programas de código máquina" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Copie el mensaje de ejemplo" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Análisis de la función de copia" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Saltar al contenido" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "En esta página" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Configurar REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5662,7 +5662,7 @@ msgstr "{ph0}Configurar REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5670,7 +5670,7 @@ msgstr "{ph0}Juego de dinosaurios{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5678,7 +5678,7 @@ msgstr "{ph0}Calculadora{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5686,25 +5686,25 @@ msgstr "{ph0}Prueba REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Profundiza{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Ingeniería inversa, con su agente de codificación" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Descubre cómo{ph0}funciona el software." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Copia este prompt en tu agente de programación:" @@ -5717,33 +5717,33 @@ msgstr "Copia este prompt en tu agente de programación:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Su agente de codificación" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Copiar" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "O ejecuta esto en la terminal:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Revisa y aprueba los cambios propuestos. Después, reinicia tu agente." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5751,7 +5751,7 @@ msgstr "{ph0}01{ph1} Decodificar ramas" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5759,7 +5759,7 @@ msgstr "{ph0}02{ph1} Rastrear llamadas" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5769,20 +5769,20 @@ msgstr "{ph0}03{ph1} Recuperar la regla" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Original x64 * instrucciones seleccionadas{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * ¿Qué sucursal?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5792,29 +5792,29 @@ msgstr "" "“{ph0}¿0x5b? ¿0x5c?{ph1} Dos saltos al mismo lugar. ¿Qué operadores son " "estos?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Busque los ID de comando y luego etiquete la rama." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Divide ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Multiplicar ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · ¿Qué hacen las funciones llamadas?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5824,25 +5824,25 @@ msgstr "" "\"100 está claro. Las llamadas son solo direcciones. {ph0}¿Cuál divide? ¿Qué" " valor entra?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" "Inspeccione las funciones auxiliares y rastree los valores almacenados." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Divide" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * ¿Cuál es la regla?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5852,20 +5852,20 @@ msgstr "" "\"Esta ruta se multiplica por la otra entrada. Entonces {ph0}10% significa " "10% de 200{ph1} después de +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" "Asigne un nombre a los operandos y verifique ambas rutas de operadores." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Razonamiento experto ilustrativo" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5883,21 +5883,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Ejemplo de indicador * Calculadora" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Respuesta de ejemplo * basada en los hallazgos" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5905,67 +5905,67 @@ msgid "" msgstr "" "Después de +, el botón % toma {ph0}un porcentaje del primer número.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA proporciona" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Instrucciones del manejador, código descompilado y llamadas." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Tu agente explica" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Qué rama se aplica, qué calcula y cómo reconstruirla." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Ejemplo 01 * Juego de dinosaurios de Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "¿Por qué el dinosaurio va cada vez más rápido?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Jugar" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Saltar ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Reiniciar" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Velocidad" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Utilice la regla de aceleración recuperada" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regla original: comience en 6, luego aumente hacia 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5978,7 +5978,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5992,7 +5992,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -6000,12 +6000,12 @@ msgstr "" "Objetivo inspeccionado: {ph0}edición de navegador derivada de Chromium de " "wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Abra el laboratorio de velocidad →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Qué hace cada parte" @@ -6016,7 +6016,7 @@ msgstr "Qué hace cada parte" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6032,7 +6032,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6049,7 +6049,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6059,13 +6059,13 @@ msgstr "" "{ph0}03 * Tú{ph1}{ph2}Cambia la velocidad y juega{ph3}{ph4}Prueba la " "aceleración original y luego elige tu propio ritmo.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Vea el script, las comprobaciones y cómo probar el análisis" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6076,7 +6076,7 @@ msgstr "" "depuración local y devolvió el archivo cargado {ph0}, incluyendo su fuente y" " resumen." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6090,7 +6090,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6107,7 +6107,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6125,7 +6125,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6134,34 +6134,34 @@ msgstr "" "{ph0}Código de velocidad inspeccionado{ph1} · {ph2} Chromium Autores * " "Licencia BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Ejemplo 02 * Calculadora Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Recrea el botón % de la calculadora." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Restablecer" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% de 200 = 20. Entonces 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Ilustración interactiva de la regla de porcentaje inspeccionado." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6173,7 +6173,7 @@ msgstr "Para este ejemplo, {ph0} y {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6185,7 +6185,7 @@ msgstr "" "Windows. Recupere las reglas después de + y×, luego construya una pequeña " "calculadora que use ambas.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Con +" @@ -6193,13 +6193,13 @@ msgstr "Con +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Toma el 10% del primer número.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Con ×" @@ -6207,13 +6207,13 @@ msgstr "Con ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Convierta el 10% en 0.1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Desde la aplicación instalada hasta un botón % que funciona" @@ -6225,7 +6225,7 @@ msgstr "Desde la aplicación instalada hasta un botón % que funciona" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6242,7 +6242,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6254,12 +6254,12 @@ msgstr "" "reglas{ph3}{ph4}Verifique la sucursal con la fuente de Microsoft, luego " "intente + y × arriba.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Vea el código real y cómo se verificó la respuesta" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6280,7 +6280,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6290,17 +6290,17 @@ msgstr "" "{ph0}Porcentaje de implementación{ph1} · {ph2}Casos de prueba de " "Microsoft{ph3} · {ph4}Guía de configuración nativa{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Su primera investigación" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Pruebe REA en una aplicación pequeña." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6309,17 +6309,17 @@ msgstr "" "Descargue nuestro ejemplo de Notes, rastree su exportación CSV y verifique " "una entrada modificada." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Pruebe el ejemplo guiado" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Programas de código máquina" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6328,17 +6328,17 @@ msgstr "" "Inspeccione funciones, cadenas, referencias y relaciones función-llamada en " "ejecutables y bibliotecas." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Guía de análisis de programas de código máquina" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript y Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6347,17 +6347,17 @@ msgstr "" "Asigne módulos, rutas, IPC y dependencias nativas desde una carpeta de " "aplicaciones o un archivo ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Flujos de trabajo de aplicaciones" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Actividad del navegador y del tiempo de ejecución" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6366,12 +6366,12 @@ msgstr "" "Capture la actividad seleccionada del navegador o del proceso y, a " "continuación, compare los resultados entre ejecuciones." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Guía de observación del navegador" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "¿Tienes preguntas?" @@ -6391,27 +6391,27 @@ msgstr "" "comportamiento del navegador con su agente de codificación. Siga guías " "claras y pruebe ejemplos interactivos con REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Copie el mensaje de instalación de REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Comando Copiar configuración" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Siga el análisis manual de la calculadora" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Copiar pregunta de porcentaje de la calculadora" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6420,27 +6420,27 @@ msgstr "" "Minijuego de dinosaurios. Usa el botón de salto o presiona la barra " "espaciadora mientras el juego está enfocado." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie el mensaje de análisis de dinosaurios" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Elija el cálculo" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Copie el mensaje de análisis de la calculadora" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -6449,26 +6449,26 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Inicio{ph1} / {ph2}Vitrinas{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Caso práctico * Autenticador Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" "Cómo funciona un autenticador{ph0}¿generar un código de inicio de sesión?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6478,17 +6478,17 @@ msgstr "" " cálculo en un APK de Android y luego reconstrúyelo con un reloj que puedas " "controlar." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * Versión oficial APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Ver Aegis en GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Desde un APK hasta un código que puedes reproducir" @@ -6499,7 +6499,7 @@ msgstr "Desde un APK hasta un código que puedes reproducir" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6517,7 +6517,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6535,7 +6535,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6547,14 +6547,14 @@ msgstr "" "código.{ph3}{ph4}Una nueva demostración del navegador reproduce la regla y " "la compara con casos de referencia pública.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "En este estudio de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6562,7 +6562,7 @@ msgstr "{ph0}Pregúntele a su agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6570,7 +6570,7 @@ msgstr "{ph0}Pruebe el generador de código{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6578,7 +6578,7 @@ msgstr "{ph0}Encuentra el código con REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6586,7 +6586,7 @@ msgstr "{ph0}Lea el cálculo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6594,20 +6594,20 @@ msgstr "{ph0}Compruebe la reconstrucción{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Inspeccione el APK usted mismo{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Pregúntele a su agente" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6625,21 +6625,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Su agente de codificación" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Copiar" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6649,14 +6649,14 @@ msgstr "" "Un mensaje de ejemplo para el APK descargado, con el análisis de Android de " "REA configurado. {ph0}Obtenga el APK y la configuración de análisis ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Pruebe el generador de código" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6668,33 +6668,33 @@ msgstr "" "el número de bloque con la clave de cuenta para generar un código. La misma " "clave y bloque producen el mismo código." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Mueve el reloj 60 segundos" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Tiempo" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "segundos" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Nuestro reloj de ejemplo ajustable" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "bloque de 30 segundos" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Bloque" @@ -6703,35 +6703,35 @@ msgstr "Bloque" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 segundos{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Código generado" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Clave de cuenta + bloque → seis dígitos" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Tiempo de ejemplo, en segundos" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 segundos" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 segundos" @@ -6740,7 +6740,7 @@ msgstr "60 segundos" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6752,7 +6752,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6762,7 +6762,7 @@ msgstr "" "La clave es fija, pública {ph0}Datos de prueba RFC 6238{ph1}. La " "demostración implementa el cálculo recuperado del APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6771,18 +6771,18 @@ msgstr "" "El diagrama muestra el resultado a los 59 segundos. Habilite JavaScript para" " cambiar el reloj." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Encuentra el código con REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Reduzca el APK a tres clases" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6793,14 +6793,14 @@ msgstr "" "progreso y las cuentas importadas. TOTP significa una contraseña de un solo" " uso basada en el tiempo." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Conecte el generador a la pantalla de la aplicación" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6812,7 +6812,7 @@ msgstr "" "llamando {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6822,14 +6822,14 @@ msgstr "" "Las solicitudes muestran una ruta de entrada acortada. Los nombres de clase " "de resultado omiten lo común {ph0} prefijo." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Lea el cálculo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6844,7 +6844,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6852,7 +6852,7 @@ msgstr "{ph0}01{ph1} Bloque de tiempo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6860,7 +6860,7 @@ msgstr "{ph0}02{ph1} Tecla + bloque" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6868,7 +6868,7 @@ msgstr "{ph0}03{ph1} Seis dígitos" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6880,7 +6880,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6894,7 +6894,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6909,7 +6909,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6920,7 +6920,7 @@ msgstr "" "mostrar. El panel de la derecha es un resumen explicativo. {ph0} El código " "Aegis es GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Dentro del generador" @@ -6929,7 +6929,7 @@ msgstr "Dentro del generador" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6939,7 +6939,7 @@ msgstr "" "El APK lanzado pone {ph0} en {ph1}. REA sigue la llamada de {ph2} y " "devuelve este cuerpo; la fuente original llama al ayudante {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6956,20 +6956,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Compare con la fuente de publicación correspondiente{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Compruebe la reconstrucción" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6982,29 +6982,29 @@ msgstr "" "independiente en {ph0}133 casos de prueba{ph1}, incluidos los límites de los" " bloques de tiempo y los códigos que comienzan con cero." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Tiempo de ejemplo" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Código de seis dígitos" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 segundos" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 segundos" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7015,17 +7015,17 @@ msgstr "" "publicados en {ph0}RFC 6238 (en inglés){ph1}. Compare la implementación del " "navegador con ellos:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Ejecutar comprobaciones de referencia" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Lea el cálculo de la demostración" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -7034,7 +7034,7 @@ msgstr "" "Los casos de referencia usan ocho dígitos. La verificación también verifica " "sus resultados de seis dígitos." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7043,14 +7043,14 @@ msgstr "" "La verificación ejecuta métodos Java extraídos y la nueva demostración. El " "Android APK fue inspeccionado estáticamente." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Inspeccione el APK usted mismo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7062,7 +7062,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7072,18 +7072,18 @@ msgstr "" "El análisis de Android necesita un JDK 17 completo o posterior. Selecciónelo" " con {ph0} o {ph1}. Este caso usó JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Apunte REA al archivo del proveedor e inspeccione el APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7096,7 +7096,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7106,7 +7106,7 @@ msgstr "" "Una pregunta siguiente: {ph0}¿qué sucede cuando una cuenta usa ocho dígitos " "o un intervalo de tiempo diferente?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Fuentes" @@ -7122,7 +7122,7 @@ msgstr "Fuentes" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7136,7 +7136,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7144,7 +7144,7 @@ msgstr "" "{ph0}Casos de referencia RFC 6238{ph1} · {ph2}Datos de prueba de " "demostración{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7170,37 +7170,37 @@ msgstr "" "inicio de sesión de seis dígitos e intente una reconstrucción con un reloj " "ajustable." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Estudio de caso Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Copie el indicador de ejemplo Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Siga el cálculo del código de inicio de sesión" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Copie el comando de inspección APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -7209,26 +7209,26 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Inicio{ph1} / {ph2}Vitrinas{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Estudio de caso · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Encuentra la bandera en{ph0}un binario CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7239,18 +7239,18 @@ msgstr "" "sus reglas en ecuaciones y encontrar una entrada que haga que se imprima el " "programa original {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" "comprobador de banderas de cuadrados enmascarados * Fácil * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Ver el desafío original" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "De una respuesta binaria a una respuesta marcada" @@ -7261,7 +7261,7 @@ msgstr "De una respuesta binaria a una respuesta marcada" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7279,7 +7279,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7297,7 +7297,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7309,7 +7309,7 @@ msgstr "" "¡Correcto!{ph3}{ph4}Un script de Python resuelve las ecuaciones. REA " "captura el programa original aceptando el resultado.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7317,14 +7317,14 @@ msgstr "" "El desafío es de joseph, publicado en el repositorio oficial de " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "En este estudio de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7332,7 +7332,7 @@ msgstr "{ph0}Encuentra el código de verificación{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7340,7 +7340,7 @@ msgstr "{ph0}Leer una máscara{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7348,7 +7348,7 @@ msgstr "{ph0}Ensamblado a código legible{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7356,7 +7356,7 @@ msgstr "{ph0}Resuelve las ecuaciones{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7364,20 +7364,20 @@ msgstr "{ph0}Revisa la respuesta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Pruébalo tú mismo{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Encuentra el código de verificación" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7395,17 +7395,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Su agente de codificación" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Copiar" @@ -7416,7 +7416,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7428,7 +7428,7 @@ msgstr "" "indicador. Explique cómo funcionan las comprobaciones y luego verifique la " "respuesta con el programa original.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7437,12 +7437,12 @@ msgstr "" "Un mensaje de ejemplo, con el desafío descargado disponible localmente y un " "análisis del proveedor de programas de código máquina conectado." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Siga el indicador de entrada a su función" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7451,14 +7451,14 @@ msgstr "" "La referencia le da al agente un lugar para investigar, aunque se hayan " "eliminado los nombres de funciones originales del ejecutable." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Lea el corrector y sus dos ayudantes" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7471,7 +7471,7 @@ msgstr "" "resultado con un número almacenado. Su {ph0}- pasos de bytes a través {ph1} " "los bytes dan 26 máscaras." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7481,12 +7481,12 @@ msgstr "" "destino local se acorta para su visualización; las direcciones se refieren a" " la imagen importada de REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Un cheque revela un carácter" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7500,7 +7500,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." @@ -7508,7 +7508,7 @@ msgstr "" "La séptima comprobación selecciona solo una posición. {ph0}Figura " "abierta{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Lea la máscara y su objetivo desde el binario" @@ -7517,7 +7517,7 @@ msgstr "Lea la máscara y su objetivo desde el binario" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7529,12 +7529,12 @@ msgstr "" "razón {ph1} significa -21. El objetivo es un entero little-endian. Juntos, " "estos bytes le dicen al agente que {ph2}, entonces ese personaje es {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "De las instrucciones a un cheque legible" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7545,7 +7545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7553,7 +7553,7 @@ msgstr "{ph0}01{ph1} Inicio" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7561,7 +7561,7 @@ msgstr "{ph0}02{ph1} Seleccione" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7569,7 +7569,7 @@ msgstr "{ph0}03{ph1} Añadir" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7577,18 +7577,18 @@ msgstr "{ph0}04{ph1} Avance" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Comparar" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * instrucciones originales seleccionadas" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Resumen legible de C * one-check" @@ -7596,7 +7596,7 @@ msgstr "Resumen legible de C * one-check" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7604,7 +7604,7 @@ msgstr "{ph0}01 * Comience en cero.{ph1} {ph2} contiene la suma corriente." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7616,7 +7616,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7628,7 +7628,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7642,7 +7642,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7652,7 +7652,7 @@ msgstr "" "{ph0}05 * Comparar con el objetivo almacenado.{ph1} La persona que llama " "recibe la suma en {ph2}. Un desajuste salta a {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7662,12 +7662,12 @@ msgstr "" "La C es un resumen explicativo con nombres descriptivos y un bucle aplanado " "de 36 celdas." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Resuelve las 26 ecuaciones" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7679,13 +7679,13 @@ msgstr "" "1441. Las selecciones superpuestas dan ecuaciones que un pequeño script de " "Python puede resolver juntas." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Extracto de Python * solver" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7699,19 +7699,19 @@ msgstr "" "letras, dígitos, guiones bajos y llaves. La descarga completa incluye las 26" " máscaras y objetivos." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Descargue el solucionador completo" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Verifique la respuesta con el programa original" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7723,47 +7723,47 @@ msgstr "" "indicador resuelto. Cambiar un carácter seleccionado de {ph0} para {ph1} " "hace la primera suma 1440 en lugar de 1441, y el programa la rechaza." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Entrada" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Salida observada" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Código de salida" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Bandera del solucionador" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Un personaje cambió" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Mostrar el indicador recuperado y la salida capturada" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * salida del programa original" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Bandera de copia" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7773,12 +7773,12 @@ msgstr "" "desafío publicados por los organizadores, marcada después de resolver el " "binario." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Detalles de origen, identidad de destino y análisis" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7789,7 +7789,7 @@ msgstr "" "utilizando REA 4.1.0 con Ghidra 12.1.4 en Linux x64. El binario es un ELF " "x86-64 despojado, 15.248 bytes." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7812,7 +7812,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7822,12 +7822,12 @@ msgstr "" "{ph0}Compare con la fuente de los organizadores{ph1} · {ph2}Metadatos de " "desafío y bandera{ph3} · {ph4} Notas de evidencia REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Pruébalo tú mismo" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7836,13 +7836,13 @@ msgstr "" "Descargue el desafío original y el solucionador en una carpeta. Utilice el " "mensaje anterior para investigar con su agente o ejecute el script incluido." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * resuelve y ejecuta" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7854,7 +7854,7 @@ msgstr "" "programa. Resolviendo necesidades Python y {ph0}. Ejecutar el ejecutable " "original necesita Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Configure REA con su agente de codificación" @@ -7875,29 +7875,29 @@ msgstr "" "de DownUnderCTF. Encuentre las funciones de verificación, extraiga las " "máscaras y compare un indicador recuperado con el programa original." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Estudio de caso de CTF flag-checker" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Copie el mensaje de ejemplo de CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" "Ecuación de máscara CTF; desplácese horizontalmente en pantallas más " "pequeñas" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7908,42 +7908,42 @@ msgstr "" "14. Solo esa celda contribuye a la suma. Su código de carácter requerido es " "55, lo que significa que el carácter es 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Siga la verificación CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Copie la asamblea CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Verificación CTF legible por copia" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Copiar extracto del solucionador CTF" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Copiar bandera recuperada" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Copiar comandos del solucionador CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -7952,25 +7952,25 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Inicio{ph1} / {ph2}Vitrinas{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Estudio de caso * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Reconstruyendo DX-Ball {ph0}desde su ejecutable." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7979,14 +7979,14 @@ msgstr "" "El objetivo es una versión C mantenible del juego Windows de 1996. REA " "ayuda al agente a inspeccionar el original, una función a la vez." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7998,14 +7998,14 @@ msgstr "" "instrucciones, las personas que llaman y las lecturas de datos; el proyecto " "de reconstrucción implementa y prueba el resultado. {ph0}Figura abierta{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "En este estudio de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -8013,7 +8013,7 @@ msgstr "{ph0}El proyecto{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -8021,7 +8021,7 @@ msgstr "{ph0}Bandeja de sonido{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -8029,23 +8029,23 @@ msgstr "{ph0}Comprobando el resultado{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Continuar el trabajo{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "funciones C mantenidas" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "comparaciones con el código original" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "funciones con bytes compilados coincidentes" @@ -8056,7 +8056,7 @@ msgstr "funciones con bytes compilados coincidentes" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8066,12 +8066,12 @@ msgstr "" "Punto de control del proyecto: 7 de octubre de 2026. {ph0}Libro de " "progreso{ph1} · {ph2}Cobertura de la prueba{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "El proyecto hasta ahora" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8087,12 +8087,12 @@ msgstr "" "física de la pelota y la paleta, el manejo del encendido y la integración " "Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Encontrar el cálculo de la posición del sonido izquierda/derecha" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8111,17 +8111,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Su agente de codificación" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Copiar" @@ -8132,7 +8132,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8143,7 +8143,7 @@ msgstr "" "posicionamiento del sonido estéreo. Explique el cálculo y muestre el " "código.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8154,7 +8154,7 @@ msgstr "" "local disponible. La investigación a continuación muestra las consultas REA " "y la evidencia detrás de la respuesta." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8169,7 +8169,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8183,12 +8183,12 @@ msgstr "" "entrada de pila y operaciones de coma flotante. Esa discrepancia le dio al " "agente una razón concreta para seguir investigando." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "La primera vista del descompilador" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8197,18 +8197,18 @@ msgstr "" "La salida muestra una llamada de conversión. Al leer las instrucciones a " "continuación, se revela la entrada y el cálculo que alimenta esa llamada." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Tres preguntas respondidas a través de REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Recuperar la entrada faltante" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8219,14 +8219,14 @@ msgstr "" " las personas que llaman. Aquí, {ph0} expone la entrada entera que falta en " "la vista del descompilador." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Siga a la persona que llama para comprender la entrada" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8237,12 +8237,12 @@ msgstr "" " instrucciones anteriores {ph0} por 30; sumando 20 da la coordenada de la " "pantalla del ladrillo, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Leer los valores detrás de las direcciones de memoria" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8252,12 +8252,12 @@ msgstr "" "panorámica inicial. El agente ahora tiene los valores necesarios para la " "expresión C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "De los hallazgos de REA a C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8268,7 +8268,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8276,7 +8276,7 @@ msgstr "{ph0}01{ph1} Entrada" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8284,7 +8284,7 @@ msgstr "{ph0}02{ph1} Multiplicar" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8292,7 +8292,7 @@ msgstr "{ph0}03{ph1} Restar" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8300,18 +8300,18 @@ msgstr "{ph0}04{ph1} Escala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Regreso" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Original x86 · extracto" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Reconstruido C" @@ -8321,7 +8321,7 @@ msgstr "Reconstruido C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8341,7 +8341,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8357,7 +8357,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8375,7 +8375,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8392,7 +8392,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8405,7 +8405,7 @@ msgstr "" "resultado a {ph4}; original-las comparaciones x86 verifican el valor " "devuelto." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8416,23 +8416,23 @@ msgstr "" "aritmética y retorno. La lista completa a continuación también incluye las " "tiendas intermedias y la configuración y limpieza de funciones." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Montaje completo y pruebas de apoyo" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA resultado * 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Lo que suministra la persona que llama" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8442,54 +8442,54 @@ msgstr "" "La función de golpe de ladrillo en {ph0} escala su coordenada de mosaico en " "30, agrega 20 y luego la empuja antes de la llamada:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Lo que establecen las lecturas de los datos" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "Lecturas de bytes REA, decodificadas como dobles little-endian" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Dirección" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Valor" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Utilizado para" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Primera multiplicación" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Resta" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} inicialmente" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Escala de pan almacenada" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8506,7 +8506,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8516,12 +8516,12 @@ msgstr "" "{ph0}Fuente mantenida{ph1} · {ph2}Notas de investigación y referencias de " "evidencia{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Comprobando la función recuperada" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8531,12 +8531,12 @@ msgstr "" "coinciden con el original y sus bytes compilados coinciden con el " "ejecutable." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 casos de conducta" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8547,12 +8547,12 @@ msgstr "" "con la C mantenida. Cubren cada posición entera de 0 a 640 en cinco escalas " "panorámicas: 0, 0.5, 1, 20 y -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 bytes coincidentes" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8564,7 +8564,7 @@ msgstr "" "aplicar las reubicaciones revisadas y verificar las constantes a las que se " "hace referencia." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8579,18 +8579,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Lea los detalles de la repetición del compilador{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Continuar la investigación" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8602,7 +8602,7 @@ msgstr "" "funciones relevantes, recupere su estado y dependencias, luego compare la " "implementación con la original." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8612,7 +8612,7 @@ msgstr "" "instrucciones de configuración del proyecto DX-Ball y proporcione su " "objetivo original correspondiente. Entonces corre:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "En la caja de DX-Ball" @@ -8621,7 +8621,7 @@ msgstr "En la caja de DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8635,7 +8635,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8651,7 +8651,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8676,7 +8676,7 @@ msgstr "" "mantenido, pruebas originales-x86 y bytes de funciones compiladas " "coincidentes." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8684,7 +8684,7 @@ msgstr "" "DX-Ball investigación panorámica de sonido; desplácese horizontalmente en " "pantallas más pequeñas" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8700,70 +8700,70 @@ msgstr "" "independiente con el x86 original en 3205 casos y mediante la reproducción " "del compilador VC4.0 que coincide con 63 bytes." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Estudio de caso de reconstrucción DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Copie el mensaje de ejemplo" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Siga el cálculo de la posición del sonido izquierda/derecha" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Copiar extracto original de la asamblea" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Copiar función de panorámica de sonido" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Copie el ensamblaje completo de la bandeja de sonido" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Copie el comando de análisis DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Inicio{ph1} / Vitrinas" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Estudios de caso de REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8772,17 +8772,17 @@ msgstr "" "Android, juegos, Electron y un desafío CTF, con código, cifras y resultados " "comprobados." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Análisis de Android * APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Cómo genera un autenticador un código de inicio de sesión" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8793,22 +8793,22 @@ msgstr "" "publicado. Rastree los métodos de generación con REA, luego mueva un reloj " "de demostración para ver por qué el código cambia cada 30 segundos." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Lea el caso práctico de Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Análisis de programas de código máquina" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Resolver un comprobador de banderas CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8819,22 +8819,22 @@ msgstr "" "funciones de verificación, convierta máscaras y sumas en ecuaciones, luego " "verifique el indicador resuelto con el programa original." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Lea el estudio de caso de CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Reconstrucción nativa ·" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Cálculo de la posición del sonido izquierdo/derecho de DX-Ball" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8846,22 +8846,22 @@ msgstr "" "que llaman y las constantes numéricas conducen a una pequeña función C, " "comprobada con el comportamiento original y los 63 bytes compilados." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Lea el caso práctico de DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Rastreo de funciones" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Cómo Notion copia texto y HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8873,22 +8873,22 @@ msgstr "" "luego vea cómo un pequeño marcador HTML mantiene los datos enriquecidos del " "bloque conectados a una copia." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Lea el caso práctico de Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "Reconstrucción PC-98 DOS *" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Cómo TH04 apunta a un anillo de balas" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8899,17 +8899,17 @@ msgstr "" "coincidir sus operaciones de multiplicación, división y coordinación con C++" " legible, luego vea cómo producen un anillo dirigido al jugador." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Lea el caso práctico de TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Guías paso a paso" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8919,7 +8919,7 @@ msgstr "" "solicitud del navegador. Cada uno comienza con un mensaje y un objetivo " "concreto." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Lea las guías" @@ -8939,12 +8939,12 @@ msgstr "" "demostraciones: un autenticador de Android, DX-Ball, Notion, TH04 y un " "comprobador de indicadores de DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -8953,25 +8953,25 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Inicio{ph1} / {ph2}Vitrinas{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Estudio de caso * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Cómo copia Notion{ph0}texto y HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8981,12 +8981,12 @@ msgstr "" "través de la precarga y el proceso principal, hasta el escritor del " "portapapeles de Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Escritorio Notion 7.6.1 * JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "El puente dentro del paquete de escritorio de Notion" @@ -8998,7 +8998,7 @@ msgstr "El puente dentro del paquete de escritorio de Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9015,7 +9015,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9032,7 +9032,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9049,7 +9049,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9060,13 +9060,13 @@ msgstr "" "escribe el texto y HTML suministrados.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Un canal une los dos lados: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9076,14 +9076,14 @@ msgstr "" "principal. Al resolver los contenedores, se revelan las llamadas Electron " "detrás de esos nombres." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "En este estudio de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9091,7 +9091,7 @@ msgstr "{ph0}Sigue el puente del portapapeles{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9099,19 +9099,19 @@ msgstr "{ph0}Mantener la estructura de un bloque{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Más ejemplos y fuentes{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "¿A dónde va la operación de copia?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9131,17 +9131,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Su agente de codificación" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Copiar" @@ -9152,7 +9152,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9162,7 +9162,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Use REA para rastrear cómo Notion copia texto y HTML en el " "portapapeles del sistema. Muestre el código en cada paso.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9171,12 +9171,12 @@ msgstr "" "Un mensaje de ejemplo con el paquete de aplicaciones locales de Notion " "disponible para su agente de codificación." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA encuentra dónde comenzar a leer" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9187,13 +9187,13 @@ msgstr "" "la página y la llamada que envía una solicitud IPC. Ambos hallazgos vienen " "con rangos de origen en el paquete minimizado:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "Hallazgos REA → dos lugares para abrir" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9207,7 +9207,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9221,12 +9221,12 @@ msgstr "" "nombre le da al agente algo preciso que buscar en el paquete principal. Los " "cuatro extractos a continuación muestran la ruta que conecta." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Cuatro piezas cortas de código" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9235,13 +9235,13 @@ msgstr "" "Simplificado a partir del JavaScript empaquetado , con nombres de variables " "legibles. Se omiten los miembros no relacionados." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Comience en la API expuesta en la página" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9251,13 +9251,13 @@ msgstr "" "Este miembro proporciona el nombre del canal. La implementación de {ph0} nos" " dice cómo la solicitud sale del proceso de la página." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Resolver el contenedor de la precarga" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9268,14 +9268,14 @@ msgstr "" "respuesta de Electron. Ahora podemos buscar {ph0} en el lado del proceso " "principal." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Compruebe cómo está registrado el destinatario" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9285,12 +9285,12 @@ msgstr "" "El proceso principal usa otro envoltorio. Su {ph0} el método registra un " "{ph1} receptor para ese canal." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Encuentre la escritura y su verificación de remitente" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9301,13 +9301,13 @@ msgstr "" "los datos proporcionados a la API del portapapeles de Electron. El canal y " "los dos envoltorios resueltos conectan el método expuesto a esta llamada." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "¿Cómo mantiene su estructura un bloque copiado?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9318,27 +9318,27 @@ msgstr "" "datos del bloque localmente y coloca una IDENTIFICACIÓN en el HTML copiado " "para conectarlos." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Enlaces HTML a los datos de bloque guardados" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Leer el ID HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Encuentre la misma identificación local" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Restaurar datos de bloque Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9348,7 +9348,7 @@ msgstr "" "bloque cuando los ID coinciden; una entrada obsoleta devuelve solo texto y " "HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9357,24 +9357,24 @@ msgstr "" "Al pegar, Notion busca el ID HTML y lo compara con la copia guardada. Los ID" " coincidentes restauran los datos del bloque." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Formato de portapapeles grabado a partir de activos web almacenados en caché" " el 13 de julio de 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Más ejemplos y fuentes" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Otro ejemplo: Tablas de rebajas" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9383,12 +9383,12 @@ msgstr "" "Notion analiza Markdown en datos de bloque. Este ejemplo muestra cómo una " "tabla se convierte en encabezado y filas de datos." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Una tabla a través del analizador de rebajas de Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9397,13 +9397,13 @@ msgstr "" "Salida grabada de un analizador Markdown extraído. La tabla se convierte en " "filas y celdas." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Otra ruta: la conexión SQLite sin conexión" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9417,7 +9417,7 @@ msgstr "" "otro a un proceso de utilidad SQLite. Los lotes de declaraciones posteriores" " y los resultados viajan por ese puerto." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9427,7 +9427,7 @@ msgstr "" " por qué rastrear solo la solicitud inicial de IPC pierde la conversación " "posterior." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Fuentes y cómo leer los extractos" @@ -9435,7 +9435,7 @@ msgstr "Fuentes y cómo leer los extractos" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9453,7 +9453,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9469,7 +9469,7 @@ msgstr "" "guardadas ejecutaron módulos extraídos y arneses pequeños; sus resultados " "describen esas sondas en lugar de una sesión de IU de escritorio capturada." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9484,7 +9484,7 @@ msgstr "" "implementaciones de envoltura en el paquete." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9502,7 +9502,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9516,7 +9516,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9542,52 +9542,52 @@ msgstr "" "los contenedores IPC y el proceso principal, con breves extractos de código " "y un vistazo a su rico formato de portapapeles." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Estudio de caso Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Copie el indicador de análisis Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Copie el extracto de precarga de Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Copiar extracto del contenedor de invocación Notion" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Copie el extracto del contenedor del controlador Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Copiar extracto del receptor del portapapeles Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Restauración de datos enriquecidos del portapapeles al pegar" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Volver arriba" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -9596,25 +9596,25 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Inicio{ph1} / {ph2}Vitrinas{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Estudio de caso * Touhou 4: Historia de Lotus Land" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Reconstruyendo los TH04{ph0}patrones de bala." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9624,17 +9624,17 @@ msgstr "" "inspeccionar la función DOS original, luego siga sus instrucciones en C ++ " "legible." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 · DOS de 16 bits * C++ y ensamblado" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Ver la reconstrucción del TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "De las instrucciones originales a la fuente verificada" @@ -9645,7 +9645,7 @@ msgstr "De las instrucciones originales a la fuente verificada" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9661,7 +9661,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9679,7 +9679,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9695,7 +9695,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9707,7 +9707,7 @@ msgstr "" " comprobaciones grabadas del compilador cubren el código de generación de " "viñetas que contiene este ayudante.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9716,14 +9716,14 @@ msgstr "" "REA devuelve el código original y su evidencia de análisis. El proyecto TH04" " proporciona las comprobaciones de código fuente y compilador mantenidas." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "En este estudio de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9731,7 +9731,7 @@ msgstr "{ph0}El anillo de bala{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9739,7 +9739,7 @@ msgstr "{ph0}Qué devuelve REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9747,7 +9747,7 @@ msgstr "{ph0}Ensamblado a C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9755,18 +9755,18 @@ msgstr "{ph0}Comprobando la fuente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}El proyecto completo{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Cómo apunta un anillo al jugador" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9785,16 +9785,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Su agente de codificación" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Copiar" @@ -9805,7 +9805,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9816,7 +9816,7 @@ msgstr "" "lo apunta al jugador. Explique el cálculo y muestre el " "código.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9826,7 +9826,7 @@ msgstr "" "reconstrucción disponibles localmente." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9840,7 +9840,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9851,12 +9851,12 @@ msgstr "" " dirección del jugador 40 y la rotación de la plantilla 0. {ph0}Figura " "abierta{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "La plantilla de cocción en la fuente recuperada" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Ataque anular de Elly * extracto de la fuente" @@ -9865,7 +9865,7 @@ msgstr "Ataque anular de Elly * extracto de la fuente" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9875,13 +9875,13 @@ msgstr "" "Estas líneas seleccionan el patrón antes de la dificultad y el ajuste del " "rendimiento. {ph0}Lea la fuente del ataque{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Qué devuelve REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9893,12 +9893,12 @@ msgstr "" "cada bala. REA devuelve sus instrucciones, pseudocódigo y referencias. Tres" " partes de ese resultado explican el patrón." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Verifique la imagen de DOS antes de leer su código" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9907,7 +9907,7 @@ msgstr "" "La comprobación vincula el código cargado y los registros de reubicación al " "ejecutable suministrado. La ruta anterior se acorta para su visualización." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Lee el anillo multiplica y divide" @@ -9915,7 +9915,7 @@ msgstr "Lee el anillo multiplica y divide" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9927,12 +9927,12 @@ msgstr "" "luego la división usa el recuento leído de {ph1}. La fuente mantenida nombra" " ese campo {ph2}. La secuencia completa aparece a continuación." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Encuentra dónde se dirige el patrón hacia el jugador" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9945,12 +9945,12 @@ msgstr "" "anillo. Los nombres de origen hacen que esas direcciones sean legibles; REA " "permite al agente verificar las operaciones originales detrás de ellas." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Del ensamblado al C ++ legible" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9963,7 +9963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9971,7 +9971,7 @@ msgstr "{ph0}01{ph1} Índice" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9979,7 +9979,7 @@ msgstr "{ph0}02{ph1} Espacio" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9987,7 +9987,7 @@ msgstr "{ph0}03{ph1} Objetivo" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9995,18 +9995,18 @@ msgstr "{ph0}04{ph1} Rotar" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Tienda" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * instrucciones originales de 16 bits" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Resumen de anillo dirigido legible por C++ ·" @@ -10014,7 +10014,7 @@ msgstr "Resumen de anillo dirigido legible por C++ ·" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10028,7 +10028,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10044,7 +10044,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10059,7 +10059,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10074,7 +10074,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10088,7 +10088,7 @@ msgstr "" " como lo hace la conversión de bytes sin signo. La fuente circundante " "también convierte este ángulo y velocidad en velocidad." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10100,7 +10100,7 @@ msgstr "" "comprobaciones del compilador a continuación se aplican a la fuente " "mantenida en el proyecto vinculado." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Lea el anillo mantenido y apunte la fuente" @@ -10117,7 +10117,7 @@ msgstr "Lea el anillo mantenido y apunte la fuente" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10127,12 +10127,12 @@ msgstr "" "{ph0}Macro de anillo{ph1} · {ph2}Objetivo y fuente de velocidad{ph3} · " "{ph4}Representación de ángulos{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Comprobación de la fuente mantenida" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10142,12 +10142,12 @@ msgstr "" "generación de viñetas, incluido este ayudante, con su cadena de herramientas" " Turbo C++ 4.0 J anclada." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2.139 bytes coincidentes" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10156,12 +10156,12 @@ msgstr "" "El código compilado de generación de viñetas coincide con una sección de " "2139 bytes del ejecutable original." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Dos construcciones limpias" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10175,7 +10175,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10183,59 +10183,59 @@ msgstr "" "Grabado el 3 de octubre de 2026. {ph0}Leer las comprobaciones del " "compilador{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Identidad del objetivo y alcance del análisis" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Objetivo original" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156,258 bytes, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Entrada auxiliar" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} en la imagen cargada de REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Desplazamiento del archivo original" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, devuelto por {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Inspección de código grabado" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 de octubre de 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10246,7 +10246,7 @@ msgstr "" " al MAPA y la reubicación superpuesta." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10262,7 +10262,7 @@ msgstr "" "rangos informados." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10279,7 +10279,7 @@ msgstr "" " suministrado está anclada por su manifiesto de repositorio, con la " "procedencia independiente de volcado prístino aún abierta." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10290,12 +10290,12 @@ msgstr "" " tiempo y el comportamiento del hardware PC-98 tienen comprobaciones de " "tiempo de ejecución separadas en el proyecto de reconstrucción." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "La reconstrucción completa del TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10308,7 +10308,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10320,7 +10320,7 @@ msgstr "{ph0}Explore el repositorio TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10336,7 +10336,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10353,7 +10353,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10379,22 +10379,22 @@ msgstr "" "ensamblado y el C ++ recuperado para ver cómo se separa un anillo de balas y" " se apunta al jugador." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Estudio de caso del patrón de bala TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Copie el indicador de ejemplo TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10402,7 +10402,7 @@ msgstr "" "TH04 anillos de bala fijos y apuntados; desplácese horizontalmente en " "pantallas más pequeñas" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10415,27 +10415,27 @@ msgstr "" "misma cantidad; la primera viñeta resaltada apunta hacia el jugador. Ambos " "mantienen un espaciado de 16 unidades de ángulo, o 22.5 grados." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Copie la plantilla de cocción TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Siga el cálculo del anillo apuntado TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Copie el extracto de la asamblea TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Cálculo de anillo apuntado legible por copia" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Volver arriba" @@ -10927,597 +10927,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Mismo espaciado: 256 ÷ 16 = 16 unidades de ángulo = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Casos prácticos" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Primeros pasos" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Guías" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Código fuente" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Licencia MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Únete a la comunidad" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Síguenos en X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * fuente de script seleccionada" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Código fuente" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Salida esperada del formateador" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Instrucciones" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Llamador" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Constantes" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Función C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Botón" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API de precarga" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Archivo CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Su clic" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Solicitud capturada" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Script de exportación" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA resultado · resumen.extracto de ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Extracto de instrucciones REA * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "Extracto de la persona que llama REA * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Resultados de bytes REA * interpretados como dobles little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Extracto recuperado de C *" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Vitrinas →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Configuración seleccionada del script inspeccionado" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Resumen legible del controlador %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * instrucciones originales seleccionadas" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "ID de operador * Fuente de Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → agente * resultados seleccionados" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → agente * métodos y llamadores" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * Java descompilado seleccionado" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Resumen legible * interpretación del agente" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, cuerpo completo" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Descargar Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Descargar proveedor de análisis de Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → agente * resultados seleccionados" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agente * instrucciones seleccionadas" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agente → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → agente * séptima entradas" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Ejecutable original * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Descarga el desafío original" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Descargar solver" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA resultado * extracto de pseudocódigo" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → extracto de instrucciones del agente ·" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → extracto del agente * llamante" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agente → REA * dos {ph0} solicitudes" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Resultados de bytes REA * decodificados como dobles" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Comience con su propio objetivo" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Generando código" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Regla recuperada" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Reloj ajustable" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binario" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Comprobación del código" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Ecuaciones" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "¡Correcto!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Ejecutable" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Hallazgos REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Recuperado C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Validación" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Aplicación empaquetada" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "API expuesta" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Envoltorios IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Portapapeles" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Código DOS original" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Instrucciones REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Cálculo de ángulos" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Anillo de bala" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "API de página expuesta" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Llamada IPC del renderizador" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Enviado al portapapeles del sistema" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Guardado localmente por Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Entrada de rebajas" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Salida estructurada del analizador · extracto" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analiza tu propia app" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → agente * campos seleccionados" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → extracto de instrucciones del agente ·" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Resultado de la misma función · extracto del objetivo" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Correspondiente C ++ mantenido" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Macro de anillo * Rama TH04, extracto" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Ángulo y velocidad · extracto de la fuente" @@ -11551,7 +11551,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11569,7 +11569,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11590,7 +11590,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11611,7 +11611,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11630,7 +11630,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11643,14 +11643,14 @@ msgstr "" "aplicarlos. Después, verifica la instalación.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Reconstrucción * {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11661,7 +11661,7 @@ msgstr "" "agente de codificación y revise los cambios propuestos." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11670,7 +11670,7 @@ msgstr "Un ejemplo proporcionado · {ph0} y npm * Su agente de codificación" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11689,7 +11689,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11705,7 +11705,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11724,7 +11724,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11735,7 +11735,7 @@ msgstr "" " en {ph7} y escribe el archivo.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11750,7 +11750,7 @@ msgstr "{ph0} * líneas 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11763,7 +11763,7 @@ msgstr "" " predicción y la salida real.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11775,16 +11775,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Necesitarás {ph0} 22 (22.23.4+), 24 (24.22.1+) o 26+ (>=26.12.1). npm viene con {ph1}." +"Necesitarás {ph0} 22 (22.23.4+), 24 (24.22.1+) o 26+ (>=26.12.1). npm viene" +" con {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11792,20 +11794,20 @@ msgstr "No tengo {ph0}, ¿ o no estás seguro?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Si {ph0} muestra v22.23.4+, v24.22.1+ o v26.12.1+, ya puedes continuar. Si muestra " -"una versión anterior o \"not recognized\" / \"command not found\", instala " -"{ph1} 24 LTS:" +"Si {ph0} muestra v22.23.4+, v24.22.1+ o v26.12.1+, ya puedes continuar. Si " +"muestra una versión anterior o \"not recognized\" / \"command not found\", " +"instala {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11819,7 +11821,7 @@ msgstr "{ph0} * extracto de fuente de ejemplo" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11830,9 +11832,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11840,7 +11842,7 @@ msgstr "{ph0} * fuente de ejemplo" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11855,7 +11857,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11872,7 +11874,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11883,7 +11885,7 @@ msgstr "" "{ph3} da 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11897,7 +11899,7 @@ msgstr "REA * cargado {ph0} * líneas seleccionadas" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11916,7 +11918,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11929,28 +11931,28 @@ msgstr "" "demo donde pueda cambiar la hora.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * Miembro API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * Ayudante de IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "principal/{ph0} * ayudante del manejador" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11969,7 +11971,7 @@ msgstr "Cambiar al modo oscuro" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11985,18 +11987,18 @@ msgstr "" "capturado con su agente." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Modelos especializados{ph0}Ensayo" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "¿Necesita la ingeniería inversa un modelo más grande?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -12005,12 +12007,12 @@ msgstr "" "Lo que la reconstrucción de Touhou sugiere sobre los modelos generales, los " "especializados y el aprendizaje a partir de los resultados del compilador." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Por N0zoM1z0 · 13 de octubre de 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Saltar al contenido" @@ -12019,37 +12021,37 @@ msgstr "Saltar al contenido" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Inicio{ph1} / {ph2}Blog{ph3} / Modelos e ingeniería inversa" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "ensayo" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "¿La ingeniería inversa necesita un modelo más grande?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Por N0zoM1z0 · 13 de octubre de 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Ideas clave" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12062,7 +12064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12075,7 +12077,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12088,7 +12090,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12101,7 +12103,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12112,14 +12114,14 @@ msgstr "" "tiempo y el costo.{ph1} Eso es lo que quiero medir para todo el flujo de " "trabajo del agente de IA." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "En este artículo" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12127,7 +12129,7 @@ msgstr "{ph0}Qué cambiaron los modelos más capaces{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12135,7 +12137,7 @@ msgstr "{ph0}¿Por qué especializarse?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12143,7 +12145,7 @@ msgstr "{ph0}¿Dónde debería almacenarse esta experiencia?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12151,7 +12153,7 @@ msgstr "{ph0}Aprendiendo el próximo experimento útil{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12159,7 +12161,7 @@ msgstr "{ph0}Ingeniería inversa y aprendizaje por refuerzo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12167,7 +12169,7 @@ msgstr "{ph0}Cuando el verificador está equivocado{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12175,18 +12177,18 @@ msgstr "{ph0}Una comparación que vale la pena realizar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}¿Qué tipo de agente de IA sugiere esto?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Qué cambiaron los modelos más capaces" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12202,7 +12204,7 @@ msgstr "" "cambiando de modelo, los repositorios han ido manteniendo un registro de lo " "que cada sesión logró recuperar." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12216,12 +12218,12 @@ msgstr "" "posterior tiene éxito donde el trabajo anterior se estancó, los cambios en " "las fuentes muestran qué hizo posible ese progreso." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Los valores temporales debían seguir siendo válidos al mismo tiempo" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12243,7 +12245,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12257,7 +12259,7 @@ msgstr "" "{ph2}GPT-6.1-Sol examinó el problema nuevamente{ph3}, propuso una hipótesis " "útil sobre la vida útil de estas variables temporales." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12274,7 +12276,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12289,7 +12291,7 @@ msgstr "" "específicos, {ph0}una recompilación limpia del código fuente confirmó que la" " función completa coincidía{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12302,7 +12304,7 @@ msgstr "" "refinar esa hipótesis hasta convertirla en una disposición de código fuente " "que coincidiera." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Un gráfico de flujo de control diferente" @@ -12311,7 +12313,7 @@ msgstr "Un gráfico de flujo de control diferente" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12334,7 +12336,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12352,7 +12354,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12367,7 +12369,7 @@ msgstr "" "locales durante mucho tiempo antes de encontrar una mejor manera de expresar" " el trabajo circundante." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12382,7 +12384,7 @@ msgstr "" "una comparación controlada ayudaría a separar el efecto del modelo del de la" " experiencia que recibió." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12398,12 +12400,12 @@ msgstr "" "razonamiento? ¿Cuánto podría aprender un modelo trabajando repetidamente con" " ese compilador y código?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "¿Por qué podría funcionar bien un modelo de IA especializado?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12418,7 +12420,7 @@ msgstr "" "repositorios respaldan esto con ejemplos útiles: bucles relacionados y " "arreglos de ayuda han proporcionado hipótesis en todos los juegos." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12438,7 +12440,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12455,7 +12457,7 @@ msgstr "" "compilador. Eso sugirió una hipótesis más prometedora para {ph2}reconstruir " "{ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12465,7 +12467,7 @@ msgstr "" " el diseño requerido sin agregar almacenamiento. Entonces coincidió la " "función completa." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12477,7 +12479,7 @@ msgstr "" "especializado para este compilador podría ver muchos de estos casos y " "aprender qué variaciones del código fuente vale la pena probar primero." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12497,7 +12499,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12517,14 +12519,14 @@ msgstr "" "expectativa inicial, pero cada objetivo nos dice si aplica. Un modelo " "especializado necesitaría distinguir estos contextos." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "¿Dónde debería almacenarse esta experiencia?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12540,7 +12542,7 @@ msgstr "" "de trabajo del proyecto. Esa memoria incluye lecciones del compilador, junto" " con la fuente y los experimentos fallidos que los hicieron útiles." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12557,7 +12559,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12576,7 +12578,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12593,7 +12595,7 @@ msgstr "" "decidir qué significa el resultado para su próximo intento. Conocer el " "patrón relevante es sólo el comienzo de ese proceso." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12607,12 +12609,12 @@ msgstr "" "capacitación: mejor generación de candidatos, mejores decisiones después de " "la retroalimentación, o ambas." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Aprendiendo el próximo experimento útil" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12626,7 +12628,7 @@ msgstr "" "resultado puede reducir las posibilidades restantes y sugerir un próximo " "experimento más útil." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12639,32 +12641,32 @@ msgstr "" "más información. Cada uno de los siguientes experimentos ayudó a identificar" " lo que aún era necesario cambiar." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "experimento" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Lo que nos enseñó su resultado" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Pruebe una forma diferente de copiar los resultados." -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "El código de copia cambia, pero la función aún difiere." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Utilice los valores devueltos directamente" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12672,12 +12674,12 @@ msgstr "" "La copia sigue el patrón original, pero el almacenamiento temporal aún " "difiere." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Mantener todas las variables temporales válidas al mismo tiempo." -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12686,19 +12688,19 @@ msgstr "" "Se almacenan por separado, pero uno aún se superpone a un valor utilizado " "más adelante para las comprobaciones de colisiones." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Mantenga el valor de verificación de colisiones separado" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Una recompilación limpia del código fuente confirma la coincidencia " "completa." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12707,7 +12709,7 @@ msgstr "" "Experimentos seleccionados de la reconstrucción de la función de ataque " "anterior, agrupados según lo que nos enseñaron." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12723,7 +12725,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12739,7 +12741,7 @@ msgstr "" "revisar la representación de la fuente o inspeccionar la evidencia " "nuevamente." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12753,14 +12755,14 @@ msgstr "" "elección, junto con parte del comportamiento que queremos que aprenda el " "modelo." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" "Por qué la ingeniería inversa es interesante para el aprendizaje por " "refuerzo" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12774,7 +12776,7 @@ msgstr "" "repetibles. El agente puede compilar un candidato, inspeccionar la " "discrepancia y utilizar esa observación para elegir el siguiente paso." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12792,7 +12794,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12815,7 +12817,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12832,7 +12834,7 @@ msgstr "" "programa original manejaba los cálculos de punto flotante{ph1}. Antes de que" " el agente pudiera probar una corrección útil, tenía que decidir qué medir." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12844,12 +12846,12 @@ msgstr "" "verificación, podemos investigar hasta dónde puede llegar una política de " "búsqueda aprendida." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Cuando el verificador está equivocado" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12860,7 +12862,7 @@ msgstr "" "entorno de aprendizaje. Llamo oracle a esa referencia o verificador. Aunque " "la respuesta sea repetible, debemos entender qué verifica realmente." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12884,7 +12886,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12899,7 +12901,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12916,7 +12918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12933,7 +12935,7 @@ msgstr "" "casos en los que se aplica. De manera similar, una coincidencia de " "instrucciones debe entenderse en términos de los bytes y datos que verifica." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12952,7 +12954,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12965,12 +12967,12 @@ msgstr "" "los comentarios que le damos, comprender esos comentarios también se vuelve " "más importante." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Una comparación que vale la pena realizar" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12987,7 +12989,7 @@ msgstr "" "versión capacitada con RL nos permitirían examinar qué agrega la " "capacitación." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -13001,7 +13003,7 @@ msgstr "" " disponible. Las pruebas repetidas ayudarían a distinguir una estrategia de " "búsqueda confiable de una solución candidata que tiene éxito por casualidad." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -13017,7 +13019,7 @@ msgstr "" " trabajo necesario para alcanzarla. Medirlos por separado revelaría esa " "división del trabajo." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -13032,7 +13034,7 @@ msgstr "" "código fuente relacionado y mantendría sus respuestas verificadas fuera de " "los datos de entrenamiento y de la biblioteca de recuperación." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -13048,7 +13050,7 @@ msgstr "" "incluida la compilación, mostraría si esa calidad produce un flujo de " "trabajo eficiente. Los costos de capacitación deben medirse por separado." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -13066,7 +13068,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13088,7 +13090,7 @@ msgstr "" "orientan el siguiente experimento; antes de premiar una mayor cercanía, la " "contrastaría con la comprobación completa de aceptación." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13104,12 +13106,12 @@ msgstr "" " entrenamiento? Las respuestas nos ayudarían a decidir dónde es más útil " "cada tipo de modelo." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "¿Qué tipo de agente de IA sugiere esto?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13125,7 +13127,7 @@ msgstr "" "de tener sentido, el agente más amplio podría volver a la evidencia objetivo" " o investigar la medición en sí." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13137,7 +13139,7 @@ msgstr "" "conserva la libertad de cambiar la dirección que hizo posibles los avances " "anteriores." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13151,7 +13153,7 @@ msgstr "" "decisiones requieren un juicio amplio y cuáles mejoran a través de " "experiencias repetidas con un oficio en particular." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13168,7 +13170,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13179,12 +13181,12 @@ msgstr "" "gustaría usar ese registro para realizar la comparación y ver qué " "aprendemos." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Atribución de evidencia y modelo" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13198,7 +13200,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13225,7 +13227,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13250,7 +13252,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13275,7 +13277,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13302,7 +13304,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13314,7 +13316,7 @@ msgstr "" "punto flotante{ph3}, {ph4}TH08 investigación numérica{ph5} y {ph6}TH09 " "reconstrucción para guardar reproducciones{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13340,22 +13342,22 @@ msgstr "" "especializados y cómo aprender a proponer mejores hipótesis a partir de los " "comentarios del compilador." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "En esta página" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modelos y ensayo de ingeniería inversa." -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Experimentos de reconstrucción seleccionados." -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Volver arriba" @@ -13364,7 +13366,7 @@ msgstr "Volver arriba" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13376,68 +13378,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Casos prácticos{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Estudios de caso de REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Análisis de Android * APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Cómo genera un autenticador un código de inicio de sesión" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Lea el caso práctico de Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Rastreo de funciones" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Cómo Notion copia texto y HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Lea el caso práctico de Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Reconstrucción nativa ·" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Cálculo de la posición del sonido izquierdo/derecho de DX-Ball" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Lea el caso práctico de DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Opciones de configuración" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13448,7 +13450,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13460,7 +13462,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13468,7 +13470,7 @@ msgstr "{ph0}1. Prepara tu ordenador{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13476,7 +13478,7 @@ msgstr "{ph0}2. Elige un agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13484,7 +13486,7 @@ msgstr "{ph0}3. Conecta REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13492,18 +13494,18 @@ msgstr "{ph0}4. Prueba una investigación{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Otros objetivos y proveedores de análisis{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Prepara tu ordenador" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13513,7 +13515,7 @@ msgstr "" "de programación local puede leer esos archivos y ejecutar herramientas por " "ti." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13524,7 +13526,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13536,7 +13538,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13547,17 +13549,17 @@ msgstr "" "this system\"{ph1} al ejecutar {ph2}, usa {ph3} en su lugar. Para npm, usa " "{ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Crea una carpeta de trabajo para tu agente" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "En la terminal, crea una carpeta para el ejercicio y entra en ella:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13566,12 +13568,12 @@ msgstr "" "Mantén esta terminal abierta para el siguiente paso. Si ya tienes una " "carpeta de trabajo, abre esa en su lugar." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Elige un agente de programación" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13581,12 +13583,12 @@ msgstr "" " inspección. Elige una aplicación cliente de la lista y abre sus " "instrucciones si nunca la has usado." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · usa tu cuenta de ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13597,39 +13599,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Instalación e inicio de sesión de Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf o VS Code · usa un editor" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Instala el editor para tu sistema operativo e inicia sesión." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Abre la carpeta rea-work que creaste en el paso 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · usa tu cuenta de Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Instala con el comando de tu sistema operativo:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13643,13 +13645,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Instalación de Claude Code y opciones de cuenta{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · usa un chat de escritorio" @@ -13659,7 +13661,7 @@ msgstr "Claude Desktop · usa un chat de escritorio" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13671,7 +13673,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13683,19 +13685,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Instalación de OpenCode y configuración de modelos{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Todos los clientes compatibles y sus identificadores de configuración" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13705,12 +13707,12 @@ msgstr "" "La versión 6.4.0 de npm admite los clientes de abajo. Usa el identificador " "con {ph0} cuando quieras elegir un cliente de forma explícita." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Cliente" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID de configuración" @@ -13720,7 +13722,7 @@ msgstr "ID de configuración" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13740,7 +13742,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13750,13 +13752,13 @@ msgstr "" "{ph0}Configuración de clientes y solución de problemas{ph1} · " "{ph2}Disponibilidad en versiones publicadas{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · conecta en su ordenador alojado" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13769,29 +13771,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Instrucciones del conector de Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Conecta REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Copia este prompt en tu agente de programación:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Para un cliente concreto, añade su identificador de configuración:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13803,7 +13805,7 @@ msgstr "" "de clientes de REA, usa las flechas para moverte, Espacio para seleccionar " "tu cliente y Enter para continuar." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13812,7 +13814,7 @@ msgstr "" "MCP es la conexión que permite a tu agente llamar a REA. La skill le " "proporciona un flujo de trabajo para investigar software." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13823,7 +13825,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13833,21 +13835,21 @@ msgstr "" "Sustituye {ph0} por el identificador de configuración de tu cliente. Una " "comprobación correcta muestra {ph1}. Después, pide a tu agente:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Comprueba que REA está conectado y muéstrame qué herramientas de REA puedes " "usar." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Prueba tu primera investigación" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13859,7 +13861,7 @@ msgstr "" "exportación{ph1} botón. Su agente puede inspeccionar su código sin instalar " "ni iniciar Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Tu agente de programación" @@ -13873,7 +13875,7 @@ msgstr "Tu agente de programación" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13887,7 +13889,7 @@ msgstr "" "Exportar notas. Mostrar dónde {ph4} está escrito, qué campos contiene y los " "archivos y líneas relevantes.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Busque una breve explicación con referencias de archivos y líneas:" @@ -13896,7 +13898,7 @@ msgstr "Busque una breve explicación con referencias de archivos y líneas:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13910,13 +13912,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Comprueba una predicción en el ejercicio guiado →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Descarga el ejemplo tú mismo o usa tu propia aplicación" @@ -13924,14 +13926,14 @@ msgstr "Descarga el ejemplo tú mismo o usa tu propia aplicación" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Descargar ZIP de ejemplo{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13942,7 +13944,7 @@ msgstr "" " camino al {ph0} carpeta y la misma pregunta de exportación." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13952,12 +13954,12 @@ msgstr "" "Usa REA para inspeccionar la aplicación en {ph0}. Averigua cómo exporta los " "datos y muestra los archivos y las líneas relevantes." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Analiza otro tipo de software" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13966,12 +13968,12 @@ msgstr "" "Elige la sección correspondiente a tu objetivo. Un proveedor de análisis es " "la herramienta local que REA usa para ese tipo de software." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Ejecutables y bibliotecas nativas · Hopper, Ghidra o IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13981,47 +13983,47 @@ msgstr "" " host es tu sistema operativo; el objetivo es el programa que quieres " "inspeccionar." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Proveedor de análisis" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "No disponible" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Distribuciones compatibles" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · experimental" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Perfiles verificados" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Perfil sin interfaz gráfica verificado" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Consulta la guía del proveedor" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · deja que la configuración lo instale o lo conecte" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -14033,7 +14035,7 @@ msgstr "" "cuando Hopper se abra por primera vez. En Linux, la configuración prepara la" " demostración compatible y su pantalla privada." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -14043,7 +14045,7 @@ msgstr "" "Omarchy. Hopper es software comercial; su demostración tiene límites " "definidos por el fabricante." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14057,18 +14059,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Configuración de Hopper y solución de problemas{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · instala la herramienta de análisis gratuita y Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14079,7 +14081,7 @@ msgstr "" "ordenador." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14092,7 +14094,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14108,7 +14110,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14116,7 +14118,7 @@ msgstr "{ph0}Descargar un JDK{ph1} · {ph2}Descargar Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14126,7 +14128,7 @@ msgstr "" "Comprueba Java. El primer comando muestra {ph0}; usa esa carpeta para {ph1}." " El segundo confirma que el compilador está instalado:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14144,7 +14146,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14154,12 +14156,12 @@ msgstr "" "{ph0}Configuración de Ghidra y requisitos de arquitectura{ph1} · {ph2}Guía " "de Ghidra en Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · conecta una instalación existente" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14171,7 +14173,7 @@ msgstr "" "original abierto o un supervisor sin interfaz gráfica que abra una base de " "datos privada." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14184,7 +14186,7 @@ msgstr "" "opcional de la interfaz gráfica tiene sus propios requisitos de versión y " "plataforma." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14196,14 +14198,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Perfiles de IDA, ejemplos de registro y plataformas verificadas{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14214,18 +14216,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Sigue un ejemplo de análisis nativo{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Sitios web, Android, .NET, firmware y otros objetivos" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14234,110 +14236,110 @@ msgstr "" "Abre la guía del tipo de objetivo que tienes. Cada guía indica las " "herramientas adicionales, los hosts compatibles y el primer comando." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Objetivo" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Herramientas necesarias" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Guía" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Abrir guía{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Sitio web" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / paquetes" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "APK de Android" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Dispositivo Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Recursos de Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Proyecto JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / fallo de Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Señales lógicas" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Comportamiento de procesos" @@ -14353,7 +14355,7 @@ msgstr "Comportamiento de procesos" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14363,18 +14365,18 @@ msgstr "" "{ph0}Guía de Flutter{ph1} · {ph2}Paquetes y recursos{ph3} · {ph4}Bytecode de" " EVM{ph5} · {ph6}Todas las guías de investigación{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Usa REA desde una terminal" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Comandos CLI, instalación global y curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14384,7 +14386,7 @@ msgstr "" "Sustituye {ph0} por un nombre o una dirección de función de la lista de " "funciones del objetivo. Ghidra debe estar configurado previamente." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14393,7 +14395,7 @@ msgstr "" "En macOS o Linux también puedes usar el instalador curl después de preparar " "Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14403,12 +14405,12 @@ msgstr "" "configuración. En los clientes que son editores, activa REA en los ajustes " "MCP y autoriza sus herramientas en el chat del agente." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL y rutas con espacios" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14420,17 +14422,17 @@ msgstr "" " entorno Linux y usa allí rutas de Linux. Los proveedores sin interfaz " "gráfica se ejecutan en el mismo host que REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Comando de configuración para Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Actualiza o elimina REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14441,7 +14443,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14455,52 +14457,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Detalles de actualización y desinstalación{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Copiar el comando de configuración de REA para Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Copiar comando" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Aviso de investigación de Copy Notes" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14510,12 +14512,12 @@ msgstr "" "Instala primero curl y unzip si faltan. En Debian o Ubuntu, ejecuta {ph0}; " "en otras distribuciones, usa tu gestor de paquetes." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Cierra la terminal, ábrela de nuevo y después ejecuta:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14530,7 +14532,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14540,19 +14542,19 @@ msgstr "" "{ph0}Configuración de Cursor{ph1} · {ph2}Configuración de Windsurf / Devin " "Desktop{ph3} · {ph4}Configuración de VS Code y Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · elige un modelo de IA" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Prepara el archivo de registro de IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14568,7 +14570,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14581,7 +14583,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14594,22 +14596,22 @@ msgstr "" " binario original en IDA e inicia el complemento de ese servidor antes de " "pedir a REA que lo inspeccione." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Base de datos SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode de EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Instala Codex con el comando de tu sistema operativo:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14620,7 +14622,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14631,12 +14633,12 @@ msgstr "" "para macOS (.pkg){ph1}, ábrelo y sigue sus instrucciones. Después, vuelve a " "abrir Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "¿Ya usas Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14648,7 +14650,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14658,7 +14660,7 @@ msgstr "" "Revisa y aprueba el plan, vuelve a abrir Claude y {ph0}comprueba la conexión" " en el paso 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14669,12 +14671,12 @@ msgstr "" "instalación nueva de macOS o Linux arm64, compila el descompilador nativo " "para tu ordenador antes de continuar." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Compila el descompilador nativo de Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14687,7 +14689,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14697,7 +14699,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14707,19 +14709,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · instrucciones de compilación nativa{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Después, comprueba Ghidra y guarda sus rutas para tu cliente:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14727,13 +14729,13 @@ msgstr "¿Por qué {ph0} da 220 en la Calculadora?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Cómo funciona{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14743,22 +14745,22 @@ msgstr "" "sitio web. REA le da herramientas para examinar el código que explica la " "respuesta." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Primeros pasos" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Ver un ejemplo ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Cómo funciona" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14769,48 +14771,48 @@ msgstr "" "programa. Con REA, tu agente puede seguir el código, explicar una función y " "ayudarte a recrearla." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Pregunta por una función" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Dale a tu agente un programa o una página y una pregunta." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Examina el programa" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" "REA devuelve código, referencias y observaciones durante la ejecución." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Entiéndelo y prueba un cambio" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "Tu agente usa los hallazgos para explicar o recrear la función." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Sigue las instrucciones paso a paso" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Hazle la misma pregunta a tu agente" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14819,7 +14821,7 @@ msgstr "" "Comience a las 6. Añadir 0.001 cada actualización sin colisión, mientras que" " la velocidad es inferior 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14827,7 +14829,7 @@ msgstr "" "Explora una función de una aplicación o juego publicado, con código y " "resultados comprobados." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14837,7 +14839,7 @@ msgstr "" "Después mueve el reloj de demostración para ver por qué cambia cada 30 " "segundos." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14846,7 +14848,7 @@ msgstr "" "Sigue el JavaScript empaquetado de Notion hasta el portapapeles del sistema " "y descubre cómo una copia conserva datos enriquecidos de los bloques." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14855,12 +14857,12 @@ msgstr "" "Recupera cómo la posición de una pelota se convierte en sonido a izquierda o" " derecha en un juego de Windows de 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Elige tu objetivo." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14871,7 +14873,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14890,14 +14892,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Ejemplo de solicitud * Sitio web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Sí, esta." @@ -14910,7 +14912,7 @@ msgstr "Sí, esta." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14925,7 +14927,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14939,18 +14941,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Vea el estudio de caso de DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Copie el mensaje del proyecto del sitio web" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Copiar mensaje de reconstrucción del juego" @@ -14962,7 +14964,7 @@ msgstr "Copiar mensaje de reconstrucción del juego" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14974,7 +14976,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14982,23 +14984,23 @@ msgstr "{ph0}Casos →{ph1} — investigaciones y demostraciones interactivas." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — métodos y notas sobre reconstrucción." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Ver la investigación completa de la Calculadora" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Probar un proyecto más grande" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -15007,7 +15009,7 @@ msgstr "" "Probemos dos ejemplos: cambiar la velocidad de un juego y recrear el botón %" " de la Calculadora." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -15016,7 +15018,7 @@ msgstr "" "El juego se acelera mientras corres. Para recrearlo con un control de " "velocidad, primero debemos averiguar cómo cambia la velocidad." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Pregunta por la velocidad" @@ -15029,7 +15031,7 @@ msgstr "1. Pregunta por la velocidad" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15038,12 +15040,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Pregunta de ejemplo · Juego del " "dinosaurio" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Encuentra la regla de velocidad" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -15053,12 +15055,12 @@ msgstr "" "empieza en 6 y aumenta un poco en cada actualización mientras sea inferior a" " 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Juega con el resultado" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15067,7 +15069,7 @@ msgstr "" "Recreamos esa regla en el minijuego de abajo y añadimos un control de " "velocidad. Pulsa Jugar y elige tu velocidad." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15076,7 +15078,7 @@ msgstr "" "Activa JavaScript para jugar. Puedes seguir leyendo la regla y abrir el " "código fuente de abajo." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15085,7 +15087,7 @@ msgstr "" "El botón % hace cosas distintas después de + y ×. Busquemos ambas reglas y " "probémoslas en una pequeña calculadora." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Pregunta por el botón %" @@ -15098,19 +15100,19 @@ msgstr "1. Pregunta por el botón %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Pregunta de ejemplo · Calculadora" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Encuentra ambas reglas" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15119,19 +15121,19 @@ msgstr "" "REA ayuda al agente a leer el código del botón %. Este aplica dos reglas " "diferentes:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Prueba el botón %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "Recreamos ambas reglas abajo. Elige + o ×, pulsa % y luego =." #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15140,7 +15142,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15149,13 +15151,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — informa de un error o solicita una función." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Configuración para tu plataforma:" @@ -15163,14 +15165,14 @@ msgstr "Configuración para tu plataforma:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Otras formas de instalación: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15185,7 +15187,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15200,7 +15202,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15212,7 +15214,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15223,7 +15225,7 @@ msgstr "" "instalador. En Linux, el comando de configuración predeterminado es {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15235,67 +15237,67 @@ msgstr "" " sus funciones y cadenas, y después explica la parte que procesa la entrada " "del usuario con referencias al código." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Colaboradores" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Saltar al contenido" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Inicio{ph1} / Colaboradores" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Lo construimos juntos." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Gracias a todas las personas que ayudan a mejorar REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15304,22 +15306,22 @@ msgstr "" "Código, documentación, pruebas, traducciones e ideas: hay muchas formas de " "colaborar." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Cómo colaborar" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Únete a la conversación →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Colaboradores" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Buscar colaboradores" @@ -15327,14 +15329,14 @@ msgstr "Buscar colaboradores" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" "De la {ph0}lista de colaboradores de GitHub{ph1} · Actualizada el {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "No se encontraron colaboradores. Prueba con otro nombre de usuario." @@ -15351,12 +15353,12 @@ msgid "" msgstr "" "Conoce a quienes aportan código, documentación, pruebas e ideas a REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nombre de usuario de GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Volver arriba" diff --git a/website/locales/fa/messages.po b/website/locales/fa/messages.po index d69ff70bb71..dc6d0a86074 100644 --- a/website/locales/fa/messages.po +++ b/website/locales/fa/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}خانه{ph1} / وبلاگ" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "وبلاگ." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "افکار در مهندسی معکوس." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "بازسازی بازی{ph0}مقاله" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "انقلاب صنعتی در مهندسی معکوس" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "چه دستی دوباره و بازسازی TH08, TH095 و TH04 به من آموخت در مورد عوامل, تأیید" " و دانش است که ترکیبات در سراسر پروژه." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "مقاله را بخوانید" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "توسط N0zoM1z0 * 10 اکتبر 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -100,38 +100,38 @@ msgid "" msgstr "" "افکار در مهندسی معکوس ، با استفاده از تجربه عملی با REA و عوامل هوش مصنوعی." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -140,122 +140,122 @@ msgstr "" "REA-پیدا کردن چگونه نرم افزار کار می کند. مهندسی معکوس با عامل برنامه نویسی " "شما." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "صفحهٔ اصلی REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "ناوبری اصلی" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA در GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "به REA در Discord بپیوندید" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "REA را در X دنبال کنید" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -264,35 +264,35 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "مقاله * بازسازی توهو" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "انقلاب صنعتی در مهندسی معکوس" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "توسط N0zoM1z0 * 10 اکتبر 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "نکات اصلی" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -305,7 +305,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -319,7 +319,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -331,7 +331,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -344,7 +344,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -354,65 +354,65 @@ msgstr "" "{ph0}ما در روزهای اولیه انقلاب صنعتی RE هستیم.{ph1} روش ها هنوز در حال شکل " "گرفتن هستند. هنوز چيزاي زيادي براي کشف کردن باقي مونده" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "چگونه ترکیبات تجربه" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "استقلال عمل" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "دستیار" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "اعتبارسنجی" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "مرجع اعتبارسنجی" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "مخزن کد" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "حافظهٔ کاری" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -421,7 +421,7 @@ msgstr "کد ، شواهد,{ph0}چک ها و درس ها" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -430,26 +430,26 @@ msgstr "عدم تطابق{ph0}{ph1}فرضیه را بازنگری کنید{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "استفادهٔ دوباره" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -458,14 +458,14 @@ msgstr "" "هر پروژه با نقطه شروع بهتر از پروژه بعدی باقی می ماند. که شامل اصلاح چک ها " "هم ميشه وقتي که ما يه شکاف پيدا مي کنيم" -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "در این مقاله" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -473,7 +473,7 @@ msgstr "{ph0}آگوست 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -481,7 +481,7 @@ msgstr "{ph0} TH08: ادامه{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -489,7 +489,7 @@ msgstr "{ph0}دو رویکرد{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -497,7 +497,7 @@ msgstr "{ph0} TH095: ترکیب{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -505,7 +505,7 @@ msgstr "{ph0} TH04: در سراسر معماری{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -513,7 +513,7 @@ msgstr "{ph0}از دقیق تا قابل خواندن{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -521,18 +521,18 @@ msgstr "{ph0}شیفت صنعتی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "آنچه در آگوست 2026 تغییر کرد" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -546,7 +546,7 @@ msgstr "" "تست می کردم. ادامه دادن به این معنی بود که بیشتر وقت خودم را صرف کار بعدی می" " کردم. همچنین به این معنی بود که یک تصویر بزرگ در ذهنم نگه دارم." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -559,7 +559,7 @@ msgstr "" "این مقاله است. این روش می تواند در جای دیگر مفید باشد ، اما هر فیلد باید " "مشخص کند که چه چیزی را می تواند با یک مرجع قابل اعتماد بررسی کند." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -571,7 +571,7 @@ msgstr "" "مامور چقدر ميتونه با دسترسي به برنامه و ابزار توسعه معمولي به اينجا برسه " "بازسازی توهو به من یک پروژه قابل توجهی داد که در آن می توانستم بفهمم." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -588,7 +588,7 @@ msgstr "" "توانم توجه بیشتری به جهت پروژه و اینکه آیا چک های آن قابل اعتماد است ، صرف " "کنم." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -599,7 +599,7 @@ msgstr "" "پروژه فعلی زنده می ماند. آیا بازی بعدی از هر چیزی که تازه یاد گرفته بودیم " "سود می برد ؟" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: ساخت بر روی کار انسانی" @@ -608,7 +608,7 @@ msgstr "TH08: ساخت بر روی کار انسانی" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -621,7 +621,7 @@ msgstr "" "GensokyoClub{ph3}. منبع عمومی آنها به من یک پایه قابل توجهی داد. با دانش " "ساخت و ساز و سابقه کمک هایی که در ادامه حفظ کردم ، همراه بود." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -632,7 +632,7 @@ msgstr "" " آگوست آغاز شد. تا 19 آگوست ، دفتر کل منبع ثبت شده برای تمام 1107 عملکرد " "بازی شناسایی شده بود." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -643,7 +643,7 @@ msgstr "" "ادامه ، انجام شد. یک نسخه وب به دنبال آن بود. نسخه بومی Linux 64 بیتی در 30 " "اوت وارد شد." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -659,7 +659,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -677,12 +677,12 @@ msgstr "" " توضیح می دهد و آن را آزمایش می کند ؛ عدم تطابق چیزی خاص برای تحقیق به آن می" " دهد." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "مطابقت دقیق با ثابت اشتباه" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -693,7 +693,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -705,7 +705,7 @@ msgstr "" "جمع آوری خودکار آیتم شد. منبع بازسازی شده قدرت بازیکن را در برابر {ph0}. اصل" " مورد استفاده {ph1}، حد حداکثر قدرت" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -720,13 +720,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -740,7 +740,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -756,7 +756,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -770,7 +770,7 @@ msgstr "" "مرجع ثابت نقطه شناور را بررسی کرد. این دوازده مرجع نادرست دیگر را در پنج " "تابع پذیرفته شده پیدا کرد." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -783,7 +783,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -793,7 +793,7 @@ msgstr "" "{ph0}مرجع تأیید (اوراکل) نیز نیاز به بازسازی داشت.{ph1} تعمیر آن بخشی از " "تعمیر بازی بود." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -811,7 +811,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -826,7 +826,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -836,7 +836,7 @@ msgstr "" "{ph0}یک دسته موفق به ما کد بازیابی شده و یک محیط بهتر برای دسته بعدی را " "داد.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "دو ایده متفاوت از بازسازی" @@ -845,7 +845,7 @@ msgstr "دو ایده متفاوت از بازسازی" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -857,7 +857,7 @@ msgstr "" "این اطلاعیه اعلام می کند که توسعه بیشتر به صورت خصوصی تا زمان تکمیل اتفاق " "خواهد افتاد. در یکی از این بخش ها آمده است:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -866,7 +866,7 @@ msgstr "" "ظهور grifters (تجزیه هوش مصنوعی و پورت ها) در این فضا گرفتن از کار ما یک " "تصویر بد برای تلاش های تجزیه آینده را نقاشی می کند…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -883,7 +883,7 @@ msgstr "" " بحث کنم این است که بازسازی چگونه باید ادامه یابد و چگونه باید یک سهم را " "قضاوت کرد." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -895,7 +895,7 @@ msgstr "" "همان شخص می رسید. یک پروژه به شدت به تخصص آن شخص متکی بود. اعتماد به کمک " "کننده مهم بود چون خیلی از استدلال ها در حالی که کار می کردند اتفاق می افتاد." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -906,7 +906,7 @@ msgstr "" "سازند. چیزی که برای من تغییر کرد این بود که یک مامور می توانست از این دانش " "برای پیگیری تحقیقات بعدی به تنهایی استفاده کند." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -920,7 +920,7 @@ msgstr "" " به در ببرد. من می خواهم شخص دیگری بتواند بررسی کند که چرا ما یک پیاده سازی " "را انتخاب کردیم ، حتی اگر یک نماینده بیشتر کار را انجام دهد." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -933,7 +933,7 @@ msgstr "" " را مطرح می کند. همچنین آنچه را که نگهدارندگان باید قبل از پذیرش سهم بدانند " "تغییر می دهد." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -948,7 +948,7 @@ msgstr "" "دهد که خروجی آن اشتباه است. جوامع مختلف می توانند انتخاب کنند که چه مقدار از" " این تغییر را می خواهند انجام دهند." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -973,7 +973,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -985,14 +985,14 @@ msgstr "" "{ph2}سیاست مشارکت{ph3}. نقل قول یک گزیده کوتاه است. TH08 {ph4}اعتبارات و " "منشأ{ph5} مرز ادامه را ثبت کنید." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: تجربه شروع به ترکیب می کند" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1006,7 +1006,7 @@ msgstr "" "باید بازی را یاد می گرفتیم. اما ما قبلا خیلی بیشتر در مورد چگونگی شروع " "بازسازی و چگونگی حرکت آن می دانستیم." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1019,7 +1019,7 @@ msgstr "" "متصل شد. بازسازی Windows i386 در 10 سپتامبر ، حدود دوازده روز پس از شروع ، " "قابل بازی بود." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1030,7 +1030,7 @@ msgstr "" " انجام شده در یک بازی دیگر بهره مند شود. این تجربه قبلا در ابزارها و نحوه " "سازماندهی پروژه وجود داشت." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1045,7 +1045,7 @@ msgstr "" "می کنن این درس به شکل گیری نحوه ی نزدیک شدن ما به ساخت کل برنامه ی TH095 کمک" " کرد." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1058,7 +1058,7 @@ msgstr "" "اینکه من حرکت کردم. عامل بعدی می تواند نتیجه را بدون تکرار تحقیقات منجر به " "آن استفاده کند." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1072,7 +1072,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1083,7 +1083,7 @@ msgstr "" "{ph0}این روش بخشی از مواد اولیه برای بازی بعدی می شود.{ph1} ما می توانیم " "بیشتر از تلاش پروژه بعدی را صرف آنچه در واقع جدید در مورد هدف آن است." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1096,7 +1096,7 @@ msgstr "" "کنند. آنها مجبور نیستند کل تاریخچه پروژه را بازسازی کنند تا بفهمند چرا منبع " "به این شکل به نظر می رسد." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: جریان کار از یک معماری متفاوت جان سالم به در می برد" @@ -1105,7 +1105,7 @@ msgstr "TH04: جریان کار از یک معماری متفاوت جان سا #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1120,7 +1120,7 @@ msgstr "" "افزاری آن نیاز به شواهد متفاوتی از بازی های Windows داشت. موجود {ph2}کار " "ReC98{ph3} ما دانش ارزشمندی و منبع مواد را در اینجا نیز به ما داد." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1133,7 +1133,7 @@ msgstr "" "بیتی بومی است. ایجاد یک نسخه dos کار برای اولین بار به آن پورت یک مرجع می " "دهد." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1146,7 +1146,7 @@ msgstr "" "تواند یک سوال را تا نتیجه دنبال کند و اجازه دهد که نتیجه آزمایش بعدی را " "هدایت کند." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1161,7 +1161,7 @@ msgstr "" "نماینده می تواند از طریق سوال کار کند ، همانطور که در عنوان Windows انجام " "شده است." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1172,7 +1172,7 @@ msgstr "" "مجبور نکرد که با یک روش جدید کار شروع کنیم. معماری مشکل را تعریف کرد ؛ جریان" " کار هنوز راهی برای حل آن به ما داد." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1189,7 +1189,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1199,19 +1199,19 @@ msgstr "" "وضعیت پروژه از 10 اکتبر 2026: {ph0}بازسازی DOS و تست دستی{ph1} · {ph2}پورت " "64 بیتی{ph3}. بندر همچنان در حال توسعه است." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "از کد دقیق تا کد قابل خواندن" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1225,7 +1225,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1241,7 +1241,7 @@ msgstr "" " نام معنی دار و نوعی متناسب با شواهد به آن بدهیم. ما استدلال را با منبع نگه " "می داریم تا فرد بعدی بتواند ببیند که این تفسیر از کجا آمده است." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1256,14 +1256,14 @@ msgstr "" " می کند. برای حرکت ایمن رفتار ، باید رابطه پشت دسترسی به حافظه قدیمی را " "بازیابی کنیم." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "سفارشي که الان ازش استفاده ميکنم:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1279,7 +1279,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1295,7 +1295,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1310,7 +1310,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1324,7 +1324,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1340,7 +1340,7 @@ msgstr "" "برنامه بازسازی شده هنوز در مسیرهایی که ما تمرین می کنیم درست می سازد و رفتار" " می کند." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1353,7 +1353,7 @@ msgstr "" "نسخه های مختلف حالت ترک کند. نگه داشتن هر دو چک در دسترس به عامل یک شکست " "مشخص برای تحقیق قبل از حمل یک refactor بیشتر می دهد." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1370,7 +1370,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1388,7 +1388,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1398,12 +1398,12 @@ msgstr "" "{ph0}بازسازی دقیق به ما مرجع می دهد. بازسازی معنایی دانش بازیابی شده را قابل" " استفاده می کند.{ph1} سپس یک پورت می تواند بر روی هر دو ساخته شود." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "چه چیزی این را به یک تغییر صنعتی تبدیل می کند ؟" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1416,7 +1416,7 @@ msgstr "" "کارهایی بود که می توانستم انجام دهم. یک ابزار بهتر می تواند در هر عملکرد " "بعدی که به آن نیاز دارد کمک کند." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1429,7 +1429,7 @@ msgstr "" "نیاز دارد. اگر باید منتظر بمانم تا هر مرحله را تجویز کنم ، بیشتر کار به توجه" " من وابسته است." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1442,7 +1442,7 @@ msgstr "" "تا اشتباه را به اندازه کافی خوب درک کند تا دوباره امتحان کند. هنوز بايد " "تصميم بگيرم که آيا شواهد جمع شده از يک نقطه عطف پروژه حمايت ميکنه يا نه" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1456,7 +1456,7 @@ msgstr "" "بازسازی کامپایلر و چک های مرجع خود را تامین می کند. مامور می تواند از آن ها " "برای تست منبع پیشنهادی خود استفاده کند و ببیند که توضیح آن در کجا قرار دارد." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1473,7 +1473,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1493,7 +1493,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1510,7 +1510,7 @@ msgstr "" "تحت تاثیر آن را دوباره بررسی کنیم. پروژه بعدی می تواند یک ابزار قوی تر را به" " ارث ببرد." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1525,7 +1525,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1537,7 +1537,7 @@ msgstr "" "راه مشترک برای حمل چک ها و درس های خود را به جلو می دهد. کار بر روی یک بازی " "می تواند شرایط شروع را برای دیگری بهبود بخشد." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1549,12 +1549,12 @@ msgstr "" "بهبود این ابزارها ، میزان کاری که فرد بعدی یا نماینده بعدی می تواند انجام " "دهد را تغییر می دهد." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "پروژه هایی که اکنون می توانیم در نظر بگیریم" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1565,7 +1565,7 @@ msgstr "" "مهندسی معکوس جذاب باشد و هنوز هم نیاز به توجه بیشتر از آنچه که من می توانم " "به طور واقع گرایانه به آن بدهم. بسیاری از پروژه ها ایده ها را حفظ می کنند." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1581,7 +1581,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1592,7 +1592,7 @@ msgstr "" "دانش انباشته شده ای به یک نماینده اجازه می دهد تا به طور قابل اعتماد روی این" " کار کند ؟ {ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1603,12 +1603,12 @@ msgstr "" "هرکدام می توانند روش برخورد ما با روش بعدی را بهبود ببخشند. ميخوام به کاوش " "ادامه بدم که چقدر ميتونه ما رو ببره" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "نقاط عطف و منابع پروژه" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1642,7 +1642,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1676,7 +1676,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1694,7 +1694,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1717,7 +1717,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1739,7 +1739,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1755,7 +1755,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1776,7 +1776,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1790,7 +1790,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1810,27 +1810,27 @@ msgstr "" "N0zoM1z0 در مهندسی معکوس دستی ، بازسازی Touhou با عوامل هوش مصنوعی و چگونگی " "ترکیبات دانش در TH08 ، TH095 و PC-98 TH04 منعکس می شود ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "تجربه انجام شده بین پروژه ها" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "مقاله بازسازی توهو" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -1839,18 +1839,18 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "بازرسی → بازسازی → تغییر" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "قانون سرعت دایناسور رو دوباره بساز" @@ -1859,7 +1859,7 @@ msgstr "قانون سرعت دایناسور رو دوباره بساز" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1871,15 +1871,15 @@ msgstr "" "کند. {ph0} REA اسکریپت در حال اجرا بازگشت;{ph1} ما از قاعده اش برای ساخت این" " مینی بازی با {ph2}سرعت قابل تنظیم{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "در این صفحه" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1887,7 +1887,7 @@ msgstr "{ph0}بازی و تغییر سرعت{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1895,7 +1895,7 @@ msgstr "{ph0}قانون بازیابی شده را بخوانید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1903,18 +1903,18 @@ msgstr "{ph0}بازسازی را بررسی کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "بازی و تغییر سرعت" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1925,49 +1925,49 @@ msgstr "" " بازی کندتر و یا سریع تر; آن را به یک سرعت ثابت سوئیچ. قانون بازیابی شده را " "انتخاب کنید تا از 6 شروع شود و به تدریج دوباره تسریع شود." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "نسخهٔ بازسازی‌شده را بازی کنید" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "بازی" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "پرش ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "شروع دوباره" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "سرعت" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "از قانون شتاب بازیابی شده استفاده کنید" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -1975,7 +1975,7 @@ msgid "" msgstr "" "JavaScript را قادر به بازی بازسازی کنید. کد و توضیح بالا قابل خواندن است." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "خواندن اسکریپت REA بازگشت" @@ -1983,7 +1983,7 @@ msgstr "خواندن اسکریپت REA بازگشت" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1997,7 +1997,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2007,18 +2007,18 @@ msgstr "" "تنظیمات: {ph0}, {ph1} و {ph2}. این بازی این شاخه را در یک به روزرسانی بدون " "برخورد اجرا می کند." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "از همان قانون در بازی جدید استفاده کنید" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "کپی" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2035,18 +2035,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "بازسازی را بررسی کنید" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2056,27 +2056,27 @@ msgstr "" "ما عملکرد به روز رسانی بازی اصلی را با موانع و برنامه ریزی خودکار غیرفعال " "نامیدیم. این سرعت های ثبت شده را با تکرار قانون بازیابی شده مقایسه کنید." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "به روز رسانی" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "بازی اصلی" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "قانون بازسازی شده" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "بررسی سرعت را اجرا کنید" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2085,14 +2085,14 @@ msgstr "" "مقادیر به سه اعشاری گردآوری شده است. شاخه قبل از اضافه کردن چک می کند ، " "بنابراین افزایش نهایی می تواند سرعت را کمی بالاتر از 13 بگیرد." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "تجزیه و تحلیل را خودتان امتحان کنید" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2101,7 +2101,7 @@ msgstr "{ph0}راه اندازی REA {ph1} با عامل برنامه نویسی #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2110,7 +2110,7 @@ msgstr "" "دنبال کنید {ph0}مراحل اتصال مرورگر{ph1}، با استفاده از {ph2} به عنوان URL " "صفحه." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2127,7 +2127,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2139,7 +2139,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}عامل برنامه نویسی #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2153,7 +2153,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2168,7 +2168,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2193,12 +2193,12 @@ msgstr "" "قانون سرعت بازی دایناسور را با REA بخوانید ، آن را بازسازی کنید ، سپس سرعت " "را تغییر دهید و بازی کنید." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "بازسازی سرعت دایناسور" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2207,52 +2207,52 @@ msgstr "" "دایناسور مینی بازی. در حالی که بازی متمرکز است از دکمه پرش یا فضای فشار " "استفاده کنید." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "کپی قانون سرعت بازسازی شده" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "کپی دایناسور تجزیه و تحلیل فوری" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}خانه{ph1} / سوالات متداول" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA سوالات متداول." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "راه اندازی ، به روز رسانی ، تجزیه و تحلیل و عیب یابی." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "موضوعات" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2260,7 +2260,7 @@ msgstr "{ph0}راه اندازی و به روز رسانی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2268,7 +2268,7 @@ msgstr "{ph0}تحلیل{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2276,31 +2276,31 @@ msgstr "{ph0}عیب یابی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}داده ها و اشتراک گذاری{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "راه اندازی و به روز رسانی" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "چطور REA را نصب کنم؟" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "ترمینال * راه اندازی عامل" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "کپی" @@ -2308,7 +2308,7 @@ msgstr "کپی" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2321,12 +2321,12 @@ msgstr "" " از پایان، دستیار را دوباره اجرا کنید و مسیر فایل و پرسش خود را به آن بدهید." " پیش‌نیازها و مراحل اولین تحلیل در {ph0}راهنمای راه‌اندازی{ph1} آمده است." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "کدام عوامل کدگذاری می توانند از REA استفاده کنند ؟" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2341,18 +2341,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}عامل برنامه نویسی خود را وصل کنید{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "چطور REA را به‌روز کنم؟" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2360,13 +2360,13 @@ msgid "" msgstr "" "REA اغلب منتشر می شود ، از جمله رفع اشکال. اگر CLI را با npm نصب کرده اید :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "ترمینال * نصب CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2376,14 +2376,14 @@ msgstr "" "دستور setup refresh چاپ شده توسط update را دنبال کنید. اگه ماموريت رو از " "طريق {ph0}، فرار کن:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "ترمینال * راه اندازی عامل تازه" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2395,14 +2395,14 @@ msgstr "" "بسته استفاده می‌کند؛ برای استفاده از نسخه جدید، راه‌اندازی را دوباره انجام " "دهید. برای اجرای یک دستور CLI، دستور مورد نظر را پس از {ph0} بنویسید." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "نصب مهارت از skills.sh کافيه ؟" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2414,24 +2414,24 @@ msgstr "" "برای اتصال سرور MCP و نصب مهارت تطبیق ، سپس عامل خود را دوباره راه اندازی " "کنید تا بتواند ابزارها را فراخوانی کند." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "تحلیل" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "با REA چه چیزی را می توانم تجزیه و تحلیل کنم ؟" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "با نوع نرم افزاری که دارید شروع کنید:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2443,7 +2443,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2455,7 +2455,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2463,7 +2463,7 @@ msgstr "{ph0}صفحات مرورگر{ph1}: اسکریپت ها ، درخواست #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2475,12 +2475,12 @@ msgstr "" "سیستم عامل و منابع بسته بندی شده است. {ph0}مشاهده مطالعات موردی{ph1} برای " "تحقیقات کار." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "آیا به Hopper ، Ghidra یا IDA نیاز دارم ؟" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2492,7 +2492,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2505,12 +2505,12 @@ msgstr "" "ارائه دهنده می تواند مورد استفاده قرار گیرد. {ph0}راه اندازی تجزیه و تحلیل " "برنامه های کد ماشین{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "آیا می توانم از REA بدون یک عامل کدگذاری استفاده کنم ؟" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2519,14 +2519,14 @@ msgstr "" "بله. CLI از همان جریان های کاری تجزیه و تحلیل استفاده می کند. برای یک برنامه" " محلی JavaScript یا Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "ترمینال * تجزیه و تحلیل کاربرد استاتیک" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2537,13 +2537,13 @@ msgstr "" " استفاده کنید {ph1} برای گزینه های نصب." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2558,7 +2558,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2570,12 +2570,12 @@ msgstr "" "استفاده می کند. این {ph0} محاسبه DX-Ball{ph1} و {ph2}چک کننده پرچم CTF{ph3} " "نشان دهید که این فرآیند چگونه کار می کند." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "از دستیار چه بپرسم؟" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2592,7 +2592,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2600,7 +2600,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}عامل برنامه نویسی #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2610,18 +2610,18 @@ msgstr "" "مسیر را با هدف خود جایگزین کنید. این {ph0}راهنماها{ph1} ارائه راهنمایی برای " "نمونه های بومی ، Electron و مرورگر." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "عیب یابی" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "چرا نماینده من نمیتونه ابزار REA رو ببینه؟" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2631,7 +2631,7 @@ msgstr "" "بعد از راه اندازی دوباره کارگزار خود را راه اندازی کنید یا دوباره وصل کنید. " "ثبت نام REA خود را با {ph0}; برای Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "ترمینال * یک مشتری را بررسی کنید" @@ -2639,7 +2639,7 @@ msgstr "ترمینال * یک مشتری را بررسی کنید" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2649,14 +2649,14 @@ msgstr "" "جایگزین کنید {ph0} با شناسه مشتری شما ، مانند {ph1} یا {ph2}. اگر گزارش ثبت " "نام گمشده یا قدیمی را نشان می دهد ، برای آن مشتری تنظیم کنید:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "ترمینال * تعمیر راه اندازی یک مشتری" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2668,14 +2668,14 @@ msgstr "" "ابزارها وجود ندارند ، خطای اتصال MCP مشتری را بررسی کنید. {ph0}تشخیص راه " "اندازی بیشتر{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "آیا باید ابتدا Hopper را شروع کنم؟" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2687,14 +2687,14 @@ msgstr "" "حالت دمو یا فعال سازی مجوز را قبل از تجزیه و تحلیل بدون نظارت تکمیل کنید. " "{ph0}مشاهده راه اندازی ارائه دهنده بومی{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "اگر با خطا روبه‌رو شدم چه کنم؟" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2706,7 +2706,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2718,17 +2718,17 @@ msgstr "" " نوع هدف ، مراحل بازتولید و خروجی خطا. شامل نام ارائه دهنده زمانی که مشکل " "شامل تجزیه و تحلیل برنامه های کد ماشین است." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "داده ها و اشتراک گذاری" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "آیا REA برنامه من را آپلود می کند ؟" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2737,7 +2737,7 @@ msgstr "" "REA اهداف را در دستگاه شما تجزیه و تحلیل می کند. نماینده شما نتایج را دریافت" " می کند و سیاست داده ارائه دهنده مدل آن برای این نتایج اعمال می شود." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "چگونه می توانم یک مثال را به اشتراک بگذارم یا کمک کنم ؟" @@ -2746,7 +2746,7 @@ msgstr "چگونه می توانم یک مثال را به اشتراک بگذا #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2761,7 +2761,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2785,77 +2785,77 @@ msgstr "" "پاسخ به سوالات رایج REA: نصب ، به روز رسانی ، ابزارهای تجزیه و تحلیل ، عوامل" " کدگذاری ، عیب یابی و به اشتراک گذاری نمونه ها." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "سوالات متداول در مورد REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "کپی REA دستور راه اندازی" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "کپی REA دستور به روز رسانی" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "دستور Copy agent setup refresh" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "کپی REA CLI دستور تجزیه و تحلیل" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "کپی مثال تجزیه و تحلیل prompt" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "دستور تشخیص مشتری را کپی کنید" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "دستور Copy scoped setup" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}خانه{ph1} / اولین تحقیق شما" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2864,14 +2864,14 @@ msgstr "" "از REA برای بازرسی یک برنامه کوچک استفاده کنید ، دکمه یادداشت های صادراتی آن" " را دنبال کنید و خودتان یک جزئیات را بررسی کنید." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "در این تمرین" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2879,7 +2879,7 @@ msgstr "{ph0}1. راه اندازی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2887,7 +2887,7 @@ msgstr "{ph0}2. درباره صادرات بپرسید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2895,7 +2895,7 @@ msgstr "{ph0}3. پاسخ را دنبال کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2903,13 +2903,13 @@ msgstr "{ph0}4. پیش بینی را بررسی کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. نماینده خود را به REA متصل کنید" @@ -2922,30 +2922,30 @@ msgstr "1. نماینده خود را به REA متصل کنید" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "کپی" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "یا این دستور را در ترمینال خود اجرا کنید:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -2954,14 +2954,14 @@ msgstr "" "نقشه رو بررسي کن ، راه اندازي رو تاييد کن ، بعد ماموريت رو دوباره راه بنداز." " در حال حاضر متصل? ادامه در زیر." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. بپرسید CSV کجا نوشته شده است" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2972,7 +2972,7 @@ msgstr "" "مثال یک برنامه شش فایل Electron با یک {ph0}یادداشت های صادراتی{ph1} دکمه. " "نماینده شما می تواند کد خود را بدون نصب یا راه اندازی Electron بازرسی کند ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2984,14 +2984,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}دانلود نمونه زیپ{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3001,12 +3001,12 @@ msgstr "" "اگر نماینده شما نمی تواند فایل ها را دانلود کند ، خودتان این آرشیو را باز " "کنید. راه رو به سمت {ph0} پوشه و همان سوال صادرات." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. پاسخ را به کد دنبال کنید" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "به دنبال یک توضیح کوتاه با مرجع فایل و خط باشید:" @@ -3015,7 +3015,7 @@ msgstr "به دنبال یک توضیح کوتاه با مرجع فایل و خ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3027,12 +3027,12 @@ msgstr "" " فایل {ph1} را در پوشهٔ دانلودهای کاربر ذخیره می‌کند. ستون‌ها {ph2} و {ph3} " "هستند." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "از دکمه به نویسنده فایل" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3041,7 +3041,7 @@ msgstr "" "تجزیه و تحلیل استاتیک REA پیام را با کنترل کننده آن جفت می کند. مقصد از کد " "خوانده می شود." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3052,18 +3052,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. پیش بینی را بررسی کنید" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3072,29 +3072,29 @@ msgstr "" "یک کاما ستون های CSV را جدا می کند. چه اتفاقی می افتد وقتی یک عنوان یادداشت " "خود شامل یک علامت یا علامت نقل قول است ؟" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "خودتان چک را اجرا کنید" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. سوال دیگری بپرسید" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "در همان مکالمه پیگیری کنید:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3102,7 +3102,7 @@ msgid "" msgstr "" "اگه فایل نتونه نوشته بشه چی میشه ؟ خطای بازگشت به صفحه را دنبال کنید." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3115,7 +3115,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3129,7 +3129,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3143,7 +3143,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3168,116 +3168,116 @@ msgstr "" "بپرسید که یادداشت های صادر شده کجا می روند و قالب CSV را با عنوان نمونه " "بررسی کنید." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "اولین تحقیق REA شما" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "کپی REA نصب و راه اندازی prompt" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "دستور Copy setup" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "یادداشت های کپی تحقیقات فوری" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "کپی CSV چک prompt" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "دستور copy formatter check" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}خانه{ph1} / شروع کن" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "REA را تنظیم کنید ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "ترمینال رو باز کن و چک کن:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "ترمینال" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "کپی" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3289,7 +3289,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3301,7 +3301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3313,7 +3313,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3321,7 +3321,7 @@ msgstr "{ph0}از CLI استفاده کنید {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3335,18 +3335,18 @@ msgstr "{ph0}کمک گرفتن{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "یا خودتان راه اندازی کنید" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "چگونه ترمینال را باز کنم ؟" @@ -3355,7 +3355,7 @@ msgstr "چگونه ترمینال را باز کنم ؟" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3371,7 +3371,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3385,7 +3385,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3400,7 +3400,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3410,7 +3410,7 @@ msgstr "" "یک دستور را با {ph0} {ph1} (macOS : {ph2} {ph3}; ترمینال های Linux: {ph4} " "{ph5} {ph6}), سپس Enter را فشار دهید." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3421,7 +3421,7 @@ msgstr "" "و مهارت بررسی متناسب را اضافه می‌کند و از پیکربندی موجود نسخهٔ پشتیبان نگه " "می‌دارد. پیش از اعمال تغییرات از شما اجازه می‌گیرد." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "چگونه برنامهٔ دستیار را دوباره اجرا کنم؟" @@ -3430,7 +3430,7 @@ msgstr "چگونه برنامهٔ دستیار را دوباره اجرا کنم #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3446,7 +3446,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3456,7 +3456,7 @@ msgstr "" "{ph0}عوامل ترمینال{ph1} (Claude Code ، Codex ، Gemini CLI ): از جلسه خارج " "شوید و دوباره شروع کنید." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "چطور می توانم مسیر کامل یک پوشه را بدست آورم ؟" @@ -3465,7 +3465,7 @@ msgstr "چطور می توانم مسیر کامل یک پوشه را بدست #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3480,7 +3480,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3492,7 +3492,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3501,14 +3501,14 @@ msgid "" msgstr "" "{ph0}هر سیستم:{ph1} پوشه را به یک پنجره ترمینال بکشید و مسیر آن ظاهر می شود." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3517,14 +3517,14 @@ msgstr "" "یک پوشه برنامه JavaScript یا Electron یا آرشیو ASAR را بدون اجرای برنامه " "تجزیه و تحلیل کنید:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "تجزیه و تحلیل کاربرد استاتیک" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3534,13 +3534,13 @@ msgstr "" "مسیر را با دایرکتوری برنامه استخراج شده خود جایگزین کنید یا {ph0} فایل. در " "Windows ، مسیری مانند {ph1} اینجا کار میکنه" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "فایل .asar برنامه را کجا پیدا کنم؟" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3551,7 +3551,7 @@ msgstr "برنامه های Electron معمولا آن را در یک {ph0} پو #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3563,7 +3563,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3576,21 +3576,21 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} اغلب {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3601,36 +3601,36 @@ msgstr "" "منبع آنها را می دهد. اتصالات REA نمی تواند حل شود در نتیجه مشخص شده است." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "CLI را نصب کنید" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "نصب Ghidra خود را وصل کنید" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "اتصال Ghidra در Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3641,7 +3641,7 @@ msgstr "" "وx64 با قالب PE روی درایوهای ثابت محلی NTFS دارد. از نصب موجود Ghidra 12.1.x" " وJDK ‏64 بیتی نسخهٔ 21 یا جدیدتر استفاده کنید:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3649,7 +3649,7 @@ msgstr "" "دو مسیر را با نصب های خود جایگزین کنید ، سپس برنامه راه اندازی را بررسی " "کنید." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3659,18 +3659,18 @@ msgstr "" "این دستور یک نصب موجود را تشخیص می دهد یا یک برنامه نصب برای تأیید شما ارائه" " می دهد." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "کمک گرفتن" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "اگر نماینده شما REA را نمی بیند" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3680,22 +3680,22 @@ msgstr "" "پس از راه‌اندازی، برنامهٔ دستیار را دوباره اجرا یا متصل کنید. اتصال REA آن " "را با {ph0} بررسی کنید؛ برای Codex:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "اگر یک ارائه دهنده نیاز به توجه داشته باشد" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "ارائه دهنده ای که استفاده می کنید را بررسی کنید. برای Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "یک ارائه دهنده را بررسی کنید" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "گزارش چک شکست خورده و گام بعدی پیشنهاد شده را ارائه می دهد." @@ -3704,7 +3704,7 @@ msgstr "گزارش چک شکست خورده و گام بعدی پیشنهاد ش #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3717,7 +3717,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3731,7 +3731,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3743,7 +3743,7 @@ msgstr "{ph0} مسائل GitHub{ph1}{ph2}گزارش یک مشکل با دستو #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3767,68 +3767,68 @@ msgstr "" "Electron را از ترمینال بازرسی کنید. راه اندازی ، سوالات اول و راهنمای ارائه " "دهنده بومی." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "نسخه Node.js را کپی کنید" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "کپی Node.js دستور نصب برای Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "کپی Homebrew Node.js دستور نصب" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "کپی دستور نصب fnm برای Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 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:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "راهنمای شروع REA" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "کپی REA نصب و راه اندازی prompt" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "دستور تجزیه و تحلیل JavaScript را کپی کنید" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "دستور نصب CLI را کپی کنید" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "کپی فرمان تشخیص ابزار تحلیل" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -3837,20 +3837,20 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}خانه{ph1} / {ph2}راهنماها{ph3} / مشاهده مرورگر" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3859,14 +3859,14 @@ msgstr "" "از یک برنامه مرورگر کوچک برای اتصال یک عمل ، درخواست شبکه آن و JavaScript که" " یک بارگیری ایجاد می کند استفاده کنید." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "در این راهنما" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3874,7 +3874,7 @@ msgstr "{ph0}مثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3882,7 +3882,7 @@ msgstr "{ph0}مرورگر را باز کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3890,7 +3890,7 @@ msgstr "{ph0}از نماینده خود بپرسید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3898,13 +3898,13 @@ msgstr "{ph0}ضبط از CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "وقتی روی Export کلیک می کنید چه اتفاقی می افتد ؟" @@ -3914,7 +3914,7 @@ msgstr "وقتی روی Export کلیک می کنید چه اتفاقی می ا #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3926,7 +3926,7 @@ msgstr "" "دکمه. با کلیک بر روی آن بارگذاری می شود {ph4}، دو یادداشت را به عنوان CSV " "فرمت می کند و شروع به دانلود می کند." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "از کلیک تا دانلود CSV" @@ -3937,7 +3937,7 @@ msgstr "از کلیک تا دانلود CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3953,7 +3953,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3971,7 +3971,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3981,17 +3981,17 @@ msgstr "" "{ph0}03 * نماینده شما{ph1}{ph2}کد صادرات را بخوانید{ph3}{ph4}درخواست مشاهده " "شده را به {ph5} در {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "قبل از کلیک بر روی یادداشت های صادرات ، ضبط را شروع کنید." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Chrome را با اشکال زدایی از راه دور باز کنید" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4000,21 +4000,21 @@ msgstr "" "مثال یادداشت های میزبان را با یک پروفایل مرورگر جداگانه و یک پورت اشکال " "زدایی محلی باز کنید. در Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "مرورگر مثال را شروع کنید" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "کپی" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4023,7 +4023,7 @@ msgstr "" "از مسیر اجرایی مرورگر نصب شده خود در macOS یا Windows استفاده کنید . شما می " "توانید URL صفحه را با صفحه دیگری که می خواهید بازرسی کنید جایگزین کنید." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4032,7 +4032,7 @@ msgstr "" "REA به این مرورگر موجود متصل می شود. شما کنترل صفحه را حفظ می کنید ، عمل را " "انجام می دهید و مرورگر را پس از اتمام بسته می کنید." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "از مامور خود بخواهید که یک عمل را تماشا کند" @@ -4045,7 +4045,7 @@ msgstr "از مامور خود بخواهید که یک عمل را تماشا #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4057,7 +4057,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}عامل برنامه نویسی #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4069,7 +4069,7 @@ msgstr "" "{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4079,7 +4079,7 @@ msgstr "" "مثال سریع. به نماینده خود نقطه پایان اشکال زدایی را بدهید, {ph0}، و URL " "صفحه. بگذارید قبل از کلیک ضبط را شروع کند." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4089,23 +4089,23 @@ msgstr "" "نماینده شما هدف صفحه را کشف می کند ، یک پنجره مشاهده را شروع می کند و شواهد " "حاصل را می خواند. سپس می تواند اسکریپت پشت صادرات را بررسی کند." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "یا از ترمینال ضبط کنید" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "شناسه هدف صفحه را پیدا کنید:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "صفحه را پیدا کنید" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4115,14 +4115,14 @@ msgstr "" "هدف را با Notesl مثال یادداشت ها انتخاب کنید. جایگزین کنید {ph0} در زیر با " "ID آن ، سپس اجرا:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "ده ثانیه ی بعد رو ضبط کن" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4132,7 +4132,7 @@ msgstr "" "اجازه دهید دستور برای چند ثانیه متصل شود ، سپس روی {ph0}یادداشت های " "صادراتی{ph1} در اون مرورگر نتیجه پس از پایان پنجره مشاهده می رسد." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4142,49 +4142,49 @@ msgstr "" "نتیجه گرفته شده شامل صفحه انتخاب شده ، فعالیت شبکه در طول آن پنجره و شکل " "پاسخ JSON است. درخواست های قبلی خارج از این دستگیری است." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "درخواست و اسکریپت صادرات را بخوانید" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 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:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "واقعیت ثبت شده" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "ارزش" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "درخواست" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "پاسخ" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "درخواست آغازگر" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * اسکریپت" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "ساختار پاسخ" @@ -4192,19 +4192,19 @@ msgstr "ساختار پاسخ" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "اسکریپت های لود شده را بخوانید" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4216,7 +4216,7 @@ msgstr "" "شود:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4228,7 +4228,7 @@ msgstr "" " اسکریپت می آید ؛ ضبط شبکه ثابت می کند که این کلیک درخواست شده است {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4240,7 +4240,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4264,65 +4264,65 @@ msgstr "" "مشاهده صادرات یادداشت با REA: یک صفحه مرورگر را انتخاب کنید ، یک کلیک را ضبط" " کنید ، درخواست را بررسی کنید و اسکریپت صادرات را دنبال کنید." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "مشاهده مرورگر" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "کپی کنید ، مرورگر نمونه را شروع کنید" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "کپی مثال prompt" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "کپی پیدا کردن صفحه" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "کپی گرفتن ده ثانیه بعدی" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "کپی خواندن اسکریپت های لود شده" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}خانه{ph1} / راهنماها" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "راهنماهای REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4331,37 +4331,37 @@ msgstr "" "تجزیه و تحلیل یک تابع بومی ، صادرات Electron یا درخواست مرورگر. هر راهنما " "شامل یک پیام ، کد و نتایج است." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "اولین تحقیق" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "راه اندازی REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "عامل کدگذاری خود را وصل کنید یا از REA از ترمینال استفاده کنید." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "با REA شروع کنید" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "برنامه های کد ماشین" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "بازیابی محاسبه موقعیت صدای چپ / راست" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4371,22 +4371,22 @@ msgstr "" "تماس گیرنده را دنبال کنید ، ثابت های عددی را بخوانید و C بازیابی شده را " "بررسی کنید." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "تجزیه و تحلیل برنامه های کد ماشین راهنما" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript و Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "صادرات CSV را دنبال کنید" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4395,31 +4395,31 @@ msgstr "" "یک برنامه یادداشت های کوچک یک ویژگی را در رندر ، پیش بارگذاری و فرآیند اصلی " "گسترش می دهد. از REA برای اتصال API ، کانال IPC و file writer استفاده کنید." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "راهنمای JavaScript و Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "رفتار مرورگر" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "مشاهده یک کلیک" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4428,7 +4428,7 @@ msgstr "" "یک مثال یادداشت های کاری را باز کنید ، یک درخواست صادرات را ضبط کنید و کد را" " پیدا کنید که پاسخ آن را به یک دانلود تبدیل می کند." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "راهنمای مشاهده مرورگر" @@ -4447,12 +4447,12 @@ msgstr "" "REA را از طریق نمونه های کوتاه کار شده یاد بگیرید: یک محاسبه بومی ، یک " "صادرات Electron CSV و یک درخواست مرورگر." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -4461,20 +4461,20 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4483,14 +4483,14 @@ msgstr "" "یک دکمه را دنبال کنید از API صفحه ، از طریق Electron IPC ، به CSV file " "writer کلیک کنید." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "در این راهنما" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4498,7 +4498,7 @@ msgstr "{ph0}مثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4506,7 +4506,7 @@ msgstr "{ph0}از نماینده خود بپرسید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4514,7 +4514,7 @@ msgstr "{ph0}کد صادرات را ردیابی کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4522,20 +4522,20 @@ msgstr "{ph0}مثال را امتحان کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"یادداشت های صادراتی\" به کجا می رود؟" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4547,7 +4547,7 @@ msgstr "" " های صادراتی{ph1} یک API را در صفحه فرا می خواند ، به فرآیند اصلی می رود و " "یک CSV می نویسد . این رفتار در چندین پرونده پخش شده است." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "صادرات CSV در سراسر فرآیندهای Electron" @@ -4561,7 +4561,7 @@ msgstr "صادرات CSV در سراسر فرآیندهای Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4578,7 +4578,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4595,7 +4595,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4608,13 +4608,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4625,14 +4625,14 @@ msgstr "" " می کند. مسیر از کد استنباط می شود ؛ یک ضبط زمان اجرا می تواند بررسی کند که " "چه چیزی اجرا می شود." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "درباره صادرات CSV بپرسید" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4650,14 +4650,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "کپی" @@ -4668,7 +4668,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4679,7 +4679,7 @@ msgstr "" " صادرات یادداشت در این برنامه. CSV در کجا ایجاد شده است ؟ {ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4687,7 +4687,7 @@ msgid "" "{ph0}." msgstr "مثال سریع. شامل مسیر مطلق به پوشه برنامه یا {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4698,17 +4698,17 @@ msgstr "" "فرآیند را می سازد. مامور شما از اون نقشه استفاده ميکنه تا تحقيقات رو به " "خصوصيت صادرات محدود کنه" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "کد صادرات را ردیابی کنید" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "صفحه یک API کوچک را فرا می خواند" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4719,7 +4719,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4731,7 +4731,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4741,7 +4741,7 @@ msgstr "" "خواندن handler به سوال اصلی پاسخ می دهد: {ph0} یادداشت ها را فرمت می کند و " "فرآیند اصلی می نویسد {ph1} به پوشه دانلود کاربر." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4750,7 +4750,7 @@ msgstr "" "ضبط شده توسط REA 4.1.0 در مثال زیر قابل دانلود است. مکان های منبع همراه با " "api ، کانال و یافته های کنترل کننده است." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "مثال را خودتان تجزیه و تحلیل کنید" @@ -4758,25 +4758,25 @@ msgstr "مثال را خودتان تجزیه و تحلیل کنید" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}دانلود نمونه زیپ{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "شش فایل منبع را مرور کنید" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "تجزیه و تحلیل کاربرد استاتیک" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4786,7 +4786,7 @@ msgstr "" "مسیر را با پوشه ای که باز کرده اید جایگزین کنید. شما باید یک کانال IPC و یک " "کنترل کننده تطبیق در {ph0}. مکان های منبع در {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4797,13 +4797,13 @@ msgstr "" "عامل می تواند یک رشته ، نام API یا کانال IPC را با ابزارهای ردیابی ویژگی REA" " دنبال کند." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "نویسنده CSV را بازرسی کنید" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4813,7 +4813,7 @@ msgstr "" "دنبال کنید {ph0} به دستگیره اش کدام ورودی ها به CSV writer می رسند و اگر " "نوشتن فایل شکست بخورد چه اتفاقی می افتد ؟" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4828,7 +4828,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4842,7 +4842,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4856,7 +4856,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4881,32 +4881,32 @@ msgstr "" "ردیابی یادداشت CSV صادرات از طریق یک api رندر, پیش بار و کنترل IPC با REA . " "شامل فایل های نمونه قابل دانلود و یک نتیجه تجزیه و تحلیل تایید شده است." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript و Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "کپی مثال prompt" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "تجزیه و تحلیل برنامه های استاتیک را کپی کنید" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -4915,7 +4915,7 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -4923,13 +4923,13 @@ msgstr "" "{ph0}خانه{ph1} / {ph2}راهنماها{ph3} / تجزیه و تحلیل برنامه های کد ماشین" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -4938,14 +4938,14 @@ msgstr "" "دستورالعمل های اصلی را بررسی کنید ، ورودی و ثابت ها را شناسایی کنید ، سپس C " "بازیابی شده را بررسی کنید." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "در این راهنما" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4953,7 +4953,7 @@ msgstr "{ph0}مثال{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4961,7 +4961,7 @@ msgstr "{ph0}از نماینده خود بپرسید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4969,7 +4969,7 @@ msgstr "{ph0}نتایج REA را بخوانید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4977,18 +4977,18 @@ msgstr "{ph0}بازیابی و بررسی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "موقعیت صدای استریو چپ/راست را محاسبه کنید" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4999,7 +4999,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5011,7 +5011,7 @@ msgstr "" "همچنین دستورالعمل ها و تماس گیرندگان خود را باز می گرداند که به نماینده راهی" " برای بررسی حساب گمشده می دهد." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "تازه وارد اين اصطلاحات هستي ؟" @@ -5020,7 +5020,7 @@ msgstr "تازه وارد اين اصطلاحات هستي ؟" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5032,7 +5032,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5045,7 +5045,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5058,7 +5058,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5069,7 +5069,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5079,7 +5079,7 @@ msgstr "" "{ph0}ثابت ها:{ph1} اعداد ثابت ذخیره شده در برنامه ، به عنوان بایت خام خوانده" " شده و رمزگشایی شده است." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "سه قطعه شواهد ، یک محاسبه" @@ -5090,7 +5090,7 @@ msgstr "سه قطعه شواهد ، یک محاسبه" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5107,7 +5107,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5125,7 +5125,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5135,7 +5135,7 @@ msgstr "" "{ph0}03 * بایت داده{ph1}{ph2}ثابت های عددی{ph3}{ph4}بایت های مرجع رمزگشایی " "به {ph5}, {ph6} و یک مقدار مقیاس.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5144,7 +5144,7 @@ msgstr "" "REA دستورالعمل ها ، رابطه فراخوان تابع و بایت ها را ارائه می دهد. عامل آنها " "را با هم تفسیر می کند." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "در مورد رفتار بپرسید" @@ -5153,7 +5153,7 @@ msgstr "در مورد رفتار بپرسید" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5163,19 +5163,19 @@ msgstr "" "بعد از {ph0}اتصال REA به نماینده شما{ph1} و {ph2}تنظیم یک ابزار تجزیه و " "تحلیل برنامه های کد ماشین{ph3}، ارائه فایل اجرایی محلی و یک سوال:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "از کدام ابزار تجزیه و تحلیل استفاده کنم؟" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA برای خواندن برنامه های بومی به یکی از این موارد نیاز دارد:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5189,7 +5189,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5201,7 +5201,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5210,7 +5210,7 @@ msgstr "{ph0} IDA {ph1} (Windows) : برای راه اندازی IDA موجود #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5225,14 +5225,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "کپی" @@ -5243,7 +5243,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5253,7 +5253,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استفاده از REA برای پیدا کردن چگونه DX-Ball محاسبه موقعیت " "صدا استریو. محاسبه را توضیح دهید و کد را نشان دهید.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5264,7 +5264,7 @@ msgstr "" "REA شامل DX-Ball نیست ، بنابراین از نسخه خود استفاده کنید ، یا همان نوع سوال" " را در مورد یک برنامه کوچک Windows که دارید بپرسید." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "چطور می توانم مسیر کامل یک فایل را بدست آورم ؟" @@ -5273,7 +5273,7 @@ msgstr "چطور می توانم مسیر کامل یک فایل را بدست #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5288,7 +5288,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5300,7 +5300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5309,17 +5309,17 @@ msgid "" msgstr "" "{ph0}هر سیستم:{ph1} فایل را به یک پنجره ترمینال بکشید و مسیر آن ظاهر می شود." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "نتایج REA را بخوانید" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "ورودی را بخوانید" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5328,13 +5328,13 @@ msgstr "" "دستورالعمل ها یک استدلال عدد صحیح را بارگذاری می کنند و آن را برای حساب نقطه" " شناور تبدیل می کنند. این ورودی غایب از اولین نمای شبه کد است." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "تماس گیرنده را دنبال کنید" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5345,12 +5345,12 @@ msgstr "" "کاشی را با 30 ضرب می کند ؛ اضافه کردن {ph0} (20) موقعیت صفحه نمایش آجر را می" " دهد." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "ثابت های مرجع را بخوانید" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5359,12 +5359,12 @@ msgstr "" "حساب ها به این آدرس ها اشاره می کنند. خواندن بایت ها ارزش های واقعی را فراهم" " می کند ؛ دستور دستورالعمل به عامل می گوید که چگونه از آنها استفاده می شود." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "عملکرد بازیابی شده را بنویسید و بررسی کنید" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5374,7 +5374,7 @@ msgstr "" "با مقیاس 1.0 ، موقعیت صفحه نمایش 0 ، 320 و 640 نقشه به -500 ، 0 و 500 قبل از" " تبدیل عدد صحیح. محاسبه مرکز صفحه را در مرکز میدان استریو قرار می دهد." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5387,20 +5387,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "آن را با باینری خود امتحان کنید" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5414,7 +5414,7 @@ msgstr "" "سوالات مفید شروع شامل \" این فایل چگونه تجزیه می شود ؟ \"یا\" کدام تابع این " "عمل منو را مدیریت می کند ؟ ”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5423,13 +5423,13 @@ msgstr "" "اگر قبلا یک نام یا آدرس تابع را می دانید ، می توانید آن را از ترمینال پرس و " "جو کنید. برای نصب Ghidra پیکربندی شده:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "تجزیه و تحلیل عملکرد" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5443,7 +5443,7 @@ msgstr "" "جوهای MCP نماینده شما در حالی که جلسه باز است ، از باینری وارد شده استفاده " "می کند." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5466,50 +5466,50 @@ msgstr "" "بازیابی یک محاسبه بومی با REA: دستورالعمل ها را بررسی کنید ، یک تماس گیرنده " "را دنبال کنید ، ثابت ها را بخوانید و C بازسازی شده را بررسی کنید." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "تجزیه و تحلیل برنامه های کد ماشین" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "کپی مثال prompt" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "تجزیه و تحلیل تابع کپی" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "پرش به محتوا" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "راه اندازی REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5517,7 +5517,7 @@ msgstr "{ph0}راه اندازی REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5525,7 +5525,7 @@ msgstr "{ph0}بازی دایناسور{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5533,7 +5533,7 @@ msgstr "{ph0}ماشین حساب{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5541,25 +5541,25 @@ msgstr "{ph0}REA را امتحان کنید {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}بیشتر بدانید{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "مهندسی معکوس ، با عامل برنامه نویسی شما" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "بفهمید نرم‌افزار{ph0}چطور کار می‌کند." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "این درخواست را در دستیار برنامه‌نویسی خود وارد کنید:" @@ -5572,26 +5572,26 @@ msgstr "این درخواست را در دستیار برنامه‌نویسی #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "کپی" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "یا این دستور را در ترمینال اجرا کنید:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" @@ -5599,7 +5599,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5607,7 +5607,7 @@ msgstr "{ph0}01{ph1} شاخه ها را رمزگشایی کنید" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5615,7 +5615,7 @@ msgstr "{ph0}02{ph1} تماس های ردیابی" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5625,20 +5625,20 @@ msgstr "{ph0}03{ph1} قانون را بازیابی کنید" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * کدام شعبه؟" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5647,29 +5647,29 @@ msgid "" msgstr "" "“{ph0}0x5b? 0x5c?{ph1} دو پرش به یک مکان این ها کدام اپراتورها هستند ؟ ”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "به شناسه های فرمان نگاه کنید ، سپس شاخه را برچسب بزنید." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "تقسیم" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "ضرب ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · تابع‌های فراخوانی‌شده چه می‌کنند؟" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5679,24 +5679,24 @@ msgstr "" "\"100 روشن است. تماس ها فقط آدرس هستن {ph0}کدام یک تقسیم می شود ؟ کدام " "مقدار وارد می شود ؟ {ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "توابع یاور را بررسی کنید و مقادیر ذخیره شده را ردیابی کنید." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "تقسیم" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * قانون چیست؟" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5706,19 +5706,19 @@ msgstr "" "\"این مسیر با ورودی دیگر ضرب می شود. پس {ph0}10 درصد به معنی 10 درصد از " "200{ph1} بعد از +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "نام operands و بررسی هر دو مسیر اپراتور." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "استدلال متخصص تصویرسازی" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5736,88 +5736,88 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "مثال پاسخ · بر اساس یافته ها" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA چه چیزی فراهم می‌کند" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "دستورالعمل های کنترل کننده ، کد و تماس های کامپایل شده." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "دستیار چه چیزی توضیح می‌دهد" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" "کدام شاخه اعمال می شود ، چه چیزی محاسبه می شود و چگونه آن را بازسازی کنیم." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "مثال 01 * بازی دایناسور Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "چرا دایناسور سریع‌تر می‌شود؟" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "بازی" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "پرش ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "شروع دوباره" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "سرعت" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "از قانون شتاب بازیابی شده استفاده کنید" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "قانون اصلی: از 6 شروع کنید ، سپس به سمت 13 افزایش دهید." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5830,7 +5830,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5844,18 +5844,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "هدف بازرسی شده: {ph0}نسخه مرورگر مشتق شده از Chromium wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "آزمایشگاه سرعت را باز کنید →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "کاری که هر قسمت انجام میده" @@ -5866,7 +5866,7 @@ msgstr "کاری که هر قسمت انجام میده" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5882,7 +5882,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5899,7 +5899,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5909,13 +5909,13 @@ msgstr "" "{ph0}03 * شما{ph1}{ph2}تغییر سرعت و بازی{ph3}{ph4}شتاب اصلی را امتحان کنید ،" " سپس سرعت خود را انتخاب کنید.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "اسکریپت ، چک ها و نحوه امتحان کردن تحلیل را ببینید" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5925,7 +5925,7 @@ msgstr "" "REA نسخه مرورگر HTTP را از طریق یک اتصال اشکال زدایی محلی بازرسی کرد و نسخه " "بارگذاری شده را بازگرداند {ph0}، از جمله منبع و هضم آن." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5938,7 +5938,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5954,7 +5954,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5971,7 +5971,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5979,34 +5979,34 @@ msgid "" msgstr "" "{ph0}کد سرعت بازرسی شده{ph1} · {ph2} Chromium نویسندگان * مجوز bsd{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "مثال 02 * ماشین حساب Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "دکمهٔ % ماشین‌حساب را بازسازی کنید." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "بازنشانی" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10 درصد از 200 = 20 سپس 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "تصویر تعاملی از قانون درصد بازرسی شده." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6018,7 +6018,7 @@ msgstr "برای این مثال, {ph0} و {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6030,7 +6030,7 @@ msgstr "" "قوانین را پس از + و × بازیابی کنید ، سپس یک ماشین حساب کوچک بسازید که از هر " "دو استفاده کند.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "با +" @@ -6038,13 +6038,13 @@ msgstr "با +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "با ×" @@ -6052,13 +6052,13 @@ msgstr "با ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "از برنامه نصب شده به یک دکمه کار %" @@ -6070,7 +6070,7 @@ msgstr "از برنامه نصب شده به یک دکمه کار %" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6088,7 +6088,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6100,12 +6100,12 @@ msgstr "" "بازتولید کنید{ph3}{ph4}شاخه را با منبع مایکروسافت بررسی کنید ، سپس + و × " "بالا را امتحان کنید.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "کد واقعی و نحوه بررسی پاسخ را ببینید" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6125,7 +6125,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6135,17 +6135,17 @@ msgstr "" "{ph0}درصد پیاده سازی{ph1} · {ph2}موارد تست مایکروسافت{ph3} · {ph4}راهنمای " "راه اندازی بومی{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "اولین تحقیق شما" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "REA را در یک برنامه کوچک امتحان کنید." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6154,17 +6154,17 @@ msgstr "" "نمونه یادداشت های ما را دانلود کنید ، صادرات CSV آن را ردیابی کنید و یک " "ورودی تغییر یافته را بررسی کنید." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "مثال هدایت شده را امتحان کنید" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "برنامه های کد ماشین" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6173,17 +6173,17 @@ msgstr "" "توابع ، رشته ها ، مرجع ها و روابط فراخوان تابع را در فایل های اجرایی و " "کتابخانه ها بازرسی کنید." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "تجزیه و تحلیل برنامه های کد ماشین راهنما" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript و Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6192,17 +6192,17 @@ msgstr "" "ماژول های نقشه ، مسیرها ، IPC و وابستگی های بومی از یک پوشه برنامه یا آرشیو " "ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "گردش کار برنامه" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "مرورگر و فعالیت زمان اجرا" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6211,12 +6211,12 @@ msgstr "" "ضبط مرورگر انتخاب شده یا فعالیت فرآیند ، سپس مقایسه نتایج در سراسر اجرا می " "شود." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "راهنمای مشاهده مرورگر" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "سؤالی دارید؟" @@ -6235,27 +6235,27 @@ msgstr "" "برنامه های مهندسی معکوس ، باینری ها و رفتار مرورگر با عامل برنامه نویسی شما." " راهنماهای واضح را دنبال کنید و نمونه های تعاملی را با REA امتحان کنید ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "کپی REA نصب و راه اندازی prompt" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "دستور Copy setup" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "تجزیه و تحلیل ماشین حساب دستی را دنبال کنید" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "کپی ماشین حساب درصد سوال" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6264,27 +6264,27 @@ msgstr "" "دایناسور مینی بازی. در حالی که بازی متمرکز است از دکمه پرش یا فضای فشار " "استفاده کنید." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "کپی دایناسور تجزیه و تحلیل فوری" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "محاسبه را انتخاب کنید" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "کپی ماشین حساب تجزیه و تحلیل سریع" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -6293,25 +6293,25 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "مطالعه موردی * Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, 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:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6321,17 +6321,17 @@ msgstr "" "Android استفاده کنید ، سپس آن را با ساعتی که می توانید کنترل کنید بازسازی " "کنید." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 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:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "مشاهده Aegis در GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "از یک APK به یک کد شما می توانید تولید مثل" @@ -6342,7 +6342,7 @@ msgstr "از یک APK به یک کد شما می توانید تولید مثل" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6360,7 +6360,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6378,7 +6378,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6390,14 +6390,14 @@ msgstr "" "نسخه ی نمایشی مرورگر جدید این قانون را بازتولید می کند و آن را با موارد مرجع" " عمومی بررسی می کند.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "در این مطالعه موردی" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6405,7 +6405,7 @@ msgstr "{ph0}از نماینده خود بپرسید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6413,7 +6413,7 @@ msgstr "{ph0}ژنراتور کد را امتحان کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6421,7 +6421,7 @@ msgstr "{ph0}پیدا کردن کد با REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6429,7 +6429,7 @@ msgstr "{ph0}محاسبه را بخوانید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6437,20 +6437,20 @@ msgstr "{ph0}بازسازی را بررسی کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "از نماینده خود بپرسید" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6468,21 +6468,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "کپی" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6492,14 +6492,14 @@ msgstr "" "یک مثال برای APK دانلود شده ، با تجزیه و تحلیل اندروید REA پیکربندی شده است." " {ph0}APK و راه اندازی تجزیه و تحلیل را دریافت کنید ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "ژنراتور کد را امتحان کنید" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6511,33 +6511,33 @@ msgstr "" " حساب برای تولید یک کد ترکیب می کند. همان کلید و بلوک همان کد را تولید می " "کنند." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "ساعت را در طول 60 ثانیه حرکت دهید" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "زمان" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "ثانیه ها" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "ساعت نمونه قابل تنظیم ما" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "بلوک 30 ثانیه ای" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "بلوک" @@ -6546,35 +6546,35 @@ msgstr "بلوک" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "کد تولید شده" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "کلید حساب + بلوک → شش رقمی" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "زمان مثال ، در ثانیه" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 ثانیه" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 ثانیه" @@ -6583,7 +6583,7 @@ msgstr "60 ثانیه" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6595,7 +6595,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6605,7 +6605,7 @@ msgstr "" "کلید ثابت است ، عمومی {ph0}داده های تست rfc 6238{ph1}. دمو محاسبه بازیابی " "شده از APK را اجرا می کند ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6614,18 +6614,18 @@ msgstr "" "نمودار نتیجه را در 59 ثانیه نشان می دهد. JavaScript را برای تغییر ساعت فعال " "کنید." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "پیدا کردن کد با REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "APK را به سه کلاس محدود کنید" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6635,14 +6635,14 @@ msgstr "" "{ph0} دو مورد دیگر مربوط به نوار پیشرفت و حساب های وارداتی است. TOTP به " "معنی یک رمز عبور یک بار مبتنی بر زمان است." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "ژنراتور را به صفحه نمایش برنامه وصل کنید" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6653,7 +6653,7 @@ msgstr "" "می کند. بازرسی {ph0} سپس تماس نمایشگر را نشان می دهد {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6663,14 +6663,14 @@ msgstr "" "درخواست ها یک مسیر ورودی کوتاه را نشان می دهند. نام کلاس های نتیجه مشترک را " "حذف می کنند {ph0} پیشوند." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "محاسبه را بخوانید" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6684,7 +6684,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6692,7 +6692,7 @@ msgstr "{ph0}01{ph1} بلوک زمانی" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6700,7 +6700,7 @@ msgstr "{ph0}02{ph1} کلید + بلوک" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6708,7 +6708,7 @@ msgstr "{ph0}03{ph1} شش رقمی" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6720,7 +6720,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6733,7 +6733,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6747,7 +6747,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6757,7 +6757,7 @@ msgstr "" "گزیده هایی از چندین روش بازرسی شده ، با بسته بندی خط برای نمایش. پانل سمت " "راست یک خلاصه توضیحی است. {ph0} کد Aegis GPL-3.0 است.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "داخل ژنراتور" @@ -6766,7 +6766,7 @@ msgstr "داخل ژنراتور" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6776,7 +6776,7 @@ msgstr "" "APK منتشر شده قرار می دهد {ph0} در {ph1}. REA به دنبال تماس از {ph2} و این " "بدن را باز می گرداند ؛ منبع اصلی به کمک کننده زنگ می زند {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6793,20 +6793,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "بازسازی را بررسی کنید" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6818,29 +6818,29 @@ msgstr "" "خروجی آنها با بازسازی مستقل در {ph0}133 مورد آزمایش{ph1}، شامل مرزهای بلوک " "زمانی و کد هایی که با صفر شروع می شوند." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "زمان مثال" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "کد شش رقمی" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 ثانیه" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 ثانیه" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6850,17 +6850,17 @@ msgstr "" "ژنراتور همچنین با شش مورد مرجع SHA-1 منتشر شده در {ph0}RFC 6238{ph1}. پیاده " "سازی مرورگر را با آنها بررسی کنید:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "چک های مرجع را اجرا کنید" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "محاسبه دمو را بخوانید" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6869,7 +6869,7 @@ msgstr "" "موارد مرجع از هشت رقم استفاده می کنند. این چک همچنین نتایج شش رقمی آنها را " "تأیید می کند." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6878,14 +6878,14 @@ msgstr "" "Verification روش های جاوا استخراج شده و دمو جدید را اجرا می کند. اندروید APK" " به صورت استاتیک بازرسی شد." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "APK را خودتان بازرسی کنید" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6897,7 +6897,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6907,18 +6907,18 @@ msgstr "" "Analysis Android به JDK 17 کامل یا بالاتر نیاز دارد. انتخاب کنید با {ph0} یا" " {ph1}. این مورد از JDK 21 استفاده کرد." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6930,7 +6930,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6940,7 +6940,7 @@ msgstr "" "سوال بعدی: {ph0}چه اتفاقی می افتد وقتی یک حساب کاربری از هشت رقم یا یک فاصله" " زمانی متفاوت استفاده می کند ؟ {ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "منابع" @@ -6956,7 +6956,7 @@ msgstr "منابع" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6970,13 +6970,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, 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:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7001,37 +7001,37 @@ msgstr "" "Aegis Android APK را با REA بازرسی کنید ، محاسبه کد ورود شش رقمی خود را " "بازیابی کنید و بازسازی را با یک ساعت قابل تنظیم امتحان کنید." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "مطالعه موردی Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "کپی Aegis مثال prompt" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "محاسبه کد ورود را دنبال کنید" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "کپی APK دستور بازرسی" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -7040,26 +7040,26 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "مطالعه موردی · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "پرچم را در{ph0}یک باینری CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7069,17 +7069,17 @@ msgstr "" "از REA برای بازرسی یک چک کننده پرچم کوچک استفاده کنید ، قوانین آن را به " "معادلات تبدیل کنید و ورودی را پیدا کنید که برنامه اصلی را چاپ کند {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 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:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "چالش اصلی را مشاهده کنید" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "از یک باینری به یک پاسخ چک شده" @@ -7090,7 +7090,7 @@ msgstr "از یک باینری به یک پاسخ چک شده" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7107,7 +7107,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7125,7 +7125,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7137,20 +7137,20 @@ msgstr "" "پایتون معادلات را حل می کند. REA برنامه اصلی پذیرش نتیجه را ضبط می " "کند.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 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:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "در این مطالعه موردی" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7158,7 +7158,7 @@ msgstr "{ph0}کد چک کردن را پیدا کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7166,7 +7166,7 @@ msgstr "{ph0}یک ماسک بخوانید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7174,7 +7174,7 @@ msgstr "{ph0}مونتاژ به کد قابل خواندن{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7182,7 +7182,7 @@ msgstr "{ph0}معادلات را حل کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7190,20 +7190,20 @@ msgstr "{ph0}پاسخ را بررسی کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}خودتان امتحان کنید{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "کد چک کردن را پیدا کنید" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7221,17 +7221,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "کپی" @@ -7242,7 +7242,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7254,7 +7254,7 @@ msgstr "" "استفاده کنید. نحوه کار چک ها را توضیح دهید ، سپس پاسخ را با برنامه اصلی " "تأیید کنید.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7263,12 +7263,12 @@ msgstr "" "یک مثال سریع، با چالش دانلود شده در دسترس محلی و تجزیه و تحلیل ارائه دهنده " "برنامه های کد ماشین متصل شده است." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "از دستور ورودی به تابع آن پیروی کنید" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7277,14 +7277,14 @@ msgstr "" "مرجع به مامور جایی برای تحقیق می دهد ، حتی اگر نام های اصلی تابع اجرایی حذف " "شده باشند." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "چک کننده و دو کمک کننده اش رو بخون" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7296,7 +7296,7 @@ msgstr "" "کند ، کدهای انتخاب شده را جمع می کند و نتیجه را با یک عدد ذخیره شده مقایسه " "می کند. اون {ph0}- گام های بایت در سراسر {ph1} بایت ها 26 ماسک می دهند." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7305,12 +7305,12 @@ msgstr "" "این نتایج از تجزیه و تحلیل REA تازه انتخاب شده است. مسیر هدف محلی برای نمایش" " کوتاه می شود ؛ آدرس ها به تصویر وارد شده REA مراجعه می کنند." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "یک چک یک شخصیت را نشان می دهد" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7323,13 +7323,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "ماسک و هدف آن را از باینری بخوانید" @@ -7338,7 +7338,7 @@ msgstr "ماسک و هدف آن را از باینری بخوانید" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7350,12 +7350,12 @@ msgstr "" " دلیل است {ph1} به معنی -21 هدف یک عدد صحیح اندکی است. با هم ، این بایت ها " "به عامل می گویند که {ph2}، پس اون شخصیت {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "از دستورالعمل ها تا چک قابل خواندن" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7366,7 +7366,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7374,7 +7374,7 @@ msgstr "{ph0}01{ph1} شروع کن" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7382,7 +7382,7 @@ msgstr "{ph0}02{ph1} انتخاب کنید" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7390,7 +7390,7 @@ msgstr "{ph0}03{ph1} اضافه کردن" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7398,18 +7398,18 @@ msgstr "{ph0}04{ph1} پیشبرد" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} مقایسه کنید" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * دستورالعمل های اصلی انتخاب شده" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "قابل خواندن c * یک چک خلاصه" @@ -7417,7 +7417,7 @@ msgstr "قابل خواندن c * یک چک خلاصه" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7426,7 +7426,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7438,7 +7438,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7450,7 +7450,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7464,7 +7464,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7474,7 +7474,7 @@ msgstr "" "{ph0}05 * با هدف ذخیره شده مقایسه کنید.{ph1} تماس گیرنده مبلغ را در {ph2}. " "عدم تطابق به {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7483,12 +7483,12 @@ msgstr "" "دستورالعمل ها از طرف کمک کننده جمع آوری و تماس گیرنده اش می آید. C یک خلاصه " "توضیحی با نام های توصیفی و یک حلقه 36 سلولی مسطح است." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "معادلات 26 را حل کنید" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7499,13 +7499,13 @@ msgstr "" "کاراکتر اضافه می کند و در مجموع 1441 مورد نیاز دارد. انتخاب های همپوشانی " "معادلاتی را ارائه می دهند که یک اسکریپت کوچک پایتون می تواند با هم حل کند." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "پایتون * گزیده حل کننده" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7519,19 +7519,19 @@ msgstr "" "حروف ، ارقام ، زیرنویس ها و بریس ها. دانلود کامل شامل تمام 26 ماسک و هدف " "است." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "دانلود حل کننده کامل" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "پاسخ را با برنامه اصلی بررسی کنید" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7543,47 +7543,47 @@ msgstr "" "کند. تغییر یک کاراکتر انتخاب شده از {ph0} به {ph1} اولین مبلغ 1440 را به جای" " 1441 می سازد و برنامه آن را رد می کند." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "ورودی" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "خروجی مشاهده شده" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "کد خروج" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "پرچم حل کننده" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "یک شخصیت تغییر کرد" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "نشان دادن پرچم بازیابی شده و خروجی گرفته شده" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * خروجی برنامه اصلی" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "پرچم کپی" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7592,12 +7592,12 @@ msgstr "" "مقدار بازیابی شده همچنین با پرچم در متا داده های چالش منتشر شده سازمان " "دهندگان مطابقت دارد که پس از حل باینری بررسی شده است." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "منبع ، هویت هدف و جزئیات تجزیه و تحلیل" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7607,7 +7607,7 @@ msgstr "" "تجزیه و تحلیل تازه و دو فرآیند ضبط در 8 اکتبر 2026 ، با استفاده از REA 4.1.0" " با Ghidra 12.1.4 در Linux x64. باینری یک ELF x86-64 است که 15248 بایت است." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7629,7 +7629,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7639,12 +7639,12 @@ msgstr "" "{ph0}با منبع سازمان دهندگان مقایسه کنید{ph1} · {ph2}چالش متا داده ها و " "پرچم{ph3} · {ph4} یادداشت های شواهد REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "خودتان امتحان کنید" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7653,13 +7653,13 @@ msgstr "" "چالش اصلی و حل کننده را در یک پوشه دانلود کنید. از دستور بالا برای تحقیق با " "نماینده خود استفاده کنید یا اسکریپت همراه را اجرا کنید." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "ترمینال * حل و اجرا" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7670,7 +7670,7 @@ msgstr "" "اسکریپت پرچم کاندیداها را چاپ می کند ؛ آن را در دستور برنامه چسبانید. حل " "نیازها پایتون و {ph0}. اجرای فایل اجرایی اصلی نیاز به Linux x86-64 دارد." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "REA را با عامل کدگذاری خود تنظیم کنید" @@ -7691,27 +7691,27 @@ msgstr "" "توابع چک کردن را پیدا کنید ، ماسک ها را استخراج کنید و یک پرچم بازیابی شده " "را با برنامه اصلی مقایسه کنید." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "مطالعه موردی ctf flag-checker" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "کپی نمونه ctf prompt" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "معادله ماسک ctf ؛ به صورت افقی روی صفحه نمایش های کوچکتر حرکت کنید" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7722,42 +7722,42 @@ msgstr "" "می کند. فقط اون سلول به جمع کمک ميکنه کد کاراکتر مورد نیاز آن 55 است ، به " "این معنی که کاراکتر 7 است." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "بررسی CTF را دنبال کنید" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "کپی ctf مونتاژ" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Ctf قابل خواندن را کپی کنید" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "کپی ctf solver گزیده" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "کپی پرچم بازیابی شده" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "دستورات ctf solver را کپی کنید" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -7766,25 +7766,25 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "مطالعه موردی * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, 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:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7793,14 +7793,14 @@ msgstr "" "هدف یک نسخه c قابل نگهداری از بازی Windows 1996 است. REA به عامل کمک می کند" " تا اصل را بازرسی کند ، یک عملکرد در یک زمان." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7812,14 +7812,14 @@ msgstr "" "های خوانده شده را ارائه می دهد ؛ پروژه بازسازی نتیجه را اجرا و آزمایش می " "کند. {ph0}شکل باز{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "در این مطالعه موردی" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7827,7 +7827,7 @@ msgstr "{ph0}پروژه{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7835,7 +7835,7 @@ msgstr "{ph0}پان صدا{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7843,23 +7843,23 @@ msgstr "{ph0}بررسی نتیجه{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "توابع c نگهداری شده" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "مقایسه با کد اصلی" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "توابع با تطبیق بایت های کامپایل شده" @@ -7870,7 +7870,7 @@ msgstr "توابع با تطبیق بایت های کامپایل شده" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7879,12 +7879,12 @@ msgid "" msgstr "" "بازرسی پروژه: 7 اکتبر 2026. {ph0}دفتر کل پیشرفت{ph1} · {ph2}پوشش تست{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "پروژه تا کنون" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7898,12 +7898,12 @@ msgstr "" " فراهم می کند. کار بر روی بازی قابل پخش با فیزیک توپ و بادکنک ، دست زدن به " "قدرت و ادغام Windows ادامه دارد." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "پیدا کردن محاسبه موقعیت صدا چپ / راست" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7922,17 +7922,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "کپی" @@ -7943,7 +7943,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7953,7 +7953,7 @@ msgstr "" "{ph0}›{ph1}{ph2}استفاده از REA برای پیدا کردن چگونه DX-Ball محاسبه موقعیت " "صدا استریو. محاسبه را توضیح دهید و کد را نشان دهید.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7963,7 +7963,7 @@ msgstr "" "یک مثال برای عامل کدگذاری شما ، با فایل اجرایی محلی در دسترس است. تحقیقات " "زیر سوالات REA و شواهد پشت پاسخ را نشان می دهد." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7977,7 +7977,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7990,12 +7990,12 @@ msgstr "" " دستورالعمل آن ورودی پشته و عملیات نقطه شناور را نشان می داد. اين اختلاف به " "مامور دليل مشخصي براي ادامه تحقيقات داد" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "اولین نمایش decompiler" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8004,18 +8004,18 @@ msgstr "" "خروجی یک تماس تبدیل را نشان می دهد. خواندن دستورالعمل های زیر نشان می دهد " "ورودی و محاسبه تغذیه که تماس." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "پاسخ به سه سوال از طریق REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "بازیابی ورودی گمشده" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8025,14 +8025,14 @@ msgstr "" "نتیجه تابع شامل دستورالعمل ها در کنار کد شبه و تماس گیرندگان است. اینجا, " "{ph0} ورودی عدد صحیح را که از نمای decompiler گم شده است ، نشان می دهد." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "تماس گیرنده را دنبال کنید تا ورودی را درک کنید" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8042,12 +8042,12 @@ msgstr "" "REA این تماس گیرنده را در اولین نتیجه شناسایی کرد. مقیاس دستورالعمل های قبلی" " آن {ph0} با 30 ؛ اضافه کردن 20 مختصات صفحه نمایش آجر را می دهد, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "مقادیر پشت آدرس های حافظه را بخوانید" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8056,12 +8056,12 @@ msgstr "" "بایت های بازگردانده شده دو ثابت ریاضی و مقیاس اولیه پان را ایجاد می کنند. " "عامل اکنون مقادیر مورد نیاز برای عبارت C را دارد." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "از یافته های REA به C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8072,7 +8072,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8080,7 +8080,7 @@ msgstr "{ph0}01{ph1} ورودی" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8088,7 +8088,7 @@ msgstr "{ph0}02{ph1} ضرب" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8096,7 +8096,7 @@ msgstr "{ph0}03{ph1} کسر" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8104,18 +8104,18 @@ msgstr "{ph0}04{ph1} مقیاس" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "نسخه اصلی x86 ·" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "بازسازی شده C" @@ -8125,7 +8125,7 @@ msgstr "بازسازی شده C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8145,7 +8145,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8162,7 +8162,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8179,7 +8179,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8196,7 +8196,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8208,7 +8208,7 @@ msgstr "" "در نتایج callee REA شناسایی شده است. C نتیجه را به {ph4}; مقایسه های " "اصلی-x86 مقدار برگشت داده شده را بررسی کنید." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8219,23 +8219,23 @@ msgstr "" "کامل زیر همچنین شامل فروشگاه های مداخله کننده و تنظیم و تمیز کردن عملکرد " "است." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "تجمع کامل و شواهد حمایتی" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "نتیجه REA · 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "آنچه تماس گیرنده ارائه می دهد" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8245,54 +8245,54 @@ msgstr "" "عملکرد ضربه آجر در {ph0} مختصات کاشی خود را با 30 مقیاس می دهد ، 20 را اضافه" " می کند ، سپس قبل از تماس آن را فشار می دهد:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "آنچه داده ها می خوانند تعیین می کنند" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "آدرس" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "ارزش" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "مورد استفاده برای" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "ضرب اول" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "تفریق" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} در ابتدا" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "مقیاس پان ذخیره شده" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8308,7 +8308,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8316,12 +8316,12 @@ msgid "" "references{ph3}" msgstr "{ph0}منبع نگهداری شده{ph1} · {ph2}یادداشت های تحقیق و مرجع شواهد{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "بررسی عملکرد بازیابی شده" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8330,12 +8330,12 @@ msgstr "" "تابع بازیابی شده دو چک را می گذراند: مقادیر بازگشت آن با اصل مطابقت دارد و " "بایت های کامپایل شده آن با فایل اجرایی مطابقت دارند." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3205 مورد رفتار" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8346,12 +8346,12 @@ msgstr "" "مقایسه می کنند.آنها هر موقعیت عدد صحیح را از 0 تا 640 در پنج مقیاس پان پوشش " "می دهند: 0 ، 0.5 ، 1 ، 20 و -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 باایت تطبیق" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8362,7 +8362,7 @@ msgstr "" "عملکرد کامل پس از اعمال جابجایی های بررسی شده و بررسی ثابت های مرجع مطابقت " "دارد." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8377,18 +8377,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "ادامه تحقیقات" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8399,7 +8399,7 @@ msgstr "" "شود: عملکردهای مربوطه را بررسی کنید ، وضعیت و وابستگی های آنها را بازیابی " "کنید ، سپس پیاده سازی را با اصلی مقایسه کنید." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8408,7 +8408,7 @@ msgstr "" "برای بررسی عملکرد پان صدا خودتان ، دستورالعمل های راه اندازی پروژه DX-Ball " "را دنبال کنید و هدف اصلی تطبیق یافته آن را ارائه دهید. سپس اجرا کنید:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "در پرداخت DX-Ball" @@ -8417,7 +8417,7 @@ msgstr "در پرداخت DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8430,7 +8430,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8446,7 +8446,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8470,14 +8470,14 @@ msgstr "" "بازسازی DX-Ball را از تجزیه و تحلیل باینری از طریق REA به تست های c ، " "original-x86 و تطبیق بایت های تابع کامپایل شده دنبال کنید." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 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:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8493,70 +8493,70 @@ msgstr "" "3205 مورد و توسط vc4.0 compiler replay که با 63 بایت مطابقت دارد ، بررسی می " "شود." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "مطالعه موردی بازسازی DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "کپی مثال prompt" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "محاسبه موقعیت صدا چپ / راست را دنبال کنید" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "کپی گزیده اصلی مونتاژ" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "کپی تابع صدا-پان" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "کپی کامل مونتاژ پان صدا" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "دستور تجزیه و تحلیل DX-Ball را کپی کنید" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}خانه{ph1} / ویترین ها" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "مطالعات موردی REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8564,17 +8564,17 @@ msgid "" msgstr "" "اندروید ، بازی ، Electron و یک چالش CTF ، با کد ، ارقام و نتایج بررسی شده." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * تجزیه و تحلیل APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "چگونه یک احراز هویت یک کد ورود را تولید می کند" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8585,22 +8585,22 @@ msgstr "" " با REA ردیابی کنید ، سپس یک ساعت نمایشی را حرکت دهید تا ببینید چرا کد هر 30" " ثانیه تغییر می کند." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "مطالعه موردی اندروید را بخوانید" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "Ctf * تجزیه و تحلیل برنامه های کد ماشین" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "یک چک کننده پرچم CTF را حل کنید" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8611,22 +8611,22 @@ msgstr "" "ماسک ها و جمع ها را به معادلات تبدیل کنید ، سپس پرچم حل شده را با برنامه " "اصلی تأیید کنید." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "مطالعه موردی CTF را بخوانید" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "بومی * بازسازی" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "محاسبه DX-Ball از سمت چپ / راست موقعیت صدا" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8637,22 +8637,22 @@ msgstr "" "REA ، مرجع های تماس گیرنده و ثابت های عددی منجر به یک تابع C کوچک می شود که " "با رفتار اصلی و تمام 63 بایت کامپایل شده بررسی می شود." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "مطالعه موردی DX-Ball را بخوانید" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * ردیابی ویژگی" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "چگونه Notion متن و HTML را کپی می کند" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8663,22 +8663,22 @@ msgstr "" "IPC آن را به کلیپ بورد سیستم دنبال کنید ، سپس ببینید که چگونه یک نشانگر HTML" " کوچک داده های بلوک غنی را به یک کپی متصل می کند." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "مطالعه موردی Notion را بخوانید" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * بازسازی" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "چگونه TH04 یک حلقه گلوله را هدف قرار می دهد" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8689,17 +8689,17 @@ msgstr "" " آن را با c++ قابل خواندن مطابقت دهید ، سپس ببینید که چگونه آنها یک حلقه را " "برای بازیکن تولید می کنند." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "مطالعه موردی TH04 را بخوانید" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "راهنماهای گام به گام" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8708,7 +8708,7 @@ msgstr "" "راهنماها از طریق یک محاسبه بومی ، یک صادرات Electron و یک درخواست مرورگر قدم" " می زنند. هر کدام با یک هدف و یک هدف مشخص شروع می شود." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "راهنماها را بخوانید" @@ -8727,12 +8727,12 @@ msgstr "" "تحقیقات REA را از طریق کد ، ارقام و نمایشی دنبال کنید: یک احراز هویت Android" " ، DX-Ball ، Notion ، TH04 و یک چک کننده پرچم DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -8741,25 +8741,25 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "مطالعه موردی * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8768,12 +8768,12 @@ msgstr "" "یک تماس کلیپ بورد از API صفحه Notion را از طریق فرآیند پیش بارگذاری و اصلی " "به نویسنده کلیپ بورد Electron ردیابی کنید." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "پل داخل بسته دسکتاپ Notion" @@ -8785,7 +8785,7 @@ msgstr "پل داخل بسته دسکتاپ Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8802,7 +8802,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8819,7 +8819,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8836,7 +8836,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8847,13 +8847,13 @@ msgstr "" "ارائه شده را می نویسد.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8862,14 +8862,14 @@ msgstr "" "کد بسته بندی شده از همان کانال در فرآیند پیش بارگذاری و اصلی استفاده می کند." " حل کردن بسته بندی ها نشان می دهد که Electron پشت این نام ها صدا می زند." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "در این مطالعه موردی" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8877,7 +8877,7 @@ msgstr "{ph0}پل کلیپ بورد را دنبال کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8885,19 +8885,19 @@ msgstr "{ph0}حفظ ساختار یک بلوک{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "عملیات کپی به کجا می رود ؟" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8917,17 +8917,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "کپی" @@ -8938,7 +8938,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8948,19 +8948,19 @@ msgstr "" "{ph0}›{ph1}{ph2}از REA برای ردیابی نحوه کپی متن و HTML Notion در کلیپ بورد " "سیستم استفاده کنید. کد را در هر مرحله نشان دهید.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA می یابد که از کجا شروع به خواندن" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8971,13 +8971,13 @@ msgstr "" "درخواست IPC را ارسال می کند قرار می دهد. هر دو یافته با محدوده منبع در بسته " "کوچک شده همراه است:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "یافته های REA → دو مکان برای باز کردن" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8990,7 +8990,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9004,12 +9004,12 @@ msgstr "" " دقيقي ميده که بايد در بسته اصلي دنبالش بگرده چهار بخش زیر مسیر اتصال آن را " "نشان می دهد." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "چهار قطعه کد کوتاه" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9018,13 +9018,13 @@ msgstr "" "ساده شده از JavaScript بسته بندی شده ، با نام متغیر قابل خواندن. اعضای غیر " "مرتبط حذف می شوند." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "از API در معرض صفحه شروع کنید" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9034,13 +9034,13 @@ msgstr "" "این عضو نام کانال را ارائه می دهد. اجرای {ph0} به ما می گوید که چگونه " "درخواست از روند صفحه خارج می شود." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "بسته بندی پیش بارگذاری را حل کنید" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9050,14 +9050,14 @@ msgstr "" "تابع بازگردانده شده آرگومنت ها را از طریق IPC درخواست و پاسخ Electron ارسال " "می کند. حالا می تونیم دنبالش بگردیم {ph0} در سمت اصلی فرآیند." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "نحوه ثبت نام گیرنده را بررسی کنید" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9067,12 +9067,12 @@ msgstr "" "فرآیند اصلی از یک بسته بندی دیگر استفاده می کند. اون {ph0} روش ثبت یک {ph1} " "گیرنده برای اون کانال" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "نوشتن و چک فرستنده آن را پیدا کنید" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9083,13 +9083,13 @@ msgstr "" " کلیپ بورد Electron منتقل می کند. کانال و دو بسته بندی حل شده روش در معرض را" " به این تماس متصل می کنند." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "بلوک کپی شده چگونه ساختار خود را حفظ می کند ؟" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9099,27 +9099,27 @@ msgstr "" "ویرایشگر وب Notion متن و HTML را از طریق {ph0}. این داده های بلوک را به صورت" " محلی نگه می دارد و یک ID را در HTML کپی شده برای اتصال آنها قرار می دهد." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "لینک های HTML برای ذخیره داده های بلوک" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "شناسه HTML را بخوانید" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "همان شناسه محلی را پیدا کنید" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "بازیابی داده های بلوک Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9128,7 +9128,7 @@ msgstr "" "متن تصویری و شناسنامه. تست ماژول ضبط شده داده های بلوک را هنگام مطابقت IDs " "بازیابی می کند ؛ یک ورودی قدیمی فقط متن و HTML را باز می گرداند." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9137,23 +9137,23 @@ msgstr "" "در paste ، Notion به دنبال شناسه HTML است و آن را با نسخه ذخیره شده بررسی می" " کند. تطبیق شناسه بازیابی داده های بلوک." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "نمونه ها و منابع بیشتر" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "مثال دیگر: جداول Markdown" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9162,12 +9162,12 @@ msgstr "" "Notion تجزیه و تحلیل Markdown به داده های بلوک. این مثال نشان می دهد که " "چگونه یک جدول به عنوان عنوان و ردیف داده تبدیل می شود." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "جدول از طریق تجزیه کننده Markdown Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9176,13 +9176,13 @@ msgstr "" "خروجی ضبط شده از یک تجزیه کننده Markdown استخراج شده. جدول به ردیف ها و سلول" " ها تبدیل می شود." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "مسیر دیگر: اتصال آفلاین SQLite" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9195,7 +9195,7 @@ msgstr "" "کند و یک پورت به رندر و دیگری به یک فرآیند ابزار SQLite می دهد. دسته های " "بیانیه های بعدی و نتایج از آن بندر عبور می کنند." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9204,7 +9204,7 @@ msgstr "" "پس از این انتقال توضیح می دهد که کار پایگاه داده کجا اجرا می شود و چرا " "ردیابی تنها درخواست اولیه IPC مکالمه بعدی را از دست می دهد." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "منابع و نحوه خواندن گزیده ها" @@ -9212,7 +9212,7 @@ msgstr "منابع و نحوه خواندن گزیده ها" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9230,7 +9230,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9246,7 +9246,7 @@ msgstr "" " را اجرا می کنند ؛ خروجی های آنها این پروب ها را به جای یک جلسه رابط کاربری " "دسکتاپ ضبط شده توصیف می کند." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9260,7 +9260,7 @@ msgstr "" "خواندن پیاده سازی های بسته بندی خود در بسته متصل می شوند." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9278,7 +9278,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9292,7 +9292,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9318,52 +9318,52 @@ msgstr "" "Electron ، با گزیده های کوتاه کد و نگاهی به قالب کلیپ بورد غنی آن دنبال " "کنید." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "مطالعه موردی Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "کپی Notion تجزیه و تحلیل prompt" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "کپی Notion پیش بارگذاری گزیده" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "کپی Notion فراخوان گزیده بسته بندی" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "کپی Notion handler wrapper گزیده" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "کپی Notion کلیپ بورد گیرنده گزیده" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "بازیابی اطلاعات غنی کلیپ بورد در paste" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "بازگشت به بالا" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -9372,25 +9372,25 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "مطالعه موردی * Touhou 4: داستان سرزمین لوتوس" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9400,17 +9400,17 @@ msgstr "" "dos اصلی استفاده کنید ، سپس دستورالعمل های آن را به C read قابل خواندن دنبال" " کنید." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "بازسازی TH04 را مشاهده کنید" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "از دستورالعمل های اصلی تا منبع چک شده" @@ -9421,7 +9421,7 @@ msgstr "از دستورالعمل های اصلی تا منبع چک شده" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9437,7 +9437,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9454,7 +9454,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9470,7 +9470,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9482,7 +9482,7 @@ msgstr "" "کامپایلر ضبط شده کد تولید گلوله ای را که شامل این کمک کننده است ، پوشش می " "دهد.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9491,14 +9491,14 @@ msgstr "" "REA کد اصلی و شواهد تجزیه و تحلیل آن را باز می گرداند. پروژه TH04 منبع " "نگهداری شده و چک های کامپایلر را تامین می کند." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "در این مطالعه موردی" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9506,7 +9506,7 @@ msgstr "{ph0}حلقه گلوله{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9514,7 +9514,7 @@ msgstr "{ph0}چه REA باز می گردد{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9522,7 +9522,7 @@ msgstr "{ph0}مونتاژ به C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9530,18 +9530,18 @@ msgstr "{ph0}بررسی منبع{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}پروژه کامل{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "چگونه یک حلقه به بازیکن هدف می گیرد" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9560,16 +9560,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "کپی" @@ -9580,7 +9580,7 @@ msgstr "کپی" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9591,7 +9591,7 @@ msgstr "" "گلوله و هدف آن را در بازیکن. محاسبه را توضیح دهید و کد را نشان " "دهید.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9599,7 +9599,7 @@ msgid "" msgstr "یک مثال سریع ، با فایل اجرایی اصلی و پرداخت بازسازی در دسترس محلی." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9613,7 +9613,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9623,12 +9623,12 @@ msgstr "" "یک تصویر از ریاضیات زاویه بازیابی شده برای شمارش 16 ، جهت بازیکن 40 و چرخش " "قالب 0. {ph0}شکل باز{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "قالب شلیک در منبع بازیابی شده" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "حمله حلقه ای الی * منبع گزیده" @@ -9637,7 +9637,7 @@ msgstr "حمله حلقه ای الی * منبع گزیده" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9647,13 +9647,13 @@ msgstr "" "این خطوط الگوی را قبل از دشواری و تنظیم عملکرد انتخاب می کنند. {ph0}منبع " "حمله رو بخون{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "چه REA باز می گردد" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9665,12 +9665,12 @@ msgstr "" "REA دستورالعمل ها ، کد شبه و مرجع خود را باز می گرداند. سه قسمت از این نتیجه" " الگوی را توضیح می دهد." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "قبل از خواندن کد آن ، تصویر DOS را بررسی کنید" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9679,7 +9679,7 @@ msgstr "" "چک کد بارگذاری شده و سوابق جابجایی را به فایل اجرایی ارائه شده متصل می کند. " "مسیر بالا برای نمایش کوتاه شده است." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "ضرب و تقسیم حلقه را بخوانید" @@ -9687,7 +9687,7 @@ msgstr "ضرب و تقسیم حلقه را بخوانید" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9699,12 +9699,12 @@ msgstr "" "از شمارش خوانده شده از {ph1}. نام های منبع نگهداری شده که فیلد {ph2}. دنباله" " کامل در زیر ظاهر می شود." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "پیدا کردن جایی که الگوی به سمت بازیکن می چرخد" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9717,12 +9717,12 @@ msgstr "" " قابل خواندن می کنند ؛ REA به نماینده اجازه می دهد عملیات اصلی پشت آنها را " "بررسی کند." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "از مونتاژ به c قابل خواندن++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9735,7 +9735,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9743,7 +9743,7 @@ msgstr "{ph0}01{ph1} شاخص" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9751,7 +9751,7 @@ msgstr "{ph0}02{ph1} فضا" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9759,7 +9759,7 @@ msgstr "{ph0}03{ph1} هدف" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9767,18 +9767,18 @@ msgstr "{ph0}04{ph1} چرخش" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} فروشگاه" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * دستورالعمل های اصلی 16 بیتی" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "قابل خواندن c summary * هدف-خلاصه حلقه" @@ -9786,7 +9786,7 @@ msgstr "قابل خواندن c summary * هدف-خلاصه حلقه" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9800,7 +9800,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9815,7 +9815,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9830,7 +9830,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9845,7 +9845,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9858,7 +9858,7 @@ msgstr "" "به میدان زاویه تخم ریزی ارزش ها بعد از 255 بسته بندی می شوند ، درست مثل " "بازیگران بدون بایت. منبع اطراف نیز این زاویه و سرعت را به سرعت تبدیل می کند." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9869,7 +9869,7 @@ msgstr "" "یک خلاصه قابل خواندن است. چک های کامپایلر زیر برای منبع نگهداری شده در پروژه" " مرتبط اعمال می شود." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "حلقه نگهداری شده و منبع هدف را بخوانید" @@ -9886,7 +9886,7 @@ msgstr "حلقه نگهداری شده و منبع هدف را بخوانید" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9895,12 +9895,12 @@ msgid "" msgstr "" "{ph0}ماکرو حلقه{ph1} · {ph2}منبع هدف و سرعت{ph3} · {ph4}نمایش زاویه{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "بررسی منبع نگهداری شده" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -9909,12 +9909,12 @@ msgstr "" "چک های ضبط شده پروژه TH04 کد تولید گلوله ، از جمله این کمک کننده را با " "زنجیره ابزار توربو C 4 4.0 J خود جمع آوری می کند." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 بایت تطبیق" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -9922,12 +9922,12 @@ msgid "" msgstr "" "کد تولید گلوله کامپایل شده با بخش 2139 بایت از فایل اجرایی اصلی مطابقت دارد." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "دو ساخت تمیز" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9940,65 +9940,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, 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:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "محدوده هویت و تجزیه و تحلیل هدف" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "هدف اصلی" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "ورود کمک کننده" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, 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:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "فایل اصلی جبران" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}، بازگشت توسط {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "بازرسی کد ثبت شده" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 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:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10008,7 +10008,7 @@ msgstr "" "کننده. آنها همچنین سهم نقشه و جابجایی همپوشانی آن را مقایسه می کنند." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10023,7 +10023,7 @@ msgstr "" "های گزارش شده قرار دارند." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10038,7 +10038,7 @@ msgstr "" "یک بازرسی REA تازه از همان هدف اصلی را اضافه می کند. هویت بازی عرضه شده توسط" " فهرست مخزن آن قرار گرفته است ، با منبع مستقل پاک و پاک هنوز باز است." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10048,12 +10048,12 @@ msgstr "" "شکل محاسبه زاویه را نشان می دهد. کنترل های کامل بازی ، زمان بندی و رفتار سخت" " افزاری PC-98 دارای بررسی های زمان اجرا جداگانه در پروژه بازسازی هستند." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "بازسازی کامل TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10066,7 +10066,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10078,7 +10078,7 @@ msgstr "{ph0}مخزن TH04 را کاوش کنید{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10093,7 +10093,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10109,7 +10109,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10134,22 +10134,22 @@ msgstr "" "را بازیابی کنید تا ببینید که چگونه یک حلقه گلوله فاصله دارد و به بازیکن هدف " "قرار می گیرد." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 گلوله-الگوی مطالعه موردی" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "کپی TH04 مثال prompt" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10157,7 +10157,7 @@ msgstr "" "TH04 حلقه های گلوله ثابت و هدفمند ؛ به صورت افقی روی صفحه نمایش های کوچکتر " "حرکت کنید" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10169,27 +10169,27 @@ msgstr "" " یک جهت بازیکن 40 هر جهت را با همان مقدار چرخش می دهد ؛ اولین گلوله برجسته " "به سمت بازیکن اشاره می کند. هر دو فاصله 16 واحد زاویه ای یا 22.5 درجه دارند." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "کپی TH04 قالب شلیک" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "محاسبه حلقه هدف TH04 را دنبال کنید" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "کپی TH04 assembly گزیده" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "کپی قابل خواندن هدف-محاسبه حلقه" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "بازگشت به بالا" @@ -10671,597 +10671,597 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "نمونه‌ها" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "وبلاگ" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "شروع کنید" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "راهنماها" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "کد منبع" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "مجوز MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "به جامعه بپیوندید" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "ما را در X دنبال کنید" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * منبع اسکریپت انتخاب شده" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "کد منبع" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "خروجی قالب مورد انتظار" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "دستورالعمل ها" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "تماس گیرنده" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "ثابت ها" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "تابع C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "دکمه" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API پیش بارگذاری" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "فایل CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "کلیک شما" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "درخواست ضبط شده" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "اسکریپت صادرات" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA نتیجه * خلاصه.گزیده ای از ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA گزیده دستورالعمل * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA گزیده تماس گیرنده * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "نتایج بایت REA * به عنوان دو برابر اندک تفسیر می شود" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "بازیابی C * گزیده" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "ویترین ها →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "تنظیمات انتخاب شده از اسکریپت بازرسی شده" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "خلاصه قابل خواندن از % handler" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * دستورالعمل های اصلی انتخاب شده" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "شناسه های اپراتور * منبع مایکروسافت" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "نماینده → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → عامل * نتایج انتخاب شده" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → عامل * روش ها و تماس گیرندگان" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * جاوا تجزیه شده انتخاب شده" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "خلاصه قابل خواندن * تفسیر نماینده" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP ، بدن کامل" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "دانلود Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "دانلود analysis provider اندروید" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "نماینده → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → عامل * نتایج انتخاب شده" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → عامل * دستورالعمل های انتخاب شده" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "نماینده → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → عامل * ورودی های هفتم" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "اجرایی اصلی * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "دانلود چالش اصلی" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "دانلود حل کننده" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "نتیجه REA * گزیده شبه کد" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "نماینده → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → عامل * گزیده دستورالعمل" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → نماینده * گزیده تماس گیرنده" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "نتایج بایت REA · رمزگشایی به عنوان دو برابر" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "با هدف خود شروع کنید" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "تولید کد" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "قانون بازیابی شده" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "ساعت قابل تنظیم" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "باینری" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "چک کردن کد" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "معادلات" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "درست است!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "قابل اجرا" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "یافته های REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "بازیابی C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "اعتبار سنجی" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "برنامه بسته بندی شده" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Api در معرض" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "بسته بندی IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "کلیپ بورد" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "کد اصلی DOS" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA دستورالعمل" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "محاسبه زاویه" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "حلقه گلوله" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Api صفحه در معرض" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "رندر IPC تماس" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "ارسال به کلیپ بورد سیستم" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "ذخیره شده به صورت محلی توسط Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "ورودی Markdown" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "خروجی تجزیه کننده ساختاری · گزیده" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "برنامه خود را تجزیه و تحلیل کنید" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "نماینده → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → عامل * زمینه های انتخاب شده" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "نماینده → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → عامل * گزیده دستورالعمل" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "نتیجه عملکرد مشابه * گزیده aim" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "C نگهداری شده مربوطه++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "حلقه ماکرو * TH04 شاخه ، گزیده" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "زاویه و سرعت * منبع گزیده" @@ -11294,7 +11294,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11312,7 +11312,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11333,7 +11333,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11354,7 +11354,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11373,7 +11373,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11386,14 +11386,14 @@ msgstr "" "کن.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "بازسازی · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11404,7 +11404,7 @@ msgstr "" "انتخاب کنید و تغییرات پیشنهادی را بررسی کنید." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11413,7 +11413,7 @@ msgstr "یک مثال ارائه شده · {ph0} و npm * عامل کدگذار #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11431,7 +11431,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11446,7 +11446,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11465,7 +11465,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11476,7 +11476,7 @@ msgstr "" " {ph7} و فایل را می نویسد.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11491,7 +11491,7 @@ msgstr "{ph0} * خطوط 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11504,7 +11504,7 @@ msgstr "" "نشان دهید.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11516,16 +11516,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"شما نیاز دارید {ph0} 22 (22.23.4+), 24 (24.22.1+) یا 26+ (>=26.12.1) npm همراه با {ph1}." +"شما نیاز دارید {ph0} 22 (22.23.4+), 24 (24.22.1+) یا 26+ (>=26.12.1) npm " +"همراه با {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11533,20 +11535,20 @@ msgstr "ندارم {ph0}، یا مطمئن نیستید ؟ " #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"اگر {ph0} مقدار v22.23.4+، v24.22.1+ یا v26.12.1+ را چاپ کرد، آماده‌اید. اگر نسخه‌ای " -"قدیمی‌تر یا \"not recognized\" / \"command not found\" را نشان داد، {ph1} 24" -" LTS را نصب کنید:" +"اگر {ph0} مقدار v22.23.4+، v24.22.1+ یا v26.12.1+ را چاپ کرد، آماده‌اید. اگر" +" نسخه‌ای قدیمی‌تر یا \"not recognized\" / \"command not found\" را نشان داد،" +" {ph1} 24 LTS را نصب کنید:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11560,7 +11562,7 @@ msgstr "{ph0} * نمونه منبع گزیده" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11571,9 +11573,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11581,7 +11583,7 @@ msgstr "{ph0} * منبع نمونه" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11595,7 +11597,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11612,7 +11614,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11623,7 +11625,7 @@ msgstr "" "220 می دهند؟{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11637,7 +11639,7 @@ msgstr "REA * بارگذاری شده {ph0} * خطوط انتخاب شده" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11656,7 +11658,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11669,28 +11671,28 @@ msgstr "" "بتوانم زمان را در آن تغییر دهم.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * عضو API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * کمک کننده IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "اصلی/{ph0} * handler helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11709,7 +11711,7 @@ msgstr "تغییر به حالت تیره" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11724,18 +11726,18 @@ msgstr "" "Everywhere را متصل کنید تا ترافیک ضبط‌شده را با عامل خود بررسی کنید." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "مدل‌های تخصصی{ph0}یادداشت" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "آیا مهندسی معکوس به مدل بزرگ‌تری نیاز دارد؟" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11744,12 +11746,12 @@ msgstr "" "تأملاتی بر پایهٔ بازسازی Touhou دربارهٔ مدل‌های عمومی، مدل‌های تخصصی و " "یادگیری از بازخورد کامپایلر." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "توسط N0zoM1z0 · 13 اکتبر 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "پرش به محتوا" @@ -11758,37 +11760,37 @@ msgstr "پرش به محتوا" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}صفحه اصلی{ph1} / {ph2}وبلاگ{ph3} / مدل‌ها و مهندسی معکوس" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "انشا" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "آیا مهندسی معکوس به مدل بزرگتری نیاز دارد؟" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "توسط N0zoM1z0 · 13 اکتبر 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "نکات اصلی" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11801,7 +11803,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11814,7 +11816,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11826,7 +11828,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11839,7 +11841,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11849,14 +11851,14 @@ msgstr "" "{ph0}نتایج بازسازی تایید شده را در کنار زمان و هزینه ارزیابی کنید.{ph1} این " "چیزی است که من می‌خواهم برای گردش کار کامل عامل هوش مصنوعی اندازه‌گیری کنم." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "در این مقاله" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11864,7 +11866,7 @@ msgstr "{ph0}مدل‌های قوی‌تر چه چیزی را تغییر داد #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11872,7 +11874,7 @@ msgstr "{ph0}چرا تخصص داشته باشید؟{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11880,7 +11882,7 @@ msgstr "{ph0}این تجربه در کجا باید ذخیره شود؟{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11888,7 +11890,7 @@ msgstr "{ph0}یادگیری آزمایش مفید بعدی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11896,7 +11898,7 @@ msgstr "{ph0}مهندسی معکوس و یادگیری تقویتی{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11904,7 +11906,7 @@ msgstr "{ph0}هنگامی که بررسی کننده تأیید اشتباه ا #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11912,18 +11914,18 @@ msgstr "{ph0}مقایسه ای که ارزش اجرا دارد{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}این چه نوع عامل هوش مصنوعی را پیشنهاد می کند؟{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "مدل‌های قوی‌تر چه چیزی را تغییر دادند؟" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11937,7 +11939,7 @@ msgstr "" "خصوص Touhou ناشی می شود. همانطور که من مدل‌ها را تغییر داده‌ام، مخازن رکوردی" " از آنچه هر جلسه توانسته است بازیابی کند را نگه داشته است." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11951,12 +11953,12 @@ msgstr "" "شده بود موفق می شود، تغییرات منبع نشان می دهد که چه چیزی این پیشرفت را ممکن " "کرده است." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "متغیرهای موقت به طول عمر همپوشانی نیاز داشتند" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11977,7 +11979,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11990,7 +11992,7 @@ msgstr "" "کد منبع معمولی گزارش کرد. وقتی {ph2}GPT-6.1-Sol دوباره مشکل را بررسی " "کرد{ph3}، یک فرضیه مفید در مورد طول عمر این متغیرهای موقت ارائه کرد." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12007,7 +12009,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12021,7 +12023,7 @@ msgstr "" "همپوشانی باقیمانده را حل کرد. پس از چندین آزمایش هدفمند، {ph0}کامپایل مجدد " "تمیز از منبع تأیید کرد که تابع کامل مطابقت دارد{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12032,7 +12034,7 @@ msgstr "" "مورد طول عمر اشیاء موقت به عامل هوش مصنوعی مسیر جدیدی داد. بازخورد کامپایلر " "به آن کمک کرد تا این فرضیه را به ترتیب کد منبع که مطابقت دارد، اصلاح کند." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "یک نمودار کنترل جریان متفاوت" @@ -12041,7 +12043,7 @@ msgstr "یک نمودار کنترل جریان متفاوت" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12063,7 +12065,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12080,7 +12082,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12093,7 +12095,7 @@ msgstr "" "برای جدی گرفتن قابلیت مدل کلی به من می‌دهد: یک نماینده می‌تواند قبل از یافتن" " راهی بهتر برای بیان کار اطراف، برای مدت طولانی تغییرات محلی را امتحان کند." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12107,7 +12109,7 @@ msgstr "" "های آنها را بررسی کنیم. یک مقایسه کنترل شده به تفکیک اثر مدل از تجربه ای که " "به ارث برده است کمک می کند." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12122,12 +12124,12 @@ msgstr "" "گسترده نیاز دارد؟ یک مدل با کار مکرر با آن کامپایلر و کد چقدر می تواند یاد " "بگیرد؟" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "چرا یک مدل تخصصی هوش مصنوعی ممکن است خوب عمل کند؟" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12141,7 +12143,7 @@ msgstr "" "شروع منطقی هستند. مخازن با مثال‌های مفید این موضوع را تأیید می‌کنند: " "حلقه‌های مرتبط و ترتیبات کمکی فرضیه‌هایی را در بین بازی‌ها ارائه کرده‌اند." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12160,7 +12162,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12176,7 +12178,7 @@ msgstr "" " داده بود که بر انتخاب کامپایلر تأثیر می گذاشت. این فرضیه امیدوارکننده تری " "را برای {ph2}بازسازی {ph3}{ph4} پیشنهاد کرد." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12185,7 +12187,7 @@ msgstr "" "استفاده مجدد از آن الگو برای متغیر اندازه فایل، طرح مورد نیاز را بدون افزودن" " فضای ذخیره سازی ایجاد کرد. سپس تابع کامل مطابقت داشت." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12197,7 +12199,7 @@ msgstr "" "این کامپایلر می‌تواند موارد بسیاری از این قبیل را ببیند و یاد بگیرد که کدام " "تغییرات کد منبع ارزش آزمایش را دارند." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12216,7 +12218,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12235,14 +12237,14 @@ msgstr "" "داشتن یک نویسنده یک انتظار اولیه را به ما می‌دهد، اما هر هدف به ما می‌گوید " "که آیا کاربرد دارد یا خیر. یک مدل تخصصی باید این زمینه ها را متمایز کند." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "این تجربه در کجا باید ذخیره شود؟" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12257,7 +12259,7 @@ msgstr "" "آن به حافظه کاری پروژه نوشتم. این حافظه شامل درس های کامپایلر، همراه با منبع" " و آزمایش های ناموفق است که آنها را مفید ساخته است." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12274,7 +12276,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12291,7 +12293,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12307,7 +12309,7 @@ msgstr "" " بخورد، مدل باید تصمیم بگیرد که نتیجه برای تلاش بعدی چه معنایی دارد. دانستن " "الگوی مربوطه تنها آغاز آن فرآیند است." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12320,12 +12322,12 @@ msgstr "" "دهیم که آموزش چه چیزی را اضافه می کند: تولید نامزد بهتر، تصمیم گیری بهتر پس " "از بازخورد، یا هر دو." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "یادگیری آزمایش مفید بعدی" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12338,7 +12340,7 @@ msgstr "" "می کند. حتی زمانی که کد منبع نامزد ناموفق باشد، نتیجه می تواند احتمالات " "باقیمانده را محدود کند و آزمایش بعدی مفیدتری را پیشنهاد کند." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12350,44 +12352,44 @@ msgstr "" " که کارآمد است، اما مسیر رسیدن به آن منبع حاوی اطلاعات بیشتری است. هر یک از " "آزمایش‌های زیر به شناسایی آنچه که هنوز باید تغییر کند کمک کرد." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "آزمایش کنید" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "آنچه نتیجه آن به ما آموخت" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "روش دیگری را برای کپی کردن نتایج امتحان کنید" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "کد کپی تغییر می کند، اما عملکرد همچنان متفاوت است." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "از مقادیر برگشتی مستقیما استفاده کنید" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "" "کپی کردن از الگوی اصلی پیروی می کند، اما ذخیره سازی موقت همچنان متفاوت است." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "همه متغیرهای موقت را همزمان معتبر نگه دارید" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12396,17 +12398,17 @@ msgstr "" "آنها فضای ذخیره جداگانه ای دریافت می کنند، اما هنوز هم مقداری که بعداً برای " "بررسی برخورد استفاده می شود، همپوشانی دارد." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "مقدار collision-check را جدا نگه دارید" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "یک کامپایل مجدد تمیز از منبع، مطابقت کامل را تأیید می کند." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12415,7 +12417,7 @@ msgstr "" "آزمایش‌های منتخب از بازسازی عملکرد حمله در بالا، گروه‌بندی شده بر اساس آنچه " "به ما آموختند." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12430,7 +12432,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12444,7 +12446,7 @@ msgstr "" "دلیل دیگری اشاره کند. وقتی ویرایش‌های محلی آموزنده نیستند، عامل باید بتواند " "بازنمایی منبع را بازبینی کند یا شواهد را دوباره بررسی کند." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12457,12 +12459,12 @@ msgstr "" "از بازنویسی های مورد نیاز این انتخاب را حذف می کند، همراه با بخشی از رفتاری " "که می خواهیم مدل یاد بگیرد." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "چرا مهندسی معکوس برای یادگیری تقویتی جالب است" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12475,7 +12477,7 @@ msgstr "" "سریع و تکرارپذیر می‌دهند. عامل می‌تواند کد پیشنهادی را کامپایل کند، تفاوت‌ها" " را بررسی کند و گام بعدی را انتخاب کند." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12492,7 +12494,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12514,7 +12516,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12531,7 +12533,7 @@ msgstr "" "از اینکه عامل بتواند یک تصحیح مفید را آزمایش کند، باید تعیین می کرد که چه " "چیزی را باید اندازه گیری کند." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12542,12 +12544,12 @@ msgstr "" "کردن مشکل در وهله اول. هنگامی که آن چک وجود داشت، می‌توانیم بررسی کنیم که یک" " خط‌مشی جستجوی آموخته شده تا چه حد می‌تواند با آن برسد." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "هنگامی که بررسی کننده تأیید اشتباه است" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12558,7 +12560,7 @@ msgstr "" " می‌شود. من چنین مرجع یا ابزار بررسی را اوراکل می‌نامم. حتی پاسخ تکرارپذیر " "را باید در محدوده چیزی فهمید که واقعاً بررسی می‌کند." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12581,7 +12583,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12595,7 +12597,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12611,7 +12613,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12627,7 +12629,7 @@ msgstr "" "که انجام می دهد درک کنیم. به طور مشابه، یک تطابق دستورالعمل باید از نظر بایت" " ها و داده هایی که تأیید می کند درک شود." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12644,7 +12646,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12656,12 +12658,12 @@ msgstr "" " است.{ph1} همانطور که یادگیرنده در بهینه‌سازی بازخوردی که ما به آن می‌دهیم " "بهتر می‌شود، درک آن بازخورد نیز مهم‌تر می‌شود." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "مقایسه ای که ارزش اجرا دارد" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12676,7 +12678,7 @@ msgstr "" "دهد. از آنجا، تخصص تحت نظارت و یک نسخه آموزش داده شده RL به ما اجازه می دهد " "بررسی کنیم که آموزش چه چیزی را اضافه می کند." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12689,7 +12691,7 @@ msgstr "" "ثابت نگه می‌دارم. آزمایش‌های مکرر به تمایز یک استراتژی جستجوی قابل اعتماد از" " راه‌حل نامزدی که به طور تصادفی موفق می‌شود کمک می‌کند." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12704,7 +12706,7 @@ msgstr "" " برای رسیدن به آن را انجام می دهد. اندازه گیری آنها به طور جداگانه این تقسیم" " کار را آشکار می کند." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12718,7 +12720,7 @@ msgstr "" "کل گروه‌های کد منبع مرتبط را حذف می‌کنم و پاسخ‌های تأیید شده‌شان را هم از " "داده‌های آموزشی و هم از کتابخانه بازیابی خارج می‌کنم." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12733,7 +12735,7 @@ msgstr "" "که آیا این کیفیت گردش کار کارآمدی ایجاد می‌کند یا خیر. هزینه های آموزشی باید" " جداگانه اندازه گیری شود." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12750,7 +12752,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12771,7 +12773,7 @@ msgstr "" "آزمایش بعدی را راهنمایی کنند، اما من هر پاداشی را برای «نزدیک‌تر شدن» در " "برابر بررسی پذیرش کامل تأیید می‌کنم." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12786,12 +12788,12 @@ msgstr "" "آموزش هنوز چقدر اضافه می کند؟ پاسخ‌ها به ما کمک می‌کنند تصمیم بگیریم که هر " "نوع مدل در کجا مفیدتر است." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "این چه نوع عامل هوش مصنوعی را پیشنهاد می کند؟" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12806,7 +12808,7 @@ msgstr "" "نامزدها بپرسد. اگر نتایج منطقی نباشند، عامل گسترده‌تر می‌تواند به شواهد هدف " "بازگردد یا خود اندازه‌گیری را بررسی کند." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12817,7 +12819,7 @@ msgstr "" "انتخاب کند. عامل آزادی تغییر جهتی را حفظ می کند که پیشرفت های قبلی را ممکن " "کرده است." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12830,7 +12832,7 @@ msgstr "" "همچنین دلیلی به ما می دهد تا بپرسیم کدام تصمیمات نیاز به قضاوت گسترده دارند " "و کدام یک از طریق تجربه مکرر با یک هنر خاص بهبود می یابند." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12846,7 +12848,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12856,12 +12858,12 @@ msgstr "" "{ph0}مخزن‌ها راهی برای آزمایش سؤال به ما می‌دهند.{ph1} من می‌خواهم از آن " "رکورد برای ساخت مقایسه و دیدن آنچه یاد می‌گیریم استفاده کنم." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "مدارک و اسناد مدل" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -12874,7 +12876,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12900,7 +12902,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12924,7 +12926,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12949,7 +12951,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12975,7 +12977,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12986,7 +12988,7 @@ msgstr "" "{ph0}بررسی و تشخیص:{ph1} {ph2}TH08 ممیزی ثابت ممیز شناور{ph3}، {ph4}TH08 " "بررسی عددی{ph5} و {ph6}TH09 بازسازی صرفه جویی در پخش{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13011,22 +13013,22 @@ msgstr "" "آنچه که بازسازی Touhou در مورد مدل های عمومی، مدل های تخصصی و یادگیری ارائه " "فرضیه های بهتر از بازخورد کامپایلر به من آموخت." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "در این صفحه" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "مدل ها و مقاله مهندسی معکوس" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "آزمایش های بازسازی منتخب" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "بازگشت به بالا" @@ -13035,7 +13037,7 @@ msgstr "بازگشت به بالا" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13047,68 +13049,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}نمونه‌ها{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "مطالعات موردی REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * تجزیه و تحلیل APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "چگونه یک احراز هویت یک کد ورود را تولید می کند" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "مطالعه موردی اندروید را بخوانید" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * ردیابی ویژگی" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "چگونه Notion متن و HTML را کپی می کند" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "مطالعه موردی Notion را بخوانید" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "بومی * بازسازی" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "محاسبه DX-Ball از سمت چپ / راست موقعیت صدا" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "مطالعه موردی DX-Ball را بخوانید" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "گزینه های راه اندازی" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13119,7 +13121,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13131,7 +13133,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13139,7 +13141,7 @@ msgstr "{ph0}1. رایانه‌تان را آماده کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13147,7 +13149,7 @@ msgstr "{ph0}2. یک دستیار انتخاب کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13155,7 +13157,7 @@ msgstr "{ph0}3. REA را متصل کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13163,18 +13165,18 @@ msgstr "{ph0}4. یک بررسی را امتحان کنید{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}هدف‌ها و ابزارهای تحلیل دیگر{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. رایانه‌تان را آماده کنید" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13184,7 +13186,7 @@ msgstr "" "برنامه‌نویسی محلی می‌تواند این فایل‌ها را بخواند و ابزارها را برای شما اجرا " "کند." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13195,7 +13197,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13207,7 +13209,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13218,17 +13220,17 @@ msgstr "" "disabled on this system\"{ph1} را دیدید، به‌جای آن از {ph3} استفاده کنید. " "برای npm از {ph4} استفاده کنید:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "برای دستیار پوشهٔ کار بسازید" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "در ترمینال پوشه‌ای برای تمرین بسازید و سپس وارد آن شوید:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13237,12 +13239,12 @@ msgstr "" "این ترمینال را برای مرحلهٔ بعد باز نگه دارید. اگر از قبل پوشهٔ کار دارید، " "همان را باز کنید." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. یک دستیار برنامه‌نویسی انتخاب کنید" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13252,12 +13254,12 @@ msgstr "" "اختیارش می‌گذارد. یکی از برنامه‌های زیر را انتخاب کنید؛ اگر قبلاً از آن " "استفاده نکرده‌اید، راهنمایش را باز کنید." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · از حساب ChatGPT استفاده کنید" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13268,39 +13270,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}نصب Codex و ورود به حساب{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor، Windsurf یا VS Code · از ویرایشگر استفاده کنید" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "ویرایشگر مناسب سیستم‌عاملتان را نصب کنید و وارد حساب شوید." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "پوشهٔ rea-work را که در مرحلهٔ 1 ساختید باز کنید." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · از حساب Claude استفاده کنید" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "با فرمان مناسب سیستم‌عاملتان نصب کنید:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13314,13 +13316,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}نصب Claude Code و گزینه‌های حساب{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · از گفت‌وگوی دسکتاپ استفاده کنید" @@ -13330,7 +13332,7 @@ msgstr "Claude Desktop · از گفت‌وگوی دسکتاپ استفاده ک #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13341,7 +13343,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13353,19 +13355,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}نصب OpenCode و راه‌اندازی مدل{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "همهٔ برنامه‌های پشتیبانی‌شده و شناسه‌های راه‌اندازی" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13375,12 +13377,12 @@ msgstr "" "نسخهٔ npm 6.4.0 از برنامه‌های زیر پشتیبانی می‌کند. برای انتخاب صریح یک " "برنامه، شناسهٔ آن را همراه {ph0} به کار ببرید." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "برنامهٔ دستیار" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "شناسهٔ راه‌اندازی" @@ -13390,7 +13392,7 @@ msgstr "شناسهٔ راه‌اندازی" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13409,7 +13411,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13418,13 +13420,13 @@ msgid "" msgstr "" "{ph0}پیکربندی برنامه‌ها و رفع اشکال{ph1} · {ph2}دسترسی در نسخه‌ها{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · روی رایانهٔ میزبانش متصل کنید" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13437,29 +13439,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}راهنمای اتصال Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. REA را متصل کنید" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "این درخواست را در دستیار برنامه‌نویسی خود وارد کنید:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "برای یک برنامهٔ مشخص، شناسهٔ راه‌اندازی آن را اضافه کنید:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13471,7 +13473,7 @@ msgstr "" "فهرست برنامه‌های REA با کلیدهای جهت جابه‌جا شوید، با Space برنامه‌تان را " "انتخاب کنید و با Enter ادامه دهید." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13480,7 +13482,7 @@ msgstr "" "MCP اتصالی است که به دستیار اجازه می‌دهد REA را فراخوانی کند. مهارت، روندی " "برای بررسی نرم‌افزار به آن می‌دهد." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13491,7 +13493,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13501,20 +13503,20 @@ msgstr "" "به‌جای {ph0} شناسهٔ راه‌اندازی برنامه‌تان را قرار دهید. بررسی موفق {ph1} را " "گزارش می‌کند. سپس از دستیار بخواهید:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "بررسی کن REA متصل است و نشان بده از کدام ابزارهای REA می‌توانی استفاده کنی." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. اولین بررسی‌تان را امتحان کنید" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13525,7 +13527,7 @@ msgstr "" "این نمونه یک برنامهٔ Electron با شش فایل و دکمهٔ {ph0}Export notes{ph1} است." " دستیار می‌تواند کد این برنامه را بدون نصب یا اجرای Electron بررسی کند." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "دستیار برنامه‌نویسی شما" @@ -13539,7 +13541,7 @@ msgstr "دستیار برنامه‌نویسی شما" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13553,7 +13555,7 @@ msgstr "" "نوشته می‌شود، چه فیلدهایی دارد و فایل‌ها و خط‌های مرتبط " "کدام‌اند.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "به دنبال یک توضیح کوتاه با مرجع فایل و خط باشید:" @@ -13562,7 +13564,7 @@ msgstr "به دنبال یک توضیح کوتاه با مرجع فایل و خ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13576,13 +13578,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}یک پیش‌بینی را در تمرین راهنما بررسی کنید ←{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "نمونه را خودتان دانلود کنید یا از برنامهٔ خودتان استفاده کنید" @@ -13590,14 +13592,14 @@ msgstr "نمونه را خودتان دانلود کنید یا از برنام #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}دانلود نمونه زیپ{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13608,7 +13610,7 @@ msgstr "" "کنید. راه رو به سمت {ph0} پوشه و همان سوال صادرات." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13618,12 +13620,12 @@ msgstr "" "با REA برنامهٔ موجود در {ph0} را بررسی کن. پیدا کن چگونه داده‌ها را خروجی " "می‌دهد و فایل‌ها و خط‌های مرتبط را نشان بده." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "نوع دیگری از نرم‌افزار را تحلیل کنید" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13632,12 +13634,12 @@ msgstr "" "بخش مربوط به هدف خود را انتخاب کنید. ارائه‌دهنده، ابزار تحلیل محلی است که " "REA برای آن نوع نرم‌افزار به کار می‌برد." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "فایل‌های اجرایی و کتابخانه‌های بومی · Hopper، Ghidra یا IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13646,47 +13648,47 @@ msgstr "" "یک ابزار تحلیل روی رایانه‌ای که REA را اجرا می‌کند نصب کنید. میزبان، " "سیستم‌عامل شماست و هدف، برنامه‌ای است که می‌خواهید بررسی کنید." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "ابزار تحلیل" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "در دسترس نیست" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "توزیع‌های پشتیبانی‌شده" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · آزمایشی" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "پروفایل‌های بررسی‌شده" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "پروفایل بدون رابط گرافیکی بررسی‌شده" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "راهنمای ابزار تحلیل را ببینید" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · نصب یا اتصال را به راه‌اندازی بسپارید" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13698,7 +13700,7 @@ msgstr "" "فعال کنید. در Linux، راه‌اندازی نسخهٔ آزمایشی پشتیبانی‌شده و نمایشگر اختصاصی" " آن را آماده می‌کند." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13708,7 +13710,7 @@ msgstr "" "CachyOS یا Omarchy. Hopper نرم‌افزار تجاری است؛ نسخهٔ آزمایشی محدودیت‌هایی " "دارد که فروشنده تعیین می‌کند." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13722,18 +13724,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}راه‌اندازی Hopper و رفع اشکال{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · ابزار تحلیل رایگان و Java را نصب کنید" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13743,7 +13745,7 @@ msgstr "" " انتخاب کنید که با معماری رایانه‌تان مطابقت دارد." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13756,7 +13758,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13772,7 +13774,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13780,7 +13782,7 @@ msgstr "{ph0}دانلود JDK{ph1} · {ph2}دانلود Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13790,7 +13792,7 @@ msgstr "" "Java را بررسی کنید. فرمان اول {ph0} را چاپ می‌کند؛ از آن پوشه برای {ph1} " "استفاده کنید. فرمان دوم وجود کامپایلر را تأیید می‌کند:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13808,7 +13810,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13818,12 +13820,12 @@ msgstr "" "{ph0}راه‌اندازی Ghidra و نیازهای معماری{ph1} · {ph2}راهنمای Ghidra در " "Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · نصب موجود را متصل کنید" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13834,7 +13836,7 @@ msgstr "" "رابط گرافیکی متصل با فایل باینری اصلی باز، یا یک ناظر بدون رابط گرافیکی که " "پایگاه دادهٔ اختصاصی باز می‌کند انتخاب کنید." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13845,7 +13847,7 @@ msgstr "" "Windows، و ناظر بدون رابط گرافیکی macOS arm64 با IDA Professional 9.1 هستند." " پل اختیاری رابط گرافیکی بومی، نیازهای نسخه و پلتفرم خودش را دارد." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13857,13 +13859,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}پروفایل‌های IDA، نمونه‌های ثبت و پلتفرم‌های بررسی‌شده{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -13874,18 +13876,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}یک نمونهٔ تحلیل بومی را دنبال کنید{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "وب‌سایت‌ها، Android، ‏.NET، میان‌افزار و هدف‌های دیگر" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -13894,110 +13896,110 @@ msgstr "" "راهنمای هدف خود را باز کنید. هر راهنما ابزارهای اضافی، میزبان‌های " "پشتیبانی‌شده و فرمان اول را مشخص می‌کند." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "هدف" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "ابزارهای لازم برای آماده‌سازی" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "راهنما" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}باز کردن راهنما{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "وب‌سایت" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / بسته‌ها" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "دستگاه Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "منابع Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "پروژهٔ JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "میان‌افزار" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / از کار افتادن Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "سیگنال‌های منطقی" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "رفتار فرایند" @@ -14013,7 +14015,7 @@ msgstr "رفتار فرایند" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14023,18 +14025,18 @@ msgstr "" "{ph0}راهنمای Flutter{ph1} · {ph2}بسته‌ها و منابع{ph3} · {ph4}بایت‌کد " "EVM{ph5} · {ph6}همهٔ راهنماهای بررسی{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "REA را از ترمینال استفاده کنید" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "فرمان‌های CLI، نصب سراسری و curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14044,7 +14046,7 @@ msgstr "" "به‌جای {ph0} نام یا نشانی تابع را از فهرست توابع هدف قرار دهید. Ghidra باید " "از قبل پیکربندی شده باشد." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14053,7 +14055,7 @@ msgstr "" "در macOS یا Linux می‌توانید پس از آماده‌سازی Node.js از نصب‌کنندهٔ curl هم " "استفاده کنید:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14063,12 +14065,12 @@ msgstr "" "ویرایشگرها، REA را در تنظیمات MCP فعال کنید و در گفت‌وگوی دستیار به " "ابزارهایش اجازه بدهید." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows، ‏WSL و مسیرهای دارای فاصله" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14080,17 +14082,17 @@ msgstr "" "و از مسیرهای Linux استفاده کنید. ارائه‌دهنده‌های بدون رابط گرافیکی روی همان " "میزبان REA اجرا می‌شوند." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "فرمان راه‌اندازی Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "به‌روزرسانی یا حذف REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14101,7 +14103,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14115,52 +14117,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}جزئیات به‌روزرسانی و حذف{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "کپی فرمان راه‌اندازی REA در Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "کپی فرمان" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "یادداشت های کپی تحقیقات فوری" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14170,12 +14172,12 @@ msgstr "" "اگر curl و unzip نصب نیستند، ابتدا آن‌ها را نصب کنید. در Debian یا Ubuntu، " "‏{ph0} را اجرا کنید؛ در توزیع‌های دیگر از مدیر بستهٔ خود استفاده کنید." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "ترمینال را ببندید، دوباره باز کنید، سپس:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14191,7 +14193,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14201,19 +14203,19 @@ msgstr "" "{ph0}راه‌اندازی Cursor{ph1} · {ph2}راه‌اندازی Windsurf / Devin Desktop{ph3} " "· {ph4}راه‌اندازی VS Code وCopilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · یک مدل هوش مصنوعی انتخاب کنید" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "فایل ثبت IDA را آماده کنید" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14228,7 +14230,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14241,7 +14243,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14253,22 +14255,22 @@ msgstr "" "و در صورت وجود {ph2} را در فایل کپی کنید. فایل باینری اصلی را در IDA باز " "کنید و پیش از درخواست بررسی از REA، افزونهٔ بالادستی را اجرا کنید." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "پایگاه دادهٔ SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "بایت‌کد EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Codex را با فرمان مناسب سیستم‌عاملتان نصب کنید:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14279,7 +14281,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14290,12 +14292,12 @@ msgstr "" "دانلود و باز کنید و مراحل نصب را دنبال کنید. سپس Terminal را دوباره باز " "کنید." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "از قبل از Homebrew استفاده می‌کنید؟" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14307,7 +14309,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14317,7 +14319,7 @@ msgstr "" "طرح را بررسی و تأیید کنید، Claude را دوباره باز کنید و {ph0}اتصال را در " "مرحلهٔ 3 بررسی کنید{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14327,12 +14329,12 @@ msgstr "" "هر دو مسیر را با مسیر نصب‌های موجودتان جایگزین کنید. برای نصب تازه در macOS " "یا Linux arm64، پیش از ادامه دیکامپایلر بومی را برای رایانه‌تان بسازید." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "دیکامپایلر بومی Ghidra را بسازید" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14345,7 +14347,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14355,7 +14357,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14365,20 +14367,20 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · راهنمای ساخت بومی{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" "سپس Ghidra را بررسی کنید و مسیرهایش را برای برنامهٔ دستیار ذخیره کنید:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14386,13 +14388,13 @@ msgstr "چرا نتیجهٔ {ph0} در ماشین‌حساب 220 می‌شود؟ #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}روش کار{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14401,22 +14403,22 @@ msgstr "" "از دستیار برنامه‌نویسی خود دربارهٔ یک برنامه، بازی یا وب‌سایت سؤال کنید. REA" " ابزارهایی برای بررسی کدِ پشت پاسخ در اختیارش می‌گذارد." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "شروع کنید" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "دیدن یک نمونه ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "روش کار" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14427,47 +14429,47 @@ msgstr "" "دستیار شما می‌تواند کد را دنبال کند، یک قابلیت را توضیح دهد و در بازسازی آن " "کمکتان کند." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "دربارهٔ یک قابلیت بپرسید" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "یک برنامه یا صفحه را همراه با یک سؤال به دستیار بدهید." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "برنامه را بررسی کنید" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA کد، ارجاع‌ها و مشاهدات زمان اجرا را برمی‌گرداند." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "بفهمید و سپس تغییری را امتحان کنید" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "دستیار شما از یافته‌ها برای توضیح یا بازسازی قابلیت استفاده می‌کند." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "دستورها را گام‌به‌گام دنبال کنید" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "همان سؤال را از دستیار بپرسید" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14476,7 +14478,7 @@ msgstr "" "از 6 شروع کن اضافه کردن 0.001 هر به روز رسانی بدون برخورد ، در حالی که سرعت " "زیر است 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14484,7 +14486,7 @@ msgstr "" "یک قابلیت از برنامه یا بازی منتشرشده را همراه با کد و نتایج بررسی‌شده " "ببینید." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14493,7 +14495,7 @@ msgstr "" "کد ورود شش‌رقمی Aegis را در APK منتشرشده دنبال کنید، سپس ساعت نمایشی را " "جابه‌جا کنید تا ببینید چرا کد هر 30 ثانیه تغییر می‌کند." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14502,7 +14504,7 @@ msgstr "" "JavaScript بسته‌بندی‌شدهٔ Notion را تا کلیپ‌بورد سیستم دنبال کنید و ببینید " "کپی چگونه داده‌های غنی بلوک‌ها را حفظ می‌کند." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14511,12 +14513,12 @@ msgstr "" "بازسازی کنید که موقعیت توپ در یک بازی Windows محصول 1996 چگونه به صدای چپ یا" " راست تبدیل می‌شود." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "هدف خود را انتخاب کنید." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14526,7 +14528,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14544,13 +14546,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "بله این یکی" @@ -14563,7 +14565,7 @@ msgstr "بله این یکی" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14576,7 +14578,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}مثال سریع * بازساز #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14589,18 +14591,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "کپی وب سایت project prompt" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "کپی بازی بازسازی سریع" @@ -14612,7 +14614,7 @@ msgstr "کپی بازی بازسازی سریع" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14624,7 +14626,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14632,23 +14634,23 @@ msgstr "{ph0}نمونه‌ها →{ph1} — بررسی‌ها و نمایش‌ه #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}وبلاگ →{ph1} — روش‌ها و یادداشت‌های بازسازی." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "دیدن بررسی کامل ماشین‌حساب" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "یک پروژهٔ بزرگ‌تر را امتحان کنید" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14657,7 +14659,7 @@ msgstr "" "دو نمونه را امتحان کنیم: سرعت یک بازی را تغییر دهیم، سپس دکمهٔ % ماشین‌حساب " "را بازسازی کنیم." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14666,7 +14668,7 @@ msgstr "" "با ادامهٔ دویدن، بازی سریع‌تر می‌شود. برای بازسازی آن با کنترل سرعت، ابتدا " "باید بفهمیم سرعت چگونه تغییر می‌کند." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. دربارهٔ سرعت بپرسید" @@ -14679,19 +14681,19 @@ msgstr "1. دربارهٔ سرعت بپرسید" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}نمونهٔ پرسش · بازی دایناسور" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. قاعدهٔ سرعت را پیدا کنید" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14700,12 +14702,12 @@ msgstr "" "REA به عامل اجازه می‌دهد کد بازی در حال اجرا را بخواند. سرعت از 6 شروع " "می‌شود و تا زمانی که کمتر از 13 باشد، در هر به‌روزرسانی کمی افزایش می‌یابد." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. نتیجه را بازی کنید" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14714,7 +14716,7 @@ msgstr "" "این قاعده را در بازی کوچک زیر بازسازی کردیم و یک لغزندهٔ سرعت افزودیم. بازی " "را شروع کنید، سپس سرعت دلخواهتان را انتخاب کنید." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14723,7 +14725,7 @@ msgstr "" "برای بازی JavaScript را فعال کنید. همچنان می‌توانید قاعده را بخوانید و کد " "منبع زیر را باز کنید." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14732,7 +14734,7 @@ msgstr "" "دکمهٔ % پس از + و × رفتار متفاوتی دارد. هر دو قاعده را پیدا کنیم و در یک " "ماشین‌حساب کوچک امتحان کنیم." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. دربارهٔ دکمهٔ % بپرسید" @@ -14745,18 +14747,18 @@ msgstr "1. دربارهٔ دکمهٔ % بپرسید" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}نمونهٔ پرسش · ماشین‌حساب" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. هر دو قاعده را پیدا کنید" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14765,12 +14767,12 @@ msgstr "" "REA به عامل کمک می‌کند کد پشت دکمهٔ % را بخواند. این کد دو قاعدهٔ متفاوت را " "اعمال می‌کند:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. دکمهٔ % را امتحان کنید" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -14779,7 +14781,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14787,7 +14789,7 @@ msgstr "{ph0}پرسش‌های متداول را بخوانید{ph1} — راه #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14797,13 +14799,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — اشکال گزارش کنید یا قابلیت بخواهید." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "راه‌اندازی برای پلتفرم شما:" @@ -14811,14 +14813,14 @@ msgstr "راه‌اندازی برای پلتفرم شما:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "روش‌های دیگر نصب: {ph0}{ph1} ←{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14833,7 +14835,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14848,7 +14850,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14860,7 +14862,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14871,7 +14873,7 @@ msgstr "" "استفاده کنید. در Linux، فرمان پیش‌فرض راه‌اندازی {ph1} است." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14882,67 +14884,67 @@ msgstr "" "با REA و ابزار تحلیلی که تنظیم کرده‌ام، {ph0} را بررسی کن. توابع و رشته‌ها " "را فهرست کن، سپس بخش پردازش ورودی کاربر را با ارجاع به کد توضیح بده." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "مشارکت‌کنندگان" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "پرش به محتوا" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}خانه{ph1} / مشارکت‌کنندگان" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "با هم می‌سازیم." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "از همهٔ کسانی که به بهتر شدن REA کمک می‌کنند سپاسگزاریم." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -14951,22 +14953,22 @@ msgstr "" "کد، مستندات، آزمون‌ها، ترجمه و ایده‌ها — راه‌های زیادی برای مشارکت وجود " "دارد." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "چگونه مشارکت کنیم" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "به گفتگو بپیوندید →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "مشارکت‌کنندگان" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "جستجوی مشارکت‌کننده" @@ -14974,13 +14976,13 @@ msgstr "جستجوی مشارکت‌کننده" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "از {ph0}فهرست مشارکت‌کنندگان GitHub{ph1} · به‌روزرسانی: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "مشارکت‌کننده‌ای پیدا نشد. نام کاربری دیگری را امتحان کنید." @@ -14998,12 +15000,12 @@ msgstr "" "با کسانی آشنا شوید که با کد، مستندات، آزمون‌ها و ایده‌ها در REA مشارکت " "می‌کنند." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "نام کاربری GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "بازگشت به بالا" diff --git a/website/locales/fr/messages.po b/website/locales/fr/messages.po index 5937184d4f0..39a08e7e875 100644 --- a/website/locales/fr/messages.po +++ b/website/locales/fr/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Accueil{ph1} / Blogue" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blogue." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Réflexions sur l'ingénierie inverse." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Reconstruction du jeu{ph0}Essai" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "La révolution industrielle dans l'ingénierie inverse" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -53,36 +53,36 @@ msgstr "" "TH04 m'ont appris sur les agents, la vérification et les connaissances qui " "se combinent dans les projets." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Lire l'article" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Par N0zoM1z0 · 10 octobre 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -102,38 +102,38 @@ msgstr "" "Réflexions sur l'ingénierie inverse, en s'appuyant sur l'expérience pratique" " avec REA et les agents d'IA." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -142,122 +142,122 @@ msgstr "" "REA-Découvrez comment fonctionne le logiciel. Ingénierie inverse avec votre " "agent de codage." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Accueil REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Navigation principale" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA sur GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Rejoindre REA sur Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Suivre REA sur X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -266,35 +266,35 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Accueil{ph1} / {ph2}Blogue{ph3} / La reconstruction de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Essai * La reconstruction de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "La révolution industrielle dans l'ingénierie inverse." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Par N0zoM1z0 · 10 octobre 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "À retenir" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -307,7 +307,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -321,7 +321,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -334,7 +334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -347,7 +347,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -358,65 +358,65 @@ msgstr "" "RE.{ph1} Les méthodes sont encore en train de prendre forme. Il reste encore" " beaucoup à explorer." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Comment l'expérience se compose" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Direction humaine{ph1} * Objectif et critères d'acceptation" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Autonomie" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agent" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Choisissez une expérience.{ph0}Proposer une hypothèse." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Vérification" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Référence de validation" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Essai contre a{ph0}référence concrète." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Dépôt" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Mémoire de travail" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -425,7 +425,7 @@ msgstr "Code, preuves,{ph0}contrôles et leçons." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -434,26 +434,26 @@ msgstr "Inadéquation{ph0}{ph1}Réviser l'hypothèse{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Un meilleur{ph0}{ph1}point de départ{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Réutilisation" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Passe{ph1} * Conservez le résultat et ses preuves" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -462,14 +462,14 @@ msgstr "" "Chaque projet laisse le suivant avec un meilleur point de départ. Cela " "inclut la correction des chèques lorsque nous découvrons une lacune." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Dans cet article" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -477,7 +477,7 @@ msgstr "{ph0}Août 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -485,7 +485,7 @@ msgstr "{ph0} TH08: la suite{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -493,7 +493,7 @@ msgstr "{ph0}Deux approches{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -501,7 +501,7 @@ msgstr "{ph0} TH095: préparation combinée{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -509,7 +509,7 @@ msgstr "{ph0} TH04: à travers les architectures{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -517,7 +517,7 @@ msgstr "{ph0}D'exact à lisible{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -525,18 +525,18 @@ msgstr "{ph0}Le virage industriel{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Ce qui devient possible{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Ce qui a changé en août 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -551,7 +551,7 @@ msgstr "" "signifiait passer plus de temps sur la prochaine fonction. Cela signifiait " "aussi garder une image de plus en plus grande dans ma tête." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -565,7 +565,7 @@ msgstr "" "méthode peut être utile ailleurs, mais chaque champ doit établir ce qu'il " "peut vérifier par rapport à une référence fiable." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -578,7 +578,7 @@ msgstr "" "programme et aux outils de développement ordinaires. La reconstruction de " "Touhou m'a donné un projet substantiel pour le découvrir." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -596,7 +596,7 @@ msgstr "" "d'attention à l'orientation du projet et à la fiabilité de ses " "vérifications." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -607,7 +607,7 @@ msgstr "" "demander ce qui survivrait au-delà du projet actuel. Le prochain jeu " "bénéficierait-il de tout ce que nous venions d'apprendre?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: s'appuyer sur le travail humain" @@ -616,7 +616,7 @@ msgstr "TH08: s'appuyer sur le travail humain" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -630,7 +630,7 @@ msgstr "" "base substantielle. Il est venu avec la connaissance de la construction et " "un historique des contributions que j'ai conservé dans la suite." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -641,7 +641,7 @@ msgstr "" "continuation indépendante a commencé le 13 août. Le 19 août, le grand livre " "enregistrait la source des 1 107 fonctions de jeu identifiées." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -652,7 +652,7 @@ msgstr "" "onze jours après le début de la continuation. Une édition Web a suivi. La " "version native Linux 64 bits est arrivée le 30 août." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -668,7 +668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -686,12 +686,12 @@ msgstr "" "une route exercée atteint l'état attendu. L'agent propose une explication et" " la teste; un décalage lui donne quelque chose de spécifique à étudier." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Une correspondance exacte avec la mauvaise constante" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -703,7 +703,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -716,7 +716,7 @@ msgstr "" "puissance du joueur par rapport {ph0}. L'original utilisé {ph1}, le seuil de" " puissance maximale." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -732,14 +732,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" "{ph0}Pourtant, la fonction avait déjà réussi la comparaison exacte.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -755,7 +755,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -772,7 +772,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -787,7 +787,7 @@ msgstr "" "virgule flottante. Il a trouvé douze autres références incorrectes dans cinq" " fonctions acceptées." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -801,7 +801,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -811,7 +811,7 @@ msgstr "" "{ph0}La référence de vérification (oracle) devait également être " "reconstruite.{ph1} La réparer faisait partie de la réparation du jeu." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -830,7 +830,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -847,7 +847,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -857,7 +857,7 @@ msgstr "" "{ph0}Un lot réussi nous a donné à la fois du code récupéré et un meilleur " "environnement pour le lot suivant.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Deux idées différentes de reconstruction" @@ -866,7 +866,7 @@ msgstr "Deux idées différentes de reconstruction" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -878,7 +878,7 @@ msgstr "" "ce genre de travail. L'avis annonce que d'autres développements auront lieu " "en privé jusqu'à leur achèvement. Un passage se lit comme suit:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -888,7 +888,7 @@ msgstr "" "cet espace, tirée de notre travail, donne une mauvaise image des futurs " "efforts de décompilation…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -906,7 +906,7 @@ msgstr "" "discuter concerne la manière dont la reconstruction devrait se dérouler et " "la manière dont une contribution devrait être jugée." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -920,7 +920,7 @@ msgstr "" "personne. La confiance dans le contributeur importait parce qu'une grande " "partie du raisonnement se produisait pendant qu'ils travaillaient." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -931,7 +931,7 @@ msgstr "" "construisent des outils. Ce qui a changé pour moi, c'est qu'un agent pouvait" " utiliser ces connaissances pour poursuivre seul la prochaine enquête." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -946,7 +946,7 @@ msgstr "" " autre personne puisse examiner pourquoi nous avons choisi une " "implémentation, même si un agent a fait la majeure partie du travail." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -959,7 +959,7 @@ msgstr "" "Cela soulève de vraies questions sur le crédit. Cela change également ce que" " les mainteneurs doivent savoir avant d'accepter une contribution." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -975,7 +975,7 @@ msgstr "" "Différentes communautés peuvent choisir la part de ce changement qu'elles " "souhaitent assumer." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -1000,7 +1000,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1013,14 +1013,14 @@ msgstr "" " raccourci. TH08's {ph4}crédits et provenance{ph5} enregistrez la limite de " "continuation." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: l'expérience commence à s'accumuler" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1035,7 +1035,7 @@ msgstr "" " le jeu. Mais nous en savions déjà beaucoup plus sur la façon de commencer " "une reconstruction et de la faire avancer." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1049,7 +1049,7 @@ msgstr "" "i386 a été marquée jouable le 10 septembre, environ douze jours après " "l'initialisation." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1061,7 +1061,7 @@ msgstr "" "L'expérience était déjà présente dans les outils et dans la manière dont le " "projet était organisé." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1076,7 +1076,7 @@ msgstr "" "les voir travailler ensemble. Cette leçon a aidé à façonner la façon dont " "nous avons abordé la construction de l'ensemble du programme de TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1089,7 +1089,7 @@ msgstr "" " peut continuer à m'aider après que je sois passé à autre chose. L'agent " "suivant peut utiliser le résultat sans répéter l'enquête qui y a conduit." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1105,7 +1105,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1117,7 +1117,7 @@ msgstr "" "match.{ph1} Nous pouvons consacrer plus d'efforts au prochain projet sur ce " "qui est réellement nouveau à propos de sa cible." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1130,7 +1130,7 @@ msgstr "" "poursuivre le travail. Ils n'ont pas à reconstituer l'historique complet du " "projet pour savoir pourquoi la source ressemble à ce qu'elle est." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: le flux de travail survit à une architecture différente" @@ -1139,7 +1139,7 @@ msgstr "TH04: le flux de travail survit à une architecture différente" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1156,7 +1156,7 @@ msgstr "" "ReC98{ph3} nous a donné des connaissances précieuses et du matériel source " "ici aussi." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1169,7 +1169,7 @@ msgstr "" "sauvegardes. Le travail actuel est un port natif 64 bits. L'établissement " "d'une version DOS fonctionnelle donne d'abord à ce port une référence." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1182,7 +1182,7 @@ msgstr "" "vérifié notre travail. Mais l'agent pourrait toujours suivre une question " "jusqu'à un résultat et laisser ce résultat guider l'expérience suivante." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1197,7 +1197,7 @@ msgstr "" "les preuves et les vérifications sont disponibles, un agent peut résoudre la" " question autant qu'il l'a fait sur un titre Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1209,7 +1209,7 @@ msgstr "" "de travailler. L'architecture définissait le problème; le flux de travail " "nous donnait encore un moyen de le résoudre." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1226,7 +1226,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1236,12 +1236,12 @@ msgstr "" "État du projet au 10 octobre 2026: {ph0}Reconstruction DOS et tests " "manuels{ph1} · {ph2}port 64 bits{ph3}. Le port reste en développement." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Du code exact au code lisible" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1250,7 +1250,7 @@ msgstr "" "Une fois qu'une reconstruction fonctionne, je veux que quelqu'un d'autre " "puisse la comprendre." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1265,7 +1265,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1282,7 +1282,7 @@ msgstr "" "preuves. Nous gardons le raisonnement avec la source afin que la personne " "suivante puisse voir d'où vient cette interprétation." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1297,14 +1297,14 @@ msgstr "" "cet état. Pour déplacer le comportement en toute sécurité, nous devons " "récupérer la relation derrière l'ancien accès mémoire." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "L'ordre que j'utilise maintenant est:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1320,7 +1320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1337,7 +1337,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1353,7 +1353,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1368,7 +1368,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1385,7 +1385,7 @@ msgstr "" "vérifie que le programme reconstruit se construit toujours et se comporte " "correctement le long des chemins que nous exerçons." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1399,7 +1399,7 @@ msgstr "" "vérifications disponibles donne à l'agent un échec concret à enquêter avant " "de poursuivre un refactor." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1417,7 +1417,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1436,7 +1436,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1447,12 +1447,12 @@ msgstr "" "sémantique rend les connaissances récupérées utilisables.{ph1} Un port peut " "alors s'appuyer sur les deux." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Qu'est-ce qui en fait un changement industriel" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1466,7 +1466,7 @@ msgstr "" " pouvais faire. Un meilleur outil pourrait aider avec chaque fonction " "ultérieure qui en avait besoin." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1480,7 +1480,7 @@ msgstr "" " prescrive chaque étape, une grande partie du travail reste liée à mon " "attention." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1494,7 +1494,7 @@ msgstr "" " pour réessayer. Je dois encore décider si les preuves accumulées " "soutiennent une étape importante du projet." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1509,7 +1509,7 @@ msgstr "" "vérifications de références. L'agent peut les utiliser pour tester la source" " qu'il propose et voir où son explication tient la route." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1527,7 +1527,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1548,7 +1548,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1566,7 +1566,7 @@ msgstr "" "réparer et revoir les résultats qu'il a affectés. Le projet suivant peut " "alors hériter d'un outil plus puissant." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1582,7 +1582,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1595,7 +1595,7 @@ msgstr "" "leurs leçons. Travailler sur un jeu peut améliorer les conditions de départ " "d'un autre." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1607,12 +1607,12 @@ msgstr "" "utiliser. L'amélioration de ces outils change ce que la personne suivante—ou" " l'agent suivant—peut accomplir." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Les projets que nous pouvons maintenant envisager" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1624,7 +1624,7 @@ msgstr "" "attention que je ne pourrais raisonnablement lui accorder. De nombreux " "projets resteraient des idées." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1642,7 +1642,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1653,7 +1653,7 @@ msgstr "" "commentaires et connaissances accumulés permettraient à un agent de " "travailler de manière fiable sur ce sujet?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1664,12 +1664,12 @@ msgstr "" " seuls. Chacun peut améliorer la façon dont nous abordons le suivant. Je " "veux continuer à explorer jusqu'où cela peut nous mener." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Jalons et sources du projet" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1704,7 +1704,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1738,7 +1738,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1757,7 +1757,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1781,7 +1781,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1803,7 +1803,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1819,7 +1819,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1841,7 +1841,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1856,7 +1856,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1878,27 +1878,27 @@ msgstr "" "Touhou avec des agents d'IA et à la manière dont les connaissances se " "combinent entre TH08, TH095 et PC-98 TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Expérience portée entre les projets" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Essai de reconstruction de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -1907,18 +1907,18 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Accueil{ph1}{ph2}/{ph3}Laboratoire de vitesse des dinosaures" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Inspecter → reconstruire → modifier" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Reconstruisez la règle de vitesse du dinosaure." @@ -1927,7 +1927,7 @@ msgstr "Reconstruisez la règle de vitesse du dinosaure." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1940,15 +1940,15 @@ msgstr "" "avons utilisé sa règle pour construire ce mini-jeu avec {ph2}vitesse " "réglable.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Sur cette page" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1956,7 +1956,7 @@ msgstr "{ph0}Jouez et changez la vitesse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1964,7 +1964,7 @@ msgstr "{ph0}Lire la règle récupérée{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1972,18 +1972,18 @@ msgstr "{ph0}Vérifiez la reconstruction{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Essayez l'analyse{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Jouez et changez la vitesse" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1995,49 +1995,49 @@ msgstr "" "vitesse fixe. Sélectionnez la règle récupérée pour démarrer à 6 et accélérer" " progressivement à nouveau." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Jouer à la reconstruction" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Jouer" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Sauter ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Recommencer" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Vitesse" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Utilisez la règle d'accélération récupérée" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Règle d'origine: commencez à 6, puis augmentez vers 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Déplacez le curseur pour définir votre propre vitesse. L'espace ou le saut " "efface un cactus." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2046,7 +2046,7 @@ msgstr "" "Activez JavaScript pour lire la reconstruction. Le code et l'explication ci-" "dessus restent lisibles." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Lire le script REA renvoyé" @@ -2054,7 +2054,7 @@ msgstr "Lire le script REA renvoyé" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2069,7 +2069,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2079,18 +2079,18 @@ msgstr "" "Les paramètres sont {ph0}, {ph1} et {ph2}. Le jeu exécute cette branche sur " "une mise à jour sans collision." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Utilisez la même règle dans le nouveau jeu" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Copier" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2108,19 +2108,19 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Télécharger la règle de vitesse{ph1} · {ph2}Lire le code du jeu{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Vérifiez la reconstruction" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2131,27 +2131,27 @@ msgstr "" "obstacles et la planification automatique désactivés. Comparez ces vitesses " "enregistrées avec une relecture de la règle récupérée." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Mises à Jour" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Jeu original" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Règle reconstruite" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Exécutez le contrôle de vitesse" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2160,14 +2160,14 @@ msgstr "" "Valeurs arrondies à trois décimales. La branche vérifie avant d'ajouter, de " "sorte que l'incrément final peut prendre une vitesse juste au-dessus de 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Essayez l'analyse vous-même" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2176,7 +2176,7 @@ msgstr "{ph0}Mettre en place REA{ph1} avec votre agent de codage." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2185,7 +2185,7 @@ msgstr "" "Suivez le {ph0}étapes de connexion du navigateur{ph1}, en utilisant {ph2} " "comme l'URL de la page." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2202,7 +2202,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2214,7 +2214,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Votre agent de codage" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2228,7 +2228,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2243,7 +2243,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2269,12 +2269,12 @@ msgstr "" "Lisez la règle de vitesse du jeu de dinosaures avec REA , reconstruisez-la, " "puis modifiez la vitesse et jouez." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Reconstruction de la vitesse des dinosaures" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2283,52 +2283,52 @@ msgstr "" "Mini-jeu de dinosaure. Utilisez le bouton de saut ou appuyez sur Espace " "pendant que le jeu est concentré." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Copier la règle de vitesse reconstruite" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie de l'invite d'analyse des dinosaures" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Accueil{ph1} / Foire aux QUESTIONS" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "FOIRE aux questions sur REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Configuration, mises à jour, analyse et dépannage." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Thèmes" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2336,7 +2336,7 @@ msgstr "{ph0}Configuration et mises à jour{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2344,7 +2344,7 @@ msgstr "{ph0}Analyse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2352,31 +2352,31 @@ msgstr "{ph0}Dépannage{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Données et partage{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Configuration et mises à jour" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Comment installer REA ?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * configuration de l'agent" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Copier" @@ -2384,7 +2384,7 @@ msgstr "Copier" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2398,12 +2398,12 @@ msgstr "" "chemin du fichier à analyser et une question. Le {ph0}guide de " "configuration{ph1} présente les prérequis et votre première analyse." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Quels agents de codage peuvent utiliser REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2418,18 +2418,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Connectez votre agent de codage{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Comment mettre REA à jour ?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2438,13 +2438,13 @@ msgstr "" "REA publie fréquemment, y compris des corrections de bogues. Si vous avez " "installé le modèle CLI avec le modèle npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * installé sur le CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2454,14 +2454,14 @@ msgstr "" "Suivez la commande d'actualisation de la configuration imprimée par la mise " "à jour. Si vous configurez votre agent via {ph0}, cours:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * configuration de l'agent d'actualisation" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2474,14 +2474,14 @@ msgstr "" "passer à la nouvelle version. Pour une commande CLI ponctuelle, ajoutez la " "commande après {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Installe la compétence à partir de skills.sh assez?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2494,24 +2494,24 @@ msgstr "" "la compétence correspondante, redémarrez votre agent afin qu'il puisse " "appeler les outils." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analyse" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Que puis-je analyser avec REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Commencez avec le type de logiciel que vous avez:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2523,7 +2523,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2535,7 +2535,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2545,7 +2545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2557,12 +2557,12 @@ msgstr "" "Android, les micrologiciels et les ressources packagées. {ph0}Voir les " "études de cas{ph1} pour des enquêtes travaillées." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Ai-je besoin des modèles Hopper , Ghidra ou IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2575,7 +2575,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2588,12 +2588,12 @@ msgstr "" " hôte et votre cible déterminent quel fournisseur peut être utilisé. " "{ph0}Mettre en place une analyse des programmes en code machine{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Puis-je utiliser REA sans agent de codage?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2602,14 +2602,14 @@ msgstr "" "Oui. Le CLI utilise les mêmes workflows d'analyse. Pour une application " "locale JavaScript ou Electron :" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * analyse statique des applications" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2621,13 +2621,13 @@ msgstr "" "d'installation." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Quel code REA renvoie-t-il ?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2643,7 +2643,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2656,12 +2656,12 @@ msgstr "" "{ph2}Vérificateur de drapeau CTF{ph3} montrez comment ce processus " "fonctionne." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Que demander à mon agent ?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2678,7 +2678,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2686,7 +2686,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Votre agent de codage" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2696,18 +2696,18 @@ msgstr "" "Remplacez le chemin par votre cible. Les {ph0}guides touristiques{ph1} " "fournissez des invites pour des exemples natifs, Electron et de navigateur." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Dépannage" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Pourquoi mon agent ne peut-il pas voir les outils REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2717,7 +2717,7 @@ msgstr "" "Redémarrez ou reconnectez votre agent après la configuration. Vérifiez son " "enregistrement REA avec {ph0}; pour le modèle Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * vérifiez un client" @@ -2725,7 +2725,7 @@ msgstr "Terminal * vérifiez un client" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2736,14 +2736,14 @@ msgstr "" " rapport indique un enregistrement manquant ou périmé, exécutez la " "configuration pour ce client:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * réparer la configuration d'un client" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2755,14 +2755,14 @@ msgstr "" "correct mais que les outils restent absents, vérifiez l'erreur de connexion " "MCP du client. {ph0}Plus de diagnostics de configuration{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Dois-je d'abord démarrer Hopper?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2775,14 +2775,14 @@ msgstr "" "de la licence avant l'analyse sans surveillance. {ph0}Voir configuration du " "fournisseur natif{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Que faire si je rencontre un bug ?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2794,7 +2794,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2807,17 +2807,17 @@ msgstr "" "Incluez le nom du fournisseur lorsque le problème implique l'analyse de " "programmes en code machine." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Données et partage" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Est-ce que REA télécharge mon application?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2827,7 +2827,7 @@ msgstr "" "et la politique de données de son fournisseur modèle s'applique à ces " "résultats." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Comment puis-je partager un exemple ou contribuer?" @@ -2836,7 +2836,7 @@ msgstr "Comment puis-je partager un exemple ou contribuer?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2852,7 +2852,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2877,77 +2877,77 @@ msgstr "" "Réponses aux questions courantes sur REA: installation, mises à jour, outils" " d'analyse, agents de codage, dépannage et exemples de partage." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Questions fréquemment posées sur REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Copier la commande d'installation REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Copier la commande de mise à jour REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Commande d'actualisation de la configuration de l'agent de copie" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Copier la commande d'analyse REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Copier l'exemple d'invite d'analyse" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Commande de diagnostic de client de copie" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Copier la commande d'installation étendue" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Accueil{ph1} / Votre première enquête" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Découvrez où{ph0}les notes exportées disparaissent." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2956,14 +2956,14 @@ msgstr "" "Utilisez REA pour inspecter une petite application, suivez son bouton " "Exporter les notes et vérifiez vous-même un détail." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Dans cet exercice" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2971,7 +2971,7 @@ msgstr "{ph0}1. Mettre en place{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2979,7 +2979,7 @@ msgstr "{ph0}2. Renseignez - vous sur l'exportation{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2987,7 +2987,7 @@ msgstr "{ph0}3. Suivez la réponse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2995,13 +2995,13 @@ msgstr "{ph0}4. Vérifier une prédiction{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Poser une autre question{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Connectez votre agent à REA" @@ -3014,30 +3014,30 @@ msgstr "1. Connectez votre agent à REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Votre agent de codage" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Copier" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Ou exécutez cette commande dans votre terminal:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3046,14 +3046,14 @@ msgstr "" "Passez en revue le plan, approuvez la configuration, puis redémarrez votre " "agent. Déjà connecté? Continuez ci-dessous." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Demandez où le CSV est écrit" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3065,7 +3065,7 @@ msgstr "" "des notes{ph1} bouton. Votre agent peut inspecter son code sans installer ni" " lancer Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3077,14 +3077,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Télécharger un exemple de ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3095,12 +3095,12 @@ msgstr "" "archive vous-même. Donnez-lui le chemin vers le {ph0} dossier et la même " "question d'exportation." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Suivez la réponse jusqu'au code" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -3110,7 +3110,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3122,12 +3122,12 @@ msgstr "" "en CSV et écrit {ph1} dans le dossier Téléchargements de l'utilisateur. Les " "colonnes sont {ph2} et {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Du bouton au rédacteur de fichiers" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3136,7 +3136,7 @@ msgstr "" "L'analyse statique de REA associe le message à son gestionnaire. La " "destination est lue à partir du code." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3148,19 +3148,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" "{ph0}Voir la trace complète du code et le résultat REA enregistré{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Vérifier une prédiction" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3169,29 +3169,29 @@ msgstr "" "Une virgule sépare les colonnes CSV. Que se passe-t-il lorsqu'un titre de " "note contient lui-même une virgule ou des guillemets?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Exécutez le chèque vous-même" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Ouvrez un terminal dans le déballé {ph0} dossier:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Poser une autre question" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Essayez un suivi dans la même conversation:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3200,7 +3200,7 @@ msgstr "" "Que se passe-t-il si le fichier ne peut pas être écrit? Suivez l'erreur pour" " revenir à la page." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3213,7 +3213,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3228,7 +3228,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3242,7 +3242,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3267,116 +3267,116 @@ msgstr "" "demandez où vont les notes exportées et vérifiez le formateur CSV avec un " "exemple de titre." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Votre première enquête sur le REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Copier l'invite d'installation de REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Commande Copier le programme d'installation" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Invite d'enquête sur les notes de copie" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Copier l'invite de vérification CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Commande de vérification du formateur de copie" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Accueil{ph1} / Commencer" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Configurez le modèle REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Ouvrez un terminal et vérifiez:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Borne" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Copier" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3388,19 +3388,19 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." msgstr "" -"Votre propre distribution {ph0} le paquet est souvent plus ancien que 22.23.4," -" alors vérifiez {ph1} si vous l'utilisez à la place." +"Votre propre distribution {ph0} le paquet est souvent plus ancien que " +"22.23.4, alors vérifiez {ph1} si vous l'utilisez à la place." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3412,7 +3412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3420,7 +3420,7 @@ msgstr "{ph0}Utilisez le modèle CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3434,18 +3434,18 @@ msgstr "{ph0}Obtenir de l'aide{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Votre agent de programmation" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Ou exécutez la configuration vous-même" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Comment ouvrir un terminal?" @@ -3454,7 +3454,7 @@ msgstr "Comment ouvrir un terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3470,7 +3470,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3484,7 +3484,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3499,7 +3499,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3509,7 +3509,7 @@ msgstr "" "Collez une commande avec {ph0} {ph1} (macOS: {ph2} {ph3}; Linux terminaux: " "{ph4} {ph5} {ph6}), puis appuyez sur Entrée." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3521,7 +3521,7 @@ msgstr "" " une sauvegarde de la configuration existante. Il demande avant d'appliquer " "les modifications." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Comment puis-je redémarrer mon client?" @@ -3530,7 +3530,7 @@ msgstr "Comment puis-je redémarrer mon client?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3546,7 +3546,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3556,7 +3556,7 @@ msgstr "" "{ph0}Agents terminaux{ph1} (Claude Code, Codex, Gemini CLI): quittez la " "session et recommencez-la." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Comment puis-je obtenir le chemin d'accès complet d'un dossier?" @@ -3565,7 +3565,7 @@ msgstr "Comment puis-je obtenir le chemin d'accès complet d'un dossier?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3581,7 +3581,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3594,7 +3594,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3604,15 +3604,15 @@ msgstr "" "{ph0}Tout système:{ph1} faites glisser le dossier dans une fenêtre de " "terminal et son chemin apparaît." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "Dans un terminal, mettez des guillemets autour d'un chemin qui contient des " "espaces." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3621,14 +3621,14 @@ msgstr "" "Analysez un dossier d'application JavaScript ou Electron ou une archive ASAR" " sans exécuter l'application:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Analyse statique des applications" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3638,13 +3638,13 @@ msgstr "" "Remplacez le chemin par le répertoire de votre application extraite ou {ph0}" " dossier. Sur Windows, un chemin tel que {ph1} travaille ici." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Où trouver le fichier .asar d’une application ?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3656,7 +3656,7 @@ msgstr "" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3668,7 +3668,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3681,14 +3681,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} souvent {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3696,7 +3696,7 @@ msgstr "" "Certaines applications s'installent ailleurs. Recherchez le dossier de " "l'application pour {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3708,36 +3708,36 @@ msgstr "" "résoudre sont marquées dans le résultat." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Si vous souhaitez un permanent {ph0} commande dans votre shell:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Installez le CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Continuez avec le guide d'application JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Connectez votre installation de Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Connectez le modèle Ghidra sur le modèle Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3749,7 +3749,7 @@ msgstr "" "locaux fixes. Utilisez une installation existante de Ghidra 12.1.x et un JDK" " 64 bits, version 21 ou ultérieure :" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3757,7 +3757,7 @@ msgstr "" "Remplacez les deux chemins par vos installations, puis passez en revue le " "plan de configuration." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3767,18 +3767,18 @@ msgstr "" "dessus; il détecte une installation existante ou propose un plan " "d'installation pour votre approbation." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Obtenir de l'aide" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Si votre agent ne voit pas REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3788,22 +3788,22 @@ msgstr "" "Redémarrez ou reconnectez le client après l'installation. Vérifiez sa " "connexion REA avec {ph0}; pour le modèle Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Si un fournisseur a besoin d'attention" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Vérifiez le fournisseur que vous utilisez. Pour Ghidra:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Vérifiez un fournisseur" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3814,7 +3814,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3827,7 +3827,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3841,7 +3841,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3855,7 +3855,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3880,68 +3880,68 @@ msgstr "" "JavaScript ou Electron à partir du terminal. Configuration, premières " "questions et guides du fournisseur natif." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Copier la vérification de la version Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Copier Node.js commande d'installation pour Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Copier Homebrew Node.js commande d'installation" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Copier la commande d'installation fnm pour Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Copier Node.js 24 commandes pour Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "Guide de démarrage du REA" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Copier l'invite d'installation de REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Copier la commande d'analyse JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Copier la commande d'installation de CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Commande de diagnostic du fournisseur de copie" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -3950,7 +3950,7 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" @@ -3959,13 +3959,13 @@ msgstr "" "navigateur" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Voyez ce qui se passe{ph0}lorsque vous cliquez." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3974,14 +3974,14 @@ msgstr "" "Utilisez une petite application de navigateur pour connecter une action, sa " "demande réseau et le JavaScript qui génère un téléchargement." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Dans ce guide" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3989,7 +3989,7 @@ msgstr "{ph0}L'exemple{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3997,7 +3997,7 @@ msgstr "{ph0}Ouvrez le navigateur{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4005,7 +4005,7 @@ msgstr "{ph0}Demandez à votre agent{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -4013,13 +4013,13 @@ msgstr "{ph0}Capture à partir de CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Lire la requête et le script{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Que se passe-t-il lorsque vous cliquez sur Exporter?" @@ -4029,7 +4029,7 @@ msgstr "Que se passe-t-il lorsque vous cliquez sur Exporter?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4041,7 +4041,7 @@ msgstr "" "notes{ph3} bouton. Cliquer dessus se charge {ph4}, formate les deux notes en" " CSV et lance un téléchargement." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Du clic au téléchargement CSV" @@ -4052,7 +4052,7 @@ msgstr "Du clic au téléchargement CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4069,7 +4069,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4088,7 +4088,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4098,17 +4098,17 @@ msgstr "" "{ph0}03 · Votre agent{ph1}{ph2}Lire le code d'exportation{ph3}{ph4}Connectez" " la requête observée à {ph5} dans {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Démarrez la capture avant de cliquer sur Exporter les notes." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Ouvrez Chrome avec le débogage à distance" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4117,21 +4117,21 @@ msgstr "" "Ouvrez l'exemple hosted Notes avec un profil de navigateur distinct et un " "port de débogage local. Sur le modèle Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Démarrez l'exemple de navigateur" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Copier" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4141,7 +4141,7 @@ msgstr "" " ou Windows . Vous pouvez remplacer l'URL de la page par une autre page que " "vous souhaitez inspecter." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4150,7 +4150,7 @@ msgstr "" "REA se connecte à ce navigateur existant. Vous gardez le contrôle de la " "page, effectuez l'action et fermez le navigateur lorsque vous avez terminé." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Demandez à votre agent de regarder une action" @@ -4163,7 +4163,7 @@ msgstr "Demandez à votre agent de regarder une action" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4175,7 +4175,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Votre agent de codage" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4187,7 +4187,7 @@ msgstr "" "construit?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4197,7 +4197,7 @@ msgstr "" "Exemple d'invite. Donnez à votre agent le point de terminaison de débogage, " "{ph0}, et l'URL de la page. Laissez-le démarrer la capture avant de cliquer." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4208,23 +4208,23 @@ msgstr "" "et lit les preuves résultantes. Il peut ensuite inspecter le script derrière" " l'exportation." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Ou capture depuis le terminal" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Trouver l'ID cible de la page:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Trouver la page" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4234,14 +4234,14 @@ msgstr "" "Choisissez la cible avec l'URL de l'exemple de Notes. Remplacer {ph0} ci-" "dessous avec son identifiant, puis exécutez:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Capturez les dix prochaines secondes" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4252,7 +4252,7 @@ msgstr "" " {ph0}Exporter des notes{ph1} dans ce navigateur. Le résultat arrive après " "la fin de la fenêtre d'observation." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4263,49 +4263,49 @@ msgstr "" "de cette fenêtre et la forme de la réponse JSON. Les demandes antérieures " "sont en dehors de cette capture." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Lire la requête et exporter le script" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Enregistré avec REA 4.1.0 sur l'exemple des notes locales" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Fait capturé" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Valeur" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Demande" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Réponse" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Initiateur de la demande" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * scénario" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Structure de la réponse" @@ -4313,19 +4313,19 @@ msgstr "Structure de la réponse" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} avec {ph1} et {ph2} champs" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Lire les scripts chargés" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4337,7 +4337,7 @@ msgstr "" "les données sont utilisées:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4350,7 +4350,7 @@ msgstr "" "ce clic demandé {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4362,7 +4362,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4388,65 +4388,65 @@ msgstr "" "navigateur, capturez un clic, inspectez la demande et suivez le script " "d'exportation." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Observation du navigateur" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Copier démarrez l'exemple de navigateur" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Copier l'exemple d'invite" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Copier trouver la page" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Copie capture les dix prochaines secondes" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Copier lire les scripts chargés" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Accueil{ph1} / Guides" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Guides d'utilisation REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4455,37 +4455,37 @@ msgstr "" "Analysez une fonction native, un export Electron ou une requête de " "navigateur. Chaque guide comprend une invite, un code et des résultats." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Première enquête" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Mettre en place REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Connectez votre agent de codage ou utilisez REA à partir du terminal." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Premiers pas avec REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Programmes en code machine" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Récupérer un calcul de la position du son gauche/droite" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4495,22 +4495,22 @@ msgstr "" "suivez un appelant, lisez les constantes numériques et vérifiez le C " "récupéré." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Guide d'analyse des programmes en code machine" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Suivre une exportation CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4520,14 +4520,14 @@ msgstr "" "de rendu, le préchargement et le processus principal. Utilisez REA pour " "connecter l'API, le canal IPC et le graveur de fichiers." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Guide des modèles JavaScript et Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4535,17 +4535,17 @@ msgstr "" "Pour une application packagée plus grande, suivez {ph0} Pont de presse-" "papiers de Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Comportement du navigateur" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Observez un clic" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4554,7 +4554,7 @@ msgstr "" "Ouvrez un exemple de notes de travail, capturez une demande d'exportation et" " recherchez le code qui transforme sa réponse en téléchargement." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Guide d'observation du navigateur" @@ -4573,12 +4573,12 @@ msgstr "" "Apprenez REA à travers de courts exemples travaillés: un calcul natif, un " "export Electron CSV et une requête de navigateur." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -4587,7 +4587,7 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" @@ -4595,13 +4595,13 @@ msgstr "" "{ph0}Accueil{ph1} / {ph2}Guides Touristiques{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Tracer un Electron{ph0}CSV exporter." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4610,14 +4610,14 @@ msgstr "" "Suivez un clic de bouton depuis l'API de la page, via Electron IPC, vers le " "graveur de fichiers CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Dans ce guide" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4625,7 +4625,7 @@ msgstr "{ph0}L'exemple{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4633,7 +4633,7 @@ msgstr "{ph0}Demandez à votre agent{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4641,7 +4641,7 @@ msgstr "{ph0}Tracer le code d'exportation{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4649,20 +4649,20 @@ msgstr "{ph0}Essayez l'exemple{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Inspectez le graveur CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Où va “Exporter les notes\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4674,7 +4674,7 @@ msgstr "" "des notes{ph1} appelle une API dans la page, traverse le processus principal" " et écrit un CSV . Le comportement est réparti sur plusieurs fichiers." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "L'exportation de CSV à travers les processus Electron" @@ -4688,7 +4688,7 @@ msgstr "L'exportation de CSV à travers les processus Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4705,7 +4705,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4722,7 +4722,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4735,13 +4735,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} formate les notes → {ph1} écrit {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4752,14 +4752,14 @@ msgstr "" "l'API exposée. Le chemin est déduit du code; une capture d'exécution peut " "vérifier ce qui s'exécute." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Renseignez - vous sur l'exportation CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4777,14 +4777,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Votre agent de codage" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Copier" @@ -4795,7 +4795,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4806,7 +4806,7 @@ msgstr "" "des notes dans cette application. Où est créé le CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4816,7 +4816,7 @@ msgstr "" "Exemple d'invite. Inclure le chemin absolu vers le dossier de l'application " "ou {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4827,17 +4827,17 @@ msgstr "" "d'entrée, des modules et des limites de processus. Votre agent utilise cette" " carte pour restreindre l'enquête à la fonction d'exportation." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Tracer le code d'exportation" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "La page appelle une petite API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4848,7 +4848,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4860,7 +4860,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4871,7 +4871,7 @@ msgstr "" "notes et le processus principal écrit {ph1} dans le dossier Téléchargements " "de l'utilisateur." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4881,7 +4881,7 @@ msgstr "" "emplacements sources accompagnent les résultats de l'API, du canal et du " "gestionnaire." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analysez l'exemple vous-même" @@ -4889,25 +4889,25 @@ msgstr "Analysez l'exemple vous-même" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Télécharger un exemple de ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Parcourez les six fichiers sources" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Analyse statique des applications" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4918,7 +4918,7 @@ msgstr "" "trouver un canal IPC et un gestionnaire correspondant dans {ph0}. Les " "emplacements sources sont en {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4929,13 +4929,13 @@ msgstr "" " ou son chemin ASAR. Un agent peut suivre une chaîne littérale, un nom d'API" " ou un canal IPC avec les outils de traçage des fonctionnalités de REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Inspectez le graveur CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4945,7 +4945,7 @@ msgstr "" "Suivre {ph0} à son gestionnaire. Quelles entrées atteignent le graveur CSV " "et que se passe-t-il si l'écriture du fichier échoue?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4960,7 +4960,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4974,7 +4974,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4988,7 +4988,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -5014,32 +5014,32 @@ msgstr "" "et un gestionnaire IPC avec REA . Inclut des fichiers d'exemple " "téléchargeables et un résultat d'analyse vérifié." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Copier l'exemple d'invite" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Copie de l'analyse statique des applications" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -5048,7 +5048,7 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5057,14 +5057,14 @@ msgstr "" " code machine" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" "Récupérez les DX-Ball{ph0}calcul de la position sonore gauche / droite." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5073,14 +5073,14 @@ msgstr "" "Inspectez les instructions d'origine, identifiez l'entrée et les constantes," " puis vérifiez le C récupéré." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Dans ce guide" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5088,7 +5088,7 @@ msgstr "{ph0}L'exemple{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5096,7 +5096,7 @@ msgstr "{ph0}Demandez à votre agent{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5104,7 +5104,7 @@ msgstr "{ph0}Lire les résultats du REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5112,18 +5112,18 @@ msgstr "{ph0}Récupérer et vérifier{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Utilisez votre propre binaire{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Calculer le positionnement du son stéréo gauche/droite" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5134,7 +5134,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5146,7 +5146,7 @@ msgstr "" "appel à {ph1}. REA renvoie également ses instructions et ses appelants, ce " "qui donne à l'agent un moyen d'enquêter sur l'arithmétique manquante." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Nouveau dans ces conditions?" @@ -5155,7 +5155,7 @@ msgstr "Nouveau dans ces conditions?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5167,7 +5167,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5180,7 +5180,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5193,7 +5193,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5205,7 +5205,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5215,7 +5215,7 @@ msgstr "" "{ph0}Constantes:{ph1} nombres fixes stockés dans le programme, lus sous " "forme d'octets bruts et décodés." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Trois éléments de preuve, un calcul" @@ -5226,7 +5226,7 @@ msgstr "Trois éléments de preuve, un calcul" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5244,7 +5244,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5262,7 +5262,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5272,7 +5272,7 @@ msgstr "" "{ph0}03 * Octets de données{ph1}{ph2}Les constantes numériques{ph3}{ph4}Les " "octets référencés décodent en {ph5}, {ph6} et une valeur d'échelle.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5281,7 +5281,7 @@ msgstr "" "REA fournit les instructions, la relation fonction-appel et les octets. " "L'agent les interprète ensemble." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Renseignez-vous sur le comportement" @@ -5290,7 +5290,7 @@ msgstr "Renseignez-vous sur le comportement" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5301,19 +5301,19 @@ msgstr "" "outil d'analyse des programmes en code machine{ph3}, fournir l'exécutable " "local et une question:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Quel outil d'analyse dois-je utiliser?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA a besoin de l'un d'entre eux pour lire des programmes natifs:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5327,7 +5327,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5340,7 +5340,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5351,7 +5351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5367,14 +5367,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Votre agent de codage" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Copier" @@ -5385,7 +5385,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5396,7 +5396,7 @@ msgstr "" "positionnement du son stéréo. Expliquez le calcul et montrez le " "code.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5408,7 +5408,7 @@ msgstr "" "copie ou posez le même genre de question à propos d'un autre petit programme" " Windows que vous avez." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Comment puis-je obtenir le chemin complet d'un fichier?" @@ -5417,7 +5417,7 @@ msgstr "Comment puis-je obtenir le chemin complet d'un fichier?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5433,7 +5433,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5446,7 +5446,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5456,17 +5456,17 @@ msgstr "" "{ph0}Tout système:{ph1} faites glisser le fichier dans une fenêtre de " "terminal et son chemin apparaît." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Lire les résultats du REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Lire l'entrée" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5476,13 +5476,13 @@ msgstr "" "arithmétique à virgule flottante. C'est l'entrée absente de la première vue " "pseudocode." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Suivez l'appelant" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5493,12 +5493,12 @@ msgstr "" "multiplient la coordonnée de la tuile par 30; en ajoutant {ph0} (20) donne " "la position de l'écran de la brique." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Lire les constantes référencées" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5508,12 +5508,12 @@ msgstr "" "les valeurs réelles; l'ordre des instructions indique à l'agent comment " "elles sont utilisées." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Écrivez et vérifiez la fonction récupérée" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5524,7 +5524,7 @@ msgstr "" " -500, 0 et 500 avant la conversion d'entiers. Le calcul place le centre de " "l'écran au centre du champ stéréo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5537,20 +5537,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Voir l'enquête complète et la comparaison assemblage-C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Essayez-le avec votre propre binaire" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5564,7 +5564,7 @@ msgstr "" "fonctionnalité à étudier. Les questions de départ utiles incluent “Comment " "ce fichier est-il analysé?“ou \" Quelle fonction gère cette action de menu?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5573,13 +5573,13 @@ msgstr "" "Si vous connaissez déjà un nom ou une adresse de fonction, vous pouvez " "l'interroger à partir du terminal. Pour une installation Ghidra configurée:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Analyse de fonction" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5593,7 +5593,7 @@ msgstr "" "session. Les requêtes MCP de votre agent réutilisent le binaire importé " "pendant que cette session est ouverte." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5617,50 +5617,50 @@ msgstr "" "Récupérez un calcul natif avec REA: inspectez les instructions, suivez un " "appelant, lisez les constantes et vérifiez le C reconstruit." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Analyse de programmes en code machine" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Copier l'exemple d'invite" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Analyse de la fonction de copie" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Aller au contenu" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Mettre en place REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5668,7 +5668,7 @@ msgstr "{ph0}Mettre en place REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5676,7 +5676,7 @@ msgstr "{ph0}Jeu de dinosaure{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5684,7 +5684,7 @@ msgstr "{ph0}Calculatrice{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5692,25 +5692,25 @@ msgstr "{ph0}Essayez le modèle REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Aller plus loin{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Ingénierie inverse, avec votre agent de codage" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Découvrez comment{ph0}fonctionne un logiciel." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Copiez ce prompt dans votre agent de programmation :" @@ -5723,26 +5723,26 @@ msgstr "Copiez ce prompt dans votre agent de programmation :" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Votre agent de codage" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Copier" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Ou exécutez cette commande dans le terminal :" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" @@ -5750,7 +5750,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5758,7 +5758,7 @@ msgstr "{ph0}01{ph1} Décoder les branches" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5766,7 +5766,7 @@ msgstr "{ph0}02{ph1} Tracer les appels" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5776,20 +5776,20 @@ msgstr "{ph0}03{ph1} Récupérer la règle" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Instructions d'origine x64 · sélectionnées{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * Quelle branche?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5799,29 +5799,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Deux sauts au même endroit. De quels opérateurs " "s'agit-il?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Recherchez les identifiants de commande, puis étiquetez la branche." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Diviser ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Multiplier ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Que font les fonctions appelées ?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5831,24 +5831,24 @@ msgstr "" "\"100 est clair. Les appels ne sont que des adresses. {ph0}Lequel divise? " "Quelle valeur entre?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Inspectez les fonctions d'assistance et tracez les valeurs stockées." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Diviser" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * Quelle est la règle?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5858,19 +5858,19 @@ msgstr "" "\"Ce chemin se multiplie par l'autre entrée. Donc {ph0}10% signifie 10% de " "200{ph1} après +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Nommez les opérandes et vérifiez les deux chemins d'opérateur." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Raisonnement d'expert illustratif" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5888,21 +5888,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Exemple d'invite * Calculatrice" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Exemple de réponse · basé sur les résultats" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5910,68 +5910,68 @@ msgid "" msgstr "" "Après +, le bouton % prend {ph0}un pourcentage du premier nombre.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA fournit" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Les instructions du gestionnaire, le code décompilé et les appels." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Votre agent explique" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" "Quelle branche s'applique, ce qu'elle calcule et comment la reconstruire." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Exemple 01 * Jeu de dinosaures de Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Pourquoi le dinosaure accélère-t-il ?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Jouer" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Sauter ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Recommencer" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Vitesse" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Utilisez la règle d'accélération récupérée" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Règle d'origine: commencez à 6, puis augmentez vers 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5984,7 +5984,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5998,7 +5998,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -6006,12 +6006,12 @@ msgstr "" "Cible inspectée: {ph0}édition de navigateur dérivée du Chromium de " "wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Ouvrir le laboratoire de vitesse →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Ce que fait chaque partie" @@ -6022,7 +6022,7 @@ msgstr "Ce que fait chaque partie" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6039,7 +6039,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6056,7 +6056,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6066,13 +6066,13 @@ msgstr "" "{ph0}03 * Vous{ph1}{ph2}Changez la vitesse et jouez{ph3}{ph4}Essayez " "l'accélération d'origine, puis choisissez votre propre rythme.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Voir le script, les vérifications et comment essayer l'analyse" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6083,7 +6083,7 @@ msgstr "" "locale et a renvoyé le fichier chargé {ph0}, y compris sa source et son " "résumé." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6097,7 +6097,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6114,7 +6114,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6132,7 +6132,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6141,34 +6141,34 @@ msgstr "" "{ph0}Code de vitesse inspecté{ph1} · {ph2} Auteurs de Chromium * Licence " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Exemple 02 · Windows Calculatrice" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Recréez le bouton % de la calculatrice." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Réinitialiser" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% de 200 = 20. Alors 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Illustration interactive de la règle du pourcentage inspecté." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6180,7 +6180,7 @@ msgstr "Pour cet exemple, {ph0} et {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6192,7 +6192,7 @@ msgstr "" "Windows. Récupérez les règles après + et×, puis créez une petite " "calculatrice qui utilise les deux.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Avec +" @@ -6200,13 +6200,13 @@ msgstr "Avec +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Prenez 10% du premier nombre.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Avec ×" @@ -6214,13 +6214,13 @@ msgstr "Avec ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Transformez 10% en 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "De l'application installée à un bouton % fonctionnel" @@ -6232,7 +6232,7 @@ msgstr "De l'application installée à un bouton % fonctionnel" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6250,7 +6250,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6262,12 +6262,12 @@ msgstr "" "règles{ph3}{ph4}Vérifiez la branche avec la source de Microsoft, puis " "essayez + et × ci-dessus.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Voir le vrai code et comment la réponse a été vérifiée" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6288,7 +6288,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6298,17 +6298,17 @@ msgstr "" "{ph0}Pourcentage de mise en œuvre{ph1} · {ph2}Scénarios de test de " "Microsoft{ph3} · {ph4}Guide de configuration natif{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Votre première enquête" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Essayez REA sur une petite application." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6317,17 +6317,17 @@ msgstr "" "Téléchargez notre exemple de Notes, tracez son exportation CSV et vérifiez " "une entrée modifiée." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Essayez l'exemple guidé" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Programmes en code machine" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6336,17 +6336,17 @@ msgstr "" "Inspectez les fonctions, les chaînes, les références et les relations " "d'appel de fonction dans les exécutables et les bibliothèques." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Guide d'analyse des programmes en code machine" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6355,17 +6355,17 @@ msgstr "" "Mappez les modules, les routes, l'IPC et les dépendances natives à partir " "d'un dossier d'application ou d'une archive ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Flux de travail des applications" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Activité du navigateur et de l'exécution" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6374,12 +6374,12 @@ msgstr "" "Capturez l'activité du navigateur ou du processus sélectionné, puis comparez" " les résultats entre les exécutions." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Guide d'observation du navigateur" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Des questions ?" @@ -6399,27 +6399,27 @@ msgstr "" "navigateur avec votre agent de codage. Suivez des guides clairs et essayez " "des exemples interactifs avec REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Copier l'invite d'installation de REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Commande Copier le programme d'installation" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Suivez l'analyse manuelle de la calculatrice" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Question sur le pourcentage de la calculatrice de copie" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6428,27 +6428,27 @@ msgstr "" "Mini-jeu de dinosaure. Utilisez le bouton de saut ou appuyez sur Espace " "pendant que le jeu est concentré." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie de l'invite d'analyse des dinosaures" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Choisissez le calcul" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Invite d'analyse de la calculatrice de copie" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -6457,26 +6457,26 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Accueil{ph1} / {ph2}Vitrines{ph3} / Androïde" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Étude de cas · Authentificateur Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" "Comment fonctionne un authentificateur{ph0}générer un code de connexion?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6486,17 +6486,17 @@ msgstr "" "trouver le calcul dans un Android APK , puis reconstruisez-le avec une " "horloge que vous pouvez contrôler." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android * Version officielle APK · 6,9 Mo" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Voir le modèle Aegis sur le modèle GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "D'un APK à un code que vous pouvez reproduire" @@ -6507,7 +6507,7 @@ msgstr "D'un APK à un code que vous pouvez reproduire" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6525,7 +6525,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6543,7 +6543,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6555,14 +6555,14 @@ msgstr "" "code.{ph3}{ph4}Une nouvelle démo de navigateur reproduit la règle et la " "compare à des cas de référence publics.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Dans cette étude de cas" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6570,7 +6570,7 @@ msgstr "{ph0}Demandez à votre agent{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6578,7 +6578,7 @@ msgstr "{ph0}Essayez le générateur de code{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6586,7 +6586,7 @@ msgstr "{ph0}Trouver le code avec REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6594,7 +6594,7 @@ msgstr "{ph0}Lire le calcul{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6602,20 +6602,20 @@ msgstr "{ph0}Vérifiez la reconstruction{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Inspectez vous-même le APK{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Demandez à votre agent" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6633,21 +6633,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Votre agent de codage" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Copier" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6657,14 +6657,14 @@ msgstr "" "Un exemple d'invite pour le APK téléchargé, avec l'analyse Android de REA " "configurée. {ph0}Obtenez le APK et la configuration de l'analyse ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Essayez le générateur de code" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6676,33 +6676,33 @@ msgstr "" "combine le numéro de bloc avec la clé de compte pour générer un code. La " "même clé et le même bloc produisent le même code." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Déplacez l'horloge sur 60 secondes" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Temps" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "secondes" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Notre horloge d'exemple réglable" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "bloc de 30 secondes" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Bloquer" @@ -6711,35 +6711,35 @@ msgstr "Bloquer" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 secondes{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Code généré" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Clé de compte + bloc → six chiffres" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Exemple de temps, en secondes" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 secondes" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 secondes" @@ -6748,7 +6748,7 @@ msgstr "60 secondes" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6760,7 +6760,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6770,7 +6770,7 @@ msgstr "" "La clé est fixe, publique {ph0}Données de test RFC 6238{ph1}. La démo " "implémente le calcul récupéré à partir du APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6779,18 +6779,18 @@ msgstr "" "Le diagramme montre le résultat à 59 secondes. Activez JavaScript pour " "changer l'horloge." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Trouver le code avec REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Limitez le APK à trois classes" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6801,14 +6801,14 @@ msgstr "" "progression et les comptes importés. TOTP signifie un mot de passe à usage " "unique basé sur le temps." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Connectez le générateur à l'écran de l'application" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6819,7 +6819,7 @@ msgstr "" "méthode de base. Inspection {ph0} puis affiche l'appel d'affichage {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6829,14 +6829,14 @@ msgstr "" "Les requêtes affichent un chemin d'entrée raccourci. Les noms de classe de " "résultat omettent le commun {ph0} préfixe." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Lire le calcul" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6851,7 +6851,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6859,7 +6859,7 @@ msgstr "{ph0}01{ph1} Bloc de temps" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6867,7 +6867,7 @@ msgstr "{ph0}02{ph1} Clé + bloc" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6875,7 +6875,7 @@ msgstr "{ph0}03{ph1} Six chiffres" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6887,7 +6887,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6901,7 +6901,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6916,7 +6916,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6927,7 +6927,7 @@ msgstr "" "l'affichage. Le panneau de droite est un résumé explicatif. {ph0} Le code " "Aegis est sous licence GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "À l'intérieur du générateur" @@ -6936,7 +6936,7 @@ msgstr "À l'intérieur du générateur" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6946,7 +6946,7 @@ msgstr "" "Les mises APK publiées {ph0} dans {ph1}. REA suit l'appel de {ph2} et " "renvoie ce corps; la source d'origine appelle l'assistant {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6963,20 +6963,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Comparer avec la source de publication correspondante{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Vérifiez la reconstruction" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6989,29 +6989,29 @@ msgstr "" "indépendante sur {ph0}133 cas de test{ph1}, y compris les limites des blocs " "de temps et les codes commençant par zéro." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Exemple de temps" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Code à six chiffres" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 secondes" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1 111 111 109 secondes" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7022,17 +7022,17 @@ msgstr "" "dans {ph0}Référence RFC 6238{ph1}. Vérifiez l'implémentation du navigateur " "par rapport à eux:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Exécuter des vérifications des références" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Lire le calcul de la démo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -7041,7 +7041,7 @@ msgstr "" "Les cas de référence utilisent huit chiffres. La vérification vérifie " "également leurs résultats à six chiffres." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7050,14 +7050,14 @@ msgstr "" "La vérification exécute les méthodes Java extraites et la nouvelle démo. " "L'Android APK a été inspecté statiquement." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Inspectez vous-même le APK" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7070,7 +7070,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7080,18 +7080,18 @@ msgstr "" "L'analyse Android nécessite un JDK 17 complet ou une version ultérieure. " "Sélectionnez-le avec {ph0} ou {ph1}. Cette affaire utilisait JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Pointez REA sur le fichier fournisseur et inspectez le APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "Modèle: macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7104,7 +7104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7114,7 +7114,7 @@ msgstr "" "Une question suivante: {ph0}que se passe-t-il lorsqu'un compte utilise huit " "chiffres ou un intervalle de temps différent?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Sources" @@ -7130,7 +7130,7 @@ msgstr "Sources" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7144,7 +7144,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7152,7 +7152,7 @@ msgstr "" "{ph0}Cas de référence RFC 6238{ph1} · {ph2}Données de test de " "démonstration{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7178,37 +7178,37 @@ msgstr "" "connexion à six chiffres et essayez une reconstruction avec une horloge " "réglable." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK étude de cas" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Copier l'invite d'exemple Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Suivez le calcul du code de connexion" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Copie de la commande d'inspection APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -7217,26 +7217,26 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Accueil{ph1} / {ph2}Vitrines{ph3} / FCT" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Étude de cas * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Trouvez le drapeau dans{ph0}un binaire CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7247,17 +7247,17 @@ msgstr "" " ses règles en équations et trouver une entrée qui fait imprimer le " "programme d'origine {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "vérificateur de drapeau carrés masqués * Facile * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Voir le défi original" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "D'une réponse binaire à une réponse vérifiée" @@ -7268,7 +7268,7 @@ msgstr "D'une réponse binaire à une réponse vérifiée" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7286,7 +7286,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7304,7 +7304,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7316,21 +7316,21 @@ msgstr "" "Correct!{ph3}{ph4}Un script Python résout les équations. REA capture le " "programme d'origine acceptant le résultat.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" "Le défi est de joseph, publié dans le référentiel officiel de DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Dans cette étude de cas" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7338,7 +7338,7 @@ msgstr "{ph0}Trouver le code de vérification{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7346,7 +7346,7 @@ msgstr "{ph0}Lire un masque{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7354,7 +7354,7 @@ msgstr "{ph0}Assemblage en code lisible{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7362,7 +7362,7 @@ msgstr "{ph0}Résoudre les équations{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7370,20 +7370,20 @@ msgstr "{ph0}Vérifiez la réponse{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Essayez-le vous-même{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Trouver le code de vérification" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7401,17 +7401,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Votre agent de codage" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Copier" @@ -7422,7 +7422,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7434,7 +7434,7 @@ msgstr "" "l'indicateur. Expliquez le fonctionnement des vérifications, puis vérifiez " "la réponse avec le programme d'origine.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7443,12 +7443,12 @@ msgstr "" "Un exemple d'invite, avec le défi téléchargé disponible localement et une " "analyse du fournisseur de programmes en code machine connecté." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Suivez l'invite de saisie jusqu'à sa fonction" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7457,14 +7457,14 @@ msgstr "" "La référence donne à l'agent un endroit pour enquêter, même si les noms de " "fonctions d'origine de l'exécutable ont été supprimés." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Lire le vérificateur et ses deux aides" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7477,7 +7477,7 @@ msgstr "" "avec un nombre stocké. Ses {ph0}- étapes d'octets à travers {ph1} les octets" " donnent 26 masques." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7487,12 +7487,12 @@ msgstr "" "chemin cible local est raccourci pour l'affichage; les adresses se réfèrent " "à l'image importée de REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Un chèque révèle un caractère" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7506,7 +7506,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." @@ -7514,7 +7514,7 @@ msgstr "" "La septième vérification sélectionne une seule position. {ph0}Figure " "ouverte{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Lire le masque et sa cible à partir du binaire" @@ -7523,7 +7523,7 @@ msgstr "Lire le masque et sa cible à partir du binaire" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7536,12 +7536,12 @@ msgstr "" "Ensemble, ces octets indiquent à l'agent que {ph2}, donc ce personnage est " "{ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Des instructions à un chèque lisible" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7552,7 +7552,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7560,7 +7560,7 @@ msgstr "{ph0}01{ph1} Démarrer" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7568,7 +7568,7 @@ msgstr "{ph0}02{ph1} Sélectionner" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7576,7 +7576,7 @@ msgstr "{ph0}03{ph1} Ajouter" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7584,18 +7584,18 @@ msgstr "{ph0}04{ph1} Avance" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Comparer" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * instructions d'origine sélectionnées" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Résumé lisible de C * one-check" @@ -7603,7 +7603,7 @@ msgstr "Résumé lisible de C * one-check" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7611,7 +7611,7 @@ msgstr "{ph0}01 * Commencez à zéro.{ph1} {ph2} détient la somme courante." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7623,7 +7623,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7635,7 +7635,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7649,7 +7649,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7659,7 +7659,7 @@ msgstr "" "{ph0}05 * Comparer avec la cible stockée.{ph1} L'appelant reçoit la somme en" " {ph2}. Un décalage saute à {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7669,12 +7669,12 @@ msgstr "" " Le C est un résumé explicatif avec des noms descriptifs et une boucle " "aplatie de 36 cellules." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Résoudre les 26 équations" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7686,13 +7686,13 @@ msgstr "" " 1441. Les sélections qui se chevauchent donnent des équations qu'un petit " "script Python peut résoudre ensemble." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Extrait du solveur Python ·" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7706,19 +7706,19 @@ msgstr "" "avec des lettres, des chiffres, des traits de soulignement et des accolades." " Le téléchargement complet comprend les 26 masques et cibles." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Télécharger le solveur complet" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Vérifiez la réponse avec le programme d'origine" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7731,47 +7731,47 @@ msgstr "" "{ph1} fait la première somme 1440 au lieu de 1441, et le programme la " "rejette." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Entrée" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Production observée" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Code de sortie" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Drapeau du solveur" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Un personnage a changé" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Afficher l'indicateur récupéré et la sortie capturée" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * sortie du programme d'origine" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Copier l'indicateur" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7781,12 +7781,12 @@ msgstr "" "défi publiées par les organisateurs, vérifiées après la résolution du " "binaire." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Détails de la source, de l'identité de la cible et de l'analyse" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7797,7 +7797,7 @@ msgstr "" "utilisant REA 4.1.0 avec Ghidra 12.1.4 sur Linux x64. Le binaire est un ELF " "x86-64 dépouillé, 15 248 octets." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7820,7 +7820,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7830,12 +7830,12 @@ msgstr "" "{ph0}Comparez avec la source des organisateurs{ph1} · {ph2}Contester les " "métadonnées et l'indicateur{ph3} · {ph4}REA notes de preuve{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Essayez-le vous-même" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7845,13 +7845,13 @@ msgstr "" "l'invite ci-dessus pour enquêter avec votre agent ou exécutez le script " "inclus." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * résoudre et exécuter" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7863,7 +7863,7 @@ msgstr "" " résolution des besoins Python et {ph0}. L'exécution de l'exécutable " "d'origine nécessite Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Configurez REA avec votre agent de codage" @@ -7884,29 +7884,29 @@ msgstr "" " DownUnderCTF. Retrouvez les fonctions de vérification, extrayez les masques" " et comparez un drapeau récupéré avec le programme d'origine." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Étude de cas sur le vérificateur de drapeau de la FCT" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Copier l'invite d'exemple CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" "Équation du masque CTF; faites défiler horizontalement sur des écrans plus " "petits" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7917,42 +7917,42 @@ msgstr "" " 14. Seule cette cellule contribue à la somme. Son code de caractère requis " "est 55, ce qui signifie que le caractère est 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Suivez la vérification du FCT" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Copier l'assemblage de la FCT" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Copier le chèque CTF lisible" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Copier l'extrait du solveur CTF" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Copier l'indicateur récupéré" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Copier les commandes du solveur CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -7961,25 +7961,25 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Accueil{ph1} / {ph2}Vitrines{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Étude de cas * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Reconstruction DX-Ball{ph0}de son exécutable." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7988,14 +7988,14 @@ msgstr "" "L'objectif est une version C maintenable du jeu Windows de 1996. REA aide " "l'agent à inspecter l'original, une fonction à la fois." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 · D · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8007,14 +8007,14 @@ msgstr "" "les appelants et les lectures de données; le projet de reconstruction " "implémente et teste le résultat. {ph0}Figure ouverte{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Dans cette étude de cas" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -8022,7 +8022,7 @@ msgstr "{ph0}Le projet{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -8030,7 +8030,7 @@ msgstr "{ph0}Panoramique sonore{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -8038,23 +8038,23 @@ msgstr "{ph0}Vérification du résultat{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Continuer le travail{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "fonctions C maintenues" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "comparaisons avec le code d'origine" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "fonctions avec octets compilés correspondants" @@ -8065,7 +8065,7 @@ msgstr "fonctions avec octets compilés correspondants" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8075,12 +8075,12 @@ msgstr "" "Point de contrôle du projet: 7 octobre 2026. {ph0}Registre de " "progression{ph1} · {ph2}Couverture des tests{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Le projet à ce jour" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8096,12 +8096,12 @@ msgstr "" "physique de la balle et de la pagaie, la manipulation de la mise sous " "tension et l'intégration de Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Trouver le calcul de la position sonore gauche / droite" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8120,17 +8120,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Votre agent de codage" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Copier" @@ -8141,7 +8141,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8152,7 +8152,7 @@ msgstr "" "positionnement du son stéréo. Expliquez le calcul et montrez le " "code.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8163,7 +8163,7 @@ msgstr "" "disponible. L'enquête ci-dessous montre les requêtes REA et les preuves " "derrière la réponse." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8177,7 +8177,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8191,12 +8191,12 @@ msgstr "" "pile et des opérations en virgule flottante. Cet écart a donné à l'agent une" " raison concrète de continuer à enquêter." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "La première vue du décompilateur" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8205,18 +8205,18 @@ msgstr "" "La sortie affiche un appel de conversion. La lecture des instructions ci-" "dessous révèle l'entrée et le calcul alimentant cet appel." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Réponses à trois questions via REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Récupérer l'entrée manquante" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8227,14 +8227,14 @@ msgstr "" "des appelants. Ici, {ph0} expose l'entrée entière manquante dans la vue du " "décompilateur." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Suivez l'appelant pour comprendre l'entrée" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8245,12 +8245,12 @@ msgstr "" "d'instructions précédente {ph0} par 30; l'ajout de 20 donne les coordonnées " "de l'écran de la brique, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Lire les valeurs derrière les adresses mémoire" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8260,12 +8260,12 @@ msgstr "" "l'échelle panoramique initiale. L'agent a maintenant les valeurs nécessaires" " pour l'expression C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Des découvertes de REA à C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8276,7 +8276,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8284,7 +8284,7 @@ msgstr "{ph0}01{ph1} Entrée" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8292,7 +8292,7 @@ msgstr "{ph0}02{ph1} Multiplier" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8300,7 +8300,7 @@ msgstr "{ph0}03{ph1} Soustraire" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8308,18 +8308,18 @@ msgstr "{ph0}04{ph1} Échelle" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Retour" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Extrait original x86 ·" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "C Reconstruit" @@ -8329,7 +8329,7 @@ msgstr "C Reconstruit" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8349,7 +8349,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8366,7 +8366,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8384,7 +8384,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8401,7 +8401,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8413,7 +8413,7 @@ msgstr "" "dans les résultats de l'appelé de REA. Le C convertit le résultat en {ph4}; " "les comparaisons originales-x86 vérifient la valeur renvoyée." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8424,23 +8424,23 @@ msgstr "" " et de retour. La liste complète ci-dessous comprend également les magasins " "intermédiaires et la configuration et le nettoyage des fonctions." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Assemblage complet et preuves à l'appui" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA résultat · 0x406400–0x40643f" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Ce que l'appelant fournit" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8450,54 +8450,54 @@ msgstr "" "La fonction de frappe de brique à {ph0} met à l'échelle sa coordonnée de " "tuile de 30, ajoute 20, puis la pousse avant l'appel:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Ce que les données lisent établissent" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA lectures d'octets, décodées en doubles little-endian" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Adresse" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Valeur" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Utilisé pour" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Première multiplication" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Soustraction" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} initialement" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Échelle de casserole stockée" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8513,7 +8513,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8523,12 +8523,12 @@ msgstr "" "{ph0}Source maintenue{ph1} · {ph2}Notes d'enquête et références des éléments" " de preuve{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Vérification de la fonction récupérée" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8538,12 +8538,12 @@ msgstr "" "correspondent à l'original et ses octets compilés correspondent à " "l'exécutable." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3 205 cas de comportement" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8554,12 +8554,12 @@ msgstr "" "retour avec le C maintenu. Ils couvrent chaque position entière de 0 à 640 à" " cinq échelles panoramiques: 0, 0,5, 1, 20 et -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 octets correspondants" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8571,7 +8571,7 @@ msgstr "" "appliqué les relocalisations examinées et vérifié les constantes " "référencées." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8586,18 +8586,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Lire les détails de la relecture du compilateur{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Poursuivre l'enquête" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8609,7 +8609,7 @@ msgstr "" "pertinentes, récupérez leur état et leurs dépendances, puis comparez " "l'implémentation avec l'original." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8619,7 +8619,7 @@ msgstr "" "configuration du projet DX-Ball et fournissez sa cible d'origine " "correspondante. Puis cours:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "Dans la caisse de DX-Ball" @@ -8628,7 +8628,7 @@ msgstr "Dans la caisse de DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8642,7 +8642,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8658,7 +8658,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8683,7 +8683,7 @@ msgstr "" "le C maintenu, les tests x86 d'origine et les octets de fonction compilés " "correspondants." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8691,7 +8691,7 @@ msgstr "" "DX-Ball étude panoramique du son; défilement horizontal sur des écrans plus " "petits" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8707,70 +8707,70 @@ msgstr "" "d'origine dans 3 205 cas et par relecture du compilateur VC4.0 correspondant" " à 63 octets." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Étude de cas sur la reconstruction du DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Copier l'exemple d'invite" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Suivez le calcul de la position sonore gauche / droite" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Copier l'extrait original de l'assemblage" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Fonction Copier le son-panoramique" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Copier l'assemblage complet du panoramique sonore" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Copier la commande d'analyse DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Accueil{ph1} / Vitrines" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Études de cas REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8779,17 +8779,17 @@ msgstr "" "Android, jeux, Electron et un défi CTF, avec code, chiffres et résultats " "vérifiés." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Pour Android · APK analyse" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Comment un authentificateur génère un code de connexion" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8800,22 +8800,22 @@ msgstr "" "Tracez les méthodes de génération avec REA, puis déplacez une horloge de " "démonstration pour voir pourquoi le code change toutes les 30 secondes." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Lire l'étude de cas Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Analyse des programmes en code machine" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Résoudre un vérificateur de drapeau CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8826,22 +8826,22 @@ msgstr "" " vérification, transformez les masques et les sommes en équations, puis " "vérifiez le drapeau résolu avec le programme d'origine." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Lire l'étude de cas de la FCT" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Reconstruction indigène ·" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Calcul de la position sonore gauche/droite de DX-Ball" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8853,22 +8853,22 @@ msgstr "" "numériques de REA conduisent à une petite fonction C, vérifiée par rapport " "au comportement d'origine et aux 63 octets compilés." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Lire l'étude de cas DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Traçage des fonctionnalités" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Comment Notion copie du texte et du code HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8880,22 +8880,22 @@ msgstr "" "petit marqueur HTML maintient les données de bloc riches connectées à une " "copie." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Lire l'étude de cas Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 pour la reconstruction" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Comment TH04 vise un anneau de balles" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8906,17 +8906,17 @@ msgstr "" "opérations de multiplication, de division et de coordination à du C ++ " "lisible, puis voyez comment elles produisent un anneau destiné au joueur." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Lire l'étude de cas TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Guides étape par étape" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8925,7 +8925,7 @@ msgstr "" "Les guides parcourent un calcul natif, une exportation Electron et une " "requête de navigateur. Chacun commence par une invite et une cible concrète." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Lire les guides" @@ -8945,12 +8945,12 @@ msgstr "" "authentificateur Android, DX-Ball, Notion, TH04 et un vérificateur de " "drapeau DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -8959,25 +8959,25 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Accueil{ph1} / {ph2}Vitrines{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Étude de cas · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Comment se copie Notion{ph0}texte et HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8987,12 +8987,12 @@ msgstr "" "préchargement et le processus principal, vers le rédacteur de presse-papiers" " de Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Bureau 7.6.1 · JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Le pont à l'intérieur du package de bureau de Notion" @@ -9004,7 +9004,7 @@ msgstr "Le pont à l'intérieur du package de bureau de Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9021,7 +9021,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9038,7 +9038,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9055,7 +9055,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9066,13 +9066,13 @@ msgstr "" "écrit le texte et le code HTML fournis.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Un canal relie les deux côtés: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9082,14 +9082,14 @@ msgstr "" "processus principal. La résolution des wrappers révèle les appels Electron " "derrière ces noms." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Dans cette étude de cas" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9097,7 +9097,7 @@ msgstr "{ph0}Suivez le pont du presse-papiers{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9105,19 +9105,19 @@ msgstr "{ph0}Conserver la structure d'un bloc{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Plus d'exemples et de sources{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Où va l'opération de copie?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9137,17 +9137,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Votre agent de codage" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Copier" @@ -9158,7 +9158,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9169,7 +9169,7 @@ msgstr "" "et du code HTML dans le presse-papiers du système. Affichez le code à chaque" " étape.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9178,12 +9178,12 @@ msgstr "" "Un exemple d'invite avec le package d'application local de Notion disponible" " pour votre agent de codage." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA trouve par où commencer la lecture" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9194,13 +9194,13 @@ msgstr "" "page et l'appel qui envoie une requête IPC. Les deux résultats sont fournis " "avec des plages de sources dans le bundle minifié:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "Résultats REA → deux endroits pour ouvrir" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9214,7 +9214,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9228,12 +9228,12 @@ msgstr "" "donne à l'agent quelque chose de précis à rechercher dans le paquet " "principal. Les quatre extraits ci-dessous montrent l'itinéraire qu'il relie." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Quatre courts morceaux de code" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9242,13 +9242,13 @@ msgstr "" "Simplifié à partir du JavaScript emballé, avec des noms de variables " "lisibles. Les membres non apparentés sont omis." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Commencez par l'API exposée à la page" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9258,13 +9258,13 @@ msgstr "" "Ce membre fournit le nom du canal. La mise en œuvre de {ph0} nous indique " "comment la demande quitte le processus de la page." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Résoudre le wrapper de la précharge" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9275,14 +9275,14 @@ msgstr "" "réponse de Electron. Nous pouvons maintenant chercher {ph0} du côté du " "processus principal." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Vérifiez comment le destinataire est enregistré" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9292,12 +9292,12 @@ msgstr "" "Le processus principal utilise un autre wrapper. Ses {ph0} la méthode " "enregistre un {ph1} récepteur pour ce canal." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Trouver l'écriture et sa vérification de l'expéditeur" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9309,13 +9309,13 @@ msgstr "" "canal et les deux wrappers résolus connectent la méthode exposée à cet " "appel." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Comment un bloc copié conserve-t-il sa structure?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9326,27 +9326,27 @@ msgstr "" "les données de bloc localement et place un identifiant dans le code HTML " "copié pour les connecter." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Liens HTML vers les données de bloc enregistrées" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Lire l'identifiant HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Trouver le même identifiant local" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Restaurer les données de bloc Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9356,7 +9356,7 @@ msgstr "" "données de bloc lorsque les identifiants correspondent; une entrée périmée " "ne renvoie que du texte et du HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9365,24 +9365,24 @@ msgstr "" "Lors du collage, Notion recherche l'ID HTML et le compare à la copie " "enregistrée. Les identifiants correspondants restaurent les données de bloc." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Format du presse-papiers enregistré à partir des ressources Web mises en " "cache le 13 juillet 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Plus d'exemples et de sources" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Un autre exemple: les tables de démarques" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9391,12 +9391,12 @@ msgstr "" "Notion analyse la démarque en données de bloc. Cet exemple montre comment " "une table devient des lignes d'en-tête et de données." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Un tableau via l'analyseur de démarque de Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9405,13 +9405,13 @@ msgstr "" "Sortie enregistrée à partir d'un analyseur Markdown extrait. Le tableau " "devient des lignes et des cellules." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Un autre chemin: la connexion SQLite hors ligne" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9425,7 +9425,7 @@ msgstr "" "l'autre à un processus utilitaire SQLite. Les lots de relevés suivants et " "les résultats transitent par ce port." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9435,7 +9435,7 @@ msgstr "" " pourquoi le suivi uniquement de la demande IPC initiale manque la " "conversation ultérieure." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Sources et comment lire les extraits" @@ -9443,7 +9443,7 @@ msgstr "Sources et comment lire les extraits" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9461,7 +9461,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9478,7 +9478,7 @@ msgstr "" "décrivent ces sondes plutôt qu'une session d'interface utilisateur de bureau" " capturée." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9493,7 +9493,7 @@ msgstr "" "wrapper dans le package." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9511,7 +9511,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9525,7 +9525,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9551,52 +9551,52 @@ msgstr "" "wrappers IPC et le processus principal de Electron, avec de courts extraits " "de code et un aperçu de son riche format de presse-papiers." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron étude de cas" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Copier l'invite d'analyse Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Copier l'extrait de préchargement Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Copier l'extrait d'enveloppe d'invocation Notion" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Copier l'extrait de wrapper du gestionnaire Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Copier l'extrait du récepteur du presse-papiers Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Restauration des données riches du presse-papiers sur coller" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Haut de page" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -9605,25 +9605,25 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Accueil{ph1} / {ph2}Vitrines{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Étude de cas · Touhou 4: L'histoire de Lotus Land" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Reconstruction TH04's{ph0}motifs de balles." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9633,17 +9633,17 @@ msgstr "" "inspecter la fonction DOS d'origine, puis suivez ses instructions en C ++ " "lisible." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * DOS 16 bits * C++ et assemblage" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Voir le TH04 reconstruction" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Des instructions originales à la source vérifiée" @@ -9654,7 +9654,7 @@ msgstr "Des instructions originales à la source vérifiée" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9670,7 +9670,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9688,7 +9688,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9704,7 +9704,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9716,7 +9716,7 @@ msgstr "" "correspondants{ph3}{ph4}Les vérifications du compilateur enregistrées " "couvrent le code de génération de puces qui contient cette aide.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9725,14 +9725,14 @@ msgstr "" "REA renvoie le code d'origine et ses preuves d'analyse. Le projet TH04 " "fournit les vérifications de source et de compilateur maintenues." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Dans cette étude de cas" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9740,7 +9740,7 @@ msgstr "{ph0}L'anneau de balle{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9748,7 +9748,7 @@ msgstr "{ph0}Quels sont les retours de REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9756,7 +9756,7 @@ msgstr "{ph0}Assemblage en C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9764,18 +9764,18 @@ msgstr "{ph0}Vérification de la source{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Le projet complet{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Comment un anneau vise le joueur" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9794,16 +9794,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Votre agent de codage" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Copier" @@ -9814,7 +9814,7 @@ msgstr "Copier" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9825,7 +9825,7 @@ msgstr "" "balles et le dirige vers le joueur. Expliquez le calcul et montrez le " "code.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9835,7 +9835,7 @@ msgstr "" "reconstruction disponibles localement." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9849,7 +9849,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9859,12 +9859,12 @@ msgstr "" "Une illustration des calculs d'angle récupérés pour le compte 16, la " "direction du joueur 40 et la rotation du gabarit 0. {ph0}Figure ouverte{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Le modèle de tir dans la source récupérée" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "L'attaque de l'anneau d'Elly * extrait de la source" @@ -9873,7 +9873,7 @@ msgstr "L'attaque de l'anneau d'Elly * extrait de la source" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9883,13 +9883,13 @@ msgstr "" "Ces lignes sélectionnent le motif avant le réglage de la difficulté et des " "performances. {ph0}Lire la source de l'attaque{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Quels sont les retours de REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9901,12 +9901,12 @@ msgstr "" "chaque balle. REA renvoie ses instructions, son pseudocode et ses " "références. Trois parties de ce résultat expliquent le schéma." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Vérifiez l'image DOS avant de lire son code" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9915,7 +9915,7 @@ msgstr "" "La vérification lie le code chargé et les enregistrements de relocalisation " "à l'exécutable fourni. Le chemin ci-dessus est raccourci pour l'affichage." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Lire la multiplication et la division de l'anneau" @@ -9923,7 +9923,7 @@ msgstr "Lire la multiplication et la division de l'anneau" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9935,12 +9935,12 @@ msgstr "" "division utilise le décompte lu à partir de {ph1}. Les noms de source " "conservés dans ce champ {ph2}. La séquence complète apparaît ci-dessous." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Trouvez où le motif se tourne vers le joueur" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9953,12 +9953,12 @@ msgstr "" " l'anneau. Les noms de source rendent ces adresses lisibles; REA permet à " "l'agent de vérifier les opérations d'origine derrière elles." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "De l'assemblage au C++lisible" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9972,7 +9972,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9980,7 +9980,7 @@ msgstr "{ph0}01{ph1} Indice" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9988,7 +9988,7 @@ msgstr "{ph0}02{ph1} Espace" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9996,7 +9996,7 @@ msgstr "{ph0}03{ph1} Objectif" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -10004,18 +10004,18 @@ msgstr "{ph0}04{ph1} Tourner" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Magasin" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * instructions 16 bits d'origine" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Résumé lisible de l'anneau visé C++ ·" @@ -10023,7 +10023,7 @@ msgstr "Résumé lisible de l'anneau visé C++ ·" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10037,7 +10037,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10053,7 +10053,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10069,7 +10069,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10084,7 +10084,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10098,7 +10098,7 @@ msgstr "" "le cast d'octets non signés. La source environnante convertit également cet " "angle et cette vitesse en vitesse." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10110,7 +10110,7 @@ msgstr "" "vérifications du compilateur ci-dessous s'appliquent à la source maintenue " "dans le projet lié." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Lire l'anneau maintenu et la source de visée" @@ -10127,7 +10127,7 @@ msgstr "Lire l'anneau maintenu et la source de visée" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10137,12 +10137,12 @@ msgstr "" "{ph0}Macro d'anneau{ph1} · {ph2}Source de visée et de vélocité{ph3} · " "{ph4}Représentation angulaire{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Vérification de la source maintenue" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10152,12 +10152,12 @@ msgstr "" "génération de puces, y compris cet assistant, avec sa chaîne d'outils Turbo " "C++ 4.0 J épinglée." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2 139 octets correspondants" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10166,12 +10166,12 @@ msgstr "" "Le code de génération de puces compilé correspond à une section de 2 139 " "octets de l'exécutable d'origine." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Deux constructions propres" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10185,7 +10185,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10193,59 +10193,59 @@ msgstr "" "Enregistré le 3 octobre 2026. {ph0}Lire les vérifications du " "compilateur{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Identité cible et portée de l'analyse" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Cible d'origine" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156 258 octets, sous-titres MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Entrée d'aide" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} dans l'image chargée de REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Décalage du fichier d'origine" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, retourné par {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Inspection du code enregistré" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 · 7 octobre 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10256,7 +10256,7 @@ msgstr "" " à la CARTE et sa relocalisation qui se chevauchent." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10272,7 +10272,7 @@ msgstr "" "rapportées." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10289,7 +10289,7 @@ msgstr "" " est épinglée par son manifeste de référentiel, avec une provenance de " "vidage vierge indépendante toujours ouverte." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10300,12 +10300,12 @@ msgstr "" "timing et le comportement du matériel PC-98 ont des vérifications " "d'exécution distinctes dans le projet de reconstruction." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "La reconstruction complète du TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10319,7 +10319,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10331,7 +10331,7 @@ msgstr "{ph0}Explorez le référentiel TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10347,7 +10347,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10363,7 +10363,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10389,22 +10389,22 @@ msgstr "" "l'assemblage et le C ++ récupéré pour voir comment un anneau de balles est " "espacé et dirigé vers le joueur." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 étude de cas de modèle de balle" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Copier l'invite d'exemple TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10412,7 +10412,7 @@ msgstr "" "TH04 anneaux de balle fixes et ciblés; faites défiler horizontalement sur " "des écrans plus petits" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10426,27 +10426,27 @@ msgstr "" " le joueur. Les deux conservent un espacement de 16 unités d'angle, soit " "22,5 degrés." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Copier le modèle de cuisson TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Suivez le calcul de la bague de visée TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Copier l'extrait d'assemblage TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Copier le calcul de l'anneau visé lisible" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Haut de page" @@ -10936,597 +10936,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Même espacement: 256 ÷ 16 = 16 unités d'angle = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Études de cas" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Démarrer" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Guides" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Code source" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Licence MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Rejoindre la communauté" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Nous suivre sur X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * source de script sélectionnée" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Code source" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Sortie attendue du formateur" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Instructions" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Appelant" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Constantes" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Fonction C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Bouton" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API de préchargement" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "CIB" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV fichier" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Votre clic" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Demande capturée" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Exporter le script" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "Résultat de REA * résumé.extrait de la CIB" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Extrait d'instruction REA · 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "Extrait de l'appelant REA · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Résultats d'octets REA * interprétés comme des doubles little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Extrait C · récupéré" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Vitrines →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Paramètres sélectionnés à partir du script inspecté" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Résumé lisible du gestionnaire %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * instructions d'origine sélectionnées" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Identifiants de l'opérateur * Source de Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → agent · résultats sélectionnés" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → méthodes et appelants de l'agent ·" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * Java décompilé sélectionné" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Résumé lisible * interprétation de l'agent" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * Générez OTP, corps complet" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Télécharger Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Télécharger le fournisseur d'analyse Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → agent · résultats sélectionnés" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agent * instructions sélectionnées" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agent → REA * lire_octets" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → agent * septième entrées" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Fichier exécutable d'origine * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Télécharger le défi original" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Télécharger le solveur" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA résultat * extrait de pseudocode" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → extrait d'instructions de l'agent ·" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → extrait de l'agent * appelant" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agent → REA * deux {ph0} demandes" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Résultats des octets REA * décodés en doubles" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Commencez par votre propre cible" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Génération de code" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Règle récupérée" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Horloge réglable" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binaire" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Vérification du code" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Équations" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "C'est vrai!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Exécutable" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Résultats de la REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "C Récupéré" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Validation" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Application packagée" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "API exposée" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Enveloppes IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Presse-papiers" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Code de DOS d'origine" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Instructions pour le modèle REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Calcul de l'angle" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Anneau de balle" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "API de page exposée" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Appel IPC du moteur de rendu" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Envoyé au presse-papiers du système" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Enregistré localement par Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Entrée de démarque" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Sortie de l'analyseur structuré * extrait" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analysez votre propre application" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → agent * champs sélectionnés" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → extrait d'instructions de l'agent ·" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Même fonction résultat · extrait de but" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "C++maintenu correspondant" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Macro annulaire * Branche TH04, extrait" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Angle et vélocité · extrait de la source" @@ -11561,7 +11561,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11579,7 +11579,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11600,7 +11600,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11621,7 +11621,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11640,7 +11640,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11653,14 +11653,14 @@ msgstr "" "accord. Vérifie ensuite l’installation.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Reconstruction · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11671,7 +11671,7 @@ msgstr "" "agent de codage et examinez les modifications proposées." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11680,7 +11680,7 @@ msgstr "Un exemple fourni · {ph0} et npm · Votre agent de codage" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11699,7 +11699,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11715,7 +11715,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11734,7 +11734,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11745,7 +11745,7 @@ msgstr "" "formateur dans {ph7} et écrit le fichier.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11760,7 +11760,7 @@ msgstr "{ph0} * lignes 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11773,7 +11773,7 @@ msgstr "" "Afficher la prédiction et la sortie réelle.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11785,17 +11785,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Vous aurez besoin de {ph0} 22 (22.23.4+), 24 (24.22.1+) ou 26+ (>=26.12.1). npm est fourni " -"avec {ph1}." +"Vous aurez besoin de {ph0} 22 (22.23.4+), 24 (24.22.1+) ou 26+ (>=26.12.1). " +"npm est fourni avec {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11803,20 +11804,20 @@ msgstr "Vous n'avez pas {ph0}, ou vous n'êtes pas sûr?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Si {ph0} affiche v22.23.4+, v24.22.1+ ou v26.12.1+, vous êtes prêt. S’il affiche une " -"version plus ancienne ou \"not recognized\" / \"command not found\", " -"installez {ph1} 24 LTS :" +"Si {ph0} affiche v22.23.4+, v24.22.1+ ou v26.12.1+, vous êtes prêt. S’il " +"affiche une version plus ancienne ou \"not recognized\" / \"command not " +"found\", installez {ph1} 24 LTS :" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11830,7 +11831,7 @@ msgstr "{ph0} * exemple d'extrait de source" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11841,9 +11842,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11851,7 +11852,7 @@ msgstr "{ph0} * exemple de source" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11866,7 +11867,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11883,7 +11884,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11894,7 +11895,7 @@ msgstr "" "Pourquoi {ph3} donne-t-il 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11908,7 +11909,7 @@ msgstr "REA * chargé {ph0} * lignes sélectionnées" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11927,7 +11928,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11940,28 +11941,28 @@ msgstr "" "secondes. Crée une petite démo où je peux modifier l’heure.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "affichage des onglets/{ph0} * Membre de l'API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "affichage des onglets/{ph0} * Assistant IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "principale/{ph0} * aide-manutentionnaire" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11980,7 +11981,7 @@ msgstr "Passer au mode sombre" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11996,18 +11997,18 @@ msgstr "" "votre agent." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Modèles spécialisés{ph0}Essai" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Le reverse engineering a-t-il besoin d’un modèle plus grand ?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -12016,12 +12017,12 @@ msgstr "" "Ce que la reconstruction de Touhou suggère sur les modèles généralistes, les" " modèles spécialisés et l’apprentissage à partir des retours du compilateur." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Par N0zoM1z0 · 13 octobre 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Aller au contenu" @@ -12030,37 +12031,37 @@ msgstr "Aller au contenu" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Accueil{ph1} / {ph2}Blog{ph3} / Modèles et rétro-ingénierie" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Essai" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "L'ingénierie inverse nécessite-t-elle un modèle plus grand ?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Par N0zoM1z0 · 13 octobre 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "À retenir" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12073,7 +12074,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12086,7 +12087,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12100,7 +12101,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12113,7 +12114,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12124,14 +12125,14 @@ msgstr "" "et du coût.{ph1} C'est ce que je souhaite mesurer pour le flux de travail " "complet de l'agent IA." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Dans cet article" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12139,7 +12140,7 @@ msgstr "{ph0}Ce que les modèles plus performants ont changé{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12147,7 +12148,7 @@ msgstr "{ph0}Pourquoi se spécialiser ?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12155,7 +12156,7 @@ msgstr "{ph0}Où cette expérience doit-elle être stockée ?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12163,7 +12164,7 @@ msgstr "{ph0}Apprendre la prochaine expérience utile{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12171,7 +12172,7 @@ msgstr "{ph0}Ingénierie inverse et apprentissage par renforcement{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12179,7 +12180,7 @@ msgstr "{ph0}Lorsque le vérificateur est erroné{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12187,18 +12188,18 @@ msgstr "{ph0}Une comparaison qui vaut la peine d'être menée{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Quel type d’agent IA cela suggère-t-il ?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Ce que les modèles plus performants ont changé" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12214,7 +12215,7 @@ msgstr "" "référentiels ont conservé une trace de ce que chaque session a réussi à " "récupérer." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12228,14 +12229,14 @@ msgstr "" "modèle ultérieur débloque le travail, les changements du code permettent de " "comprendre ce qui a rendu ce progrès possible." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "" "Les variables temporaires nécessitaient des durées de vie qui se " "chevauchaient" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12257,7 +12258,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12271,7 +12272,7 @@ msgstr "" " {ph2}GPT-6.1-Sol a réexaminé le problème{ph3}, il a proposé une hypothèse " "utile sur la durée de vie de ces variables temporaires." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12289,7 +12290,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12304,7 +12305,7 @@ msgstr "" "expériences ciblées, {ph0}une recompilation propre a confirmé que la " "fonction entière correspondait à l'original{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12317,7 +12318,7 @@ msgstr "" "compilateur l'ont aidé à affiner cette hypothèse en un arrangement de code " "source correspondant." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Un graphique de flux de contrôle différent" @@ -12326,7 +12327,7 @@ msgstr "Un graphique de flux de contrôle différent" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12350,7 +12351,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12369,7 +12370,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12384,7 +12385,7 @@ msgstr "" "variantes locales pendant longtemps avant de trouver une meilleure façon " "d'exprimer le travail environnant." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12399,7 +12400,7 @@ msgstr "" "comparaison contrôlée aiderait à séparer l'effet du modèle de celui de " "l'expérience héritée." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12415,13 +12416,13 @@ msgstr "" "il une grande capacité de raisonnement ? Combien un modèle pourrait-il " "apprendre en travaillant de manière répétée avec ce compilateur et ce code ?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" "Pourquoi un modèle d’IA spécialisé pourrait-il fonctionner correctement ?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12437,7 +12438,7 @@ msgstr "" "associées et les arrangements d'assistance ont fourni des hypothèses à " "travers les jeux." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12458,7 +12459,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12475,7 +12476,7 @@ msgstr "" "affectait le choix du compilateur. Cela suggère une hypothèse plus " "prometteuse pour {ph2}reconstruire {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12485,7 +12486,7 @@ msgstr "" "produit la mise en page requise sans ajouter de stockage. La fonction " "complète correspondait alors." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12498,7 +12499,7 @@ msgstr "" "ce type et découvrir quelles variantes du code source méritent d'être " "testées en premier." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12518,7 +12519,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12538,14 +12539,14 @@ msgstr "" " nous donne une attente initiale, mais chaque cible nous dit si elle " "s'applique. Un modèle spécialisé devrait distinguer ces contextes." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Où cette expérience doit-elle être stockée ?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12562,7 +12563,7 @@ msgstr "" "compilateur, ainsi que la source et les expériences ratées qui les ont " "rendues utiles." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12579,7 +12580,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12598,7 +12599,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12616,7 +12617,7 @@ msgstr "" "prochaine tentative. Connaître le modèle pertinent n’est que le début de ce " "processus." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12630,12 +12631,12 @@ msgstr "" "ajoute : une meilleure génération de candidats, de meilleures décisions " "après feedback, ou les deux." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Apprendre la prochaine expérience utile" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12649,7 +12650,7 @@ msgstr "" "échoue, le résultat peut réduire les possibilités restantes et suggérer une " "prochaine expérience plus utile." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12662,32 +12663,32 @@ msgstr "" "contient plus d'informations. Chacune des expériences suivantes a permis " "d’identifier ce qui devait encore changer." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Expérimenter" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Ce que son résultat nous a appris" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Essayez une autre façon de copier les résultats" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Le code de copie change, mais la fonction diffère toujours." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Utiliser directement les valeurs renvoyées" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12695,12 +12696,12 @@ msgstr "" "La copie suit le modèle d'origine, mais le stockage temporaire diffère " "toujours." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Gardez toutes les variables temporaires valides en même temps" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12709,19 +12710,19 @@ msgstr "" "Ils bénéficient d'un stockage séparé, mais l'un d'entre eux chevauche " "toujours une valeur utilisée ultérieurement pour les contrôles de collision." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Gardez la valeur de contrôle de collision séparée" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Une recompilation propre à partir de la source confirme la correspondance " "complète." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12730,7 +12731,7 @@ msgstr "" "Expériences sélectionnées de la reconstruction de la fonction d'attaque ci-" "dessus, regroupées selon ce qu'elles nous ont appris." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12746,7 +12747,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12762,7 +12763,7 @@ msgstr "" "mesure de revoir la représentation source ou d’inspecter à nouveau les " "preuves." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12776,14 +12777,14 @@ msgstr "" "supprimerait ce choix, ainsi qu'une partie du comportement que nous " "souhaitons que le modèle apprenne." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" "Pourquoi l'ingénierie inverse est intéressante pour l'apprentissage par " "renforcement" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12797,7 +12798,7 @@ msgstr "" "reproductibles. L'agent peut compiler un candidat, inspecter l'inadéquation " "et utiliser cette observation pour choisir la prochaine étape." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12815,7 +12816,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12838,7 +12839,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12856,7 +12857,7 @@ msgstr "" "virgule flottante{ph1}. Avant que l’agent puisse tester une correction " "utile, il devait déterminer quoi mesurer." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12868,12 +12869,12 @@ msgstr "" "vérification existe, nous pouvons étudier jusqu’où une politique de " "recherche apprise peut aller avec elle." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Lorsque le vérificateur est erroné" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12885,7 +12886,7 @@ msgstr "" "vérificateur. Même une réponse reproductible doit être comprise à partir de " "ce qu'elle vérifie réellement." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12909,7 +12910,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12924,7 +12925,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12942,7 +12943,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12959,7 +12960,7 @@ msgstr "" "même, une correspondance d’instructions doit être comprise en termes " "d’octets et de données qu’elle vérifie." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12978,7 +12979,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12990,12 +12991,12 @@ msgstr "" "problème de recherche.{ph1} Plus le modèle sait optimiser le retour que nous" " lui donnons, plus il devient important de comprendre ce retour." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Une comparaison qui vaut la peine d'être menée" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -13012,7 +13013,7 @@ msgstr "" "supervisée et une version formée par RL nous permettraient d'examiner ce que" " la formation ajoute." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -13027,7 +13028,7 @@ msgstr "" "stratégie de recherche fiable d'une solution candidate qui réussit par " "hasard." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -13043,7 +13044,7 @@ msgstr "" " partie du travail nécessaire pour y parvenir. Les mesurer séparément " "révélerait cette division du travail." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -13059,7 +13060,7 @@ msgstr "" "leurs réponses vérifiées hors des données de formation et de la bibliothèque" " de récupération." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -13075,7 +13076,7 @@ msgstr "" "compilation, montrerait si cette qualité produit un flux de travail " "efficace. Les coûts de formation doivent être mesurés séparément." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -13093,7 +13094,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13115,7 +13116,7 @@ msgstr "" "guident l’expérience suivante, mais je vérifierais toute récompense pour ce " "rapprochement avec le contrôle complet d’acceptation." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13131,12 +13132,12 @@ msgstr "" "ajoute-t-elle encore ? Les réponses nous aideraient à décider où chaque type" " de modèle est le plus utile." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Quel type d’agent IA cela suggère-t-il ?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13152,7 +13153,7 @@ msgstr "" "plus de sens, l’agent au sens large pourrait revenir aux preuves cibles ou " "enquêter sur la mesure elle-même." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13164,7 +13165,7 @@ msgstr "" "liberté de changer de direction qui a rendu possible les percées " "antérieures." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13179,7 +13180,7 @@ msgstr "" "lesquelles s'améliorent grâce à une expérience répétée avec un métier " "particulier." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13196,7 +13197,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13207,12 +13208,12 @@ msgstr "" " utiliser cet enregistrement pour établir la comparaison et voir ce que nous" " apprenons." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Attribution de preuves et de modèles" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13226,7 +13227,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13253,7 +13254,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13278,7 +13279,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13303,7 +13304,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13330,7 +13331,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13342,7 +13343,7 @@ msgstr "" " flottante{ph3}, {ph4}TH08 investigation numérique{ph5} et {ph6}TH09 " "reconstruction permettant de sauvegarder les relectures{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13368,22 +13369,22 @@ msgstr "" "modèles spécialisés et l'apprentissage pour proposer de meilleures " "hypothèses à partir des retours du compilateur." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Sur cette page" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modèles et essai d'ingénierie inverse" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Expériences de reconstruction sélectionnées" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Haut de page" @@ -13392,7 +13393,7 @@ msgstr "Haut de page" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13404,68 +13405,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Études de cas{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Études de cas REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Pour Android · APK analyse" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Comment un authentificateur génère un code de connexion" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Lire l'étude de cas Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Traçage des fonctionnalités" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Comment Notion copie du texte et du code HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Lire l'étude de cas Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Reconstruction indigène ·" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Calcul de la position sonore gauche/droite de DX-Ball" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Lire l'étude de cas DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Options de configuration" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13476,7 +13477,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13488,7 +13489,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13496,7 +13497,7 @@ msgstr "{ph0}1. Préparer votre ordinateur{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13504,7 +13505,7 @@ msgstr "{ph0}2. Choisir un agent{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13512,7 +13513,7 @@ msgstr "{ph0}3. Connecter REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13520,18 +13521,18 @@ msgstr "{ph0}4. Essayer une investigation{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Autres cibles et outils d’analyse{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Préparer votre ordinateur" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13540,7 +13541,7 @@ msgstr "" "Utilisez l’ordinateur où se trouvent les fichiers à étudier. Un agent de " "programmation local peut lire ces fichiers et exécuter des outils pour vous." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13551,7 +13552,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13564,7 +13565,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13575,19 +13576,19 @@ msgstr "" "system\"{ph1} lorsque vous exécutez {ph2}, utilisez plutôt {ph3}. Pour npm, " "utilisez {ph4} :" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Créer un dossier de travail pour votre agent" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Dans le terminal, créez un dossier pour l’exercice, puis placez-vous dedans " ":" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13596,12 +13597,12 @@ msgstr "" "Gardez ce terminal ouvert pour l’étape suivante. Si vous avez déjà un " "dossier de travail, ouvrez-le plutôt." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Choisir un agent de programmation" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13611,12 +13612,12 @@ msgstr "" " d’inspection. Choisissez une application cliente ci-dessous ; ouvrez ses " "instructions si vous ne l’avez jamais utilisée." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · utiliser votre compte ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13628,41 +13629,41 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Installation et connexion à Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf ou VS Code · utiliser un éditeur" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" "Installez l’éditeur pour votre système d’exploitation et connectez-vous." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Ouvrez le dossier rea-work créé à l’étape 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · utiliser votre compte Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "" "Installez-le avec la commande correspondant à votre système d’exploitation :" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13676,13 +13677,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Installation de Claude Code et options de compte{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · utiliser un chat de bureau" @@ -13692,7 +13693,7 @@ msgstr "Claude Desktop · utiliser un chat de bureau" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13704,7 +13705,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13716,20 +13717,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Installation d’OpenCode et configuration des modèles{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "" "Tous les clients pris en charge et leurs identifiants de configuration" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13739,12 +13740,12 @@ msgstr "" "La version npm 6.4.0 prend en charge les clients ci-dessous. Utilisez " "l’identifiant avec {ph0} pour choisir explicitement un client." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Client" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Identifiant de configuration" @@ -13754,7 +13755,7 @@ msgstr "Identifiant de configuration" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13774,7 +13775,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13784,13 +13785,13 @@ msgstr "" "{ph0}Configuration des clients et dépannage{ph1} · {ph2}Disponibilité dans " "les versions publiées{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · connecter sur son ordinateur hébergé" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13803,29 +13804,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Instructions de connexion de Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Connecter REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Copiez ce prompt dans votre agent de programmation :" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Pour un client précis, ajoutez son identifiant de configuration :" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13837,7 +13838,7 @@ msgstr "" "Entrée. Dans la liste des clients de REA, déplacez-vous avec les flèches, " "sélectionnez votre client avec Espace et continuez avec Entrée." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13846,7 +13847,7 @@ msgstr "" "MCP est la connexion qui permet à votre agent d’appeler REA. La skill lui " "fournit une méthode pour étudier un logiciel." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13857,7 +13858,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13867,21 +13868,21 @@ msgstr "" "Remplacez {ph0} par l’identifiant de configuration de votre client. Une " "vérification réussie indique {ph1}. Demandez ensuite à votre agent :" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Vérifie que REA est connecté et montre-moi les outils REA que tu peux " "utiliser." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Essayer votre première investigation" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13893,7 +13894,7 @@ msgstr "" "des notes{ph1} bouton. Votre agent peut inspecter son code sans installer ni" " lancer Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Votre agent de programmation" @@ -13907,7 +13908,7 @@ msgstr "Votre agent de programmation" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13921,7 +13922,7 @@ msgstr "" "sur Exporter des notes. Montrer où {ph4} est écrit, les champs qu'il " "contient, ainsi que les fichiers et lignes pertinents.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -13931,7 +13932,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13945,13 +13946,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Vérifier une prédiction dans l’exercice guidé →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Télécharger vous-même l’exemple ou utiliser votre propre application" @@ -13959,14 +13960,14 @@ msgstr "Télécharger vous-même l’exemple ou utiliser votre propre applicatio #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Télécharger un exemple de ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13978,7 +13979,7 @@ msgstr "" "question d'exportation." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13988,12 +13989,12 @@ msgstr "" "Utilise REA pour inspecter l’application située à {ph0}. Trouve comment elle" " exporte les données et montre les fichiers et lignes pertinents." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Analyser un autre type de logiciel" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -14002,12 +14003,12 @@ msgstr "" "Choisissez la section correspondant à votre cible. Un fournisseur d’analyse " "est l’outil local que REA utilise pour ce type de logiciel." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Exécutables et bibliothèques natifs · Hopper, Ghidra ou IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -14017,47 +14018,47 @@ msgstr "" "désigne votre système d’exploitation ; la cible est le programme à " "inspecter." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Outil d’analyse" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Non disponible" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Distributions prises en charge" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · expérimental" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Profils vérifiés" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Profil sans interface graphique vérifié" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Voir le guide du fournisseur" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · laisser la configuration l’installer ou le connecter" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -14069,7 +14070,7 @@ msgstr "" " licence à la première ouverture de Hopper. Sur Linux, la configuration " "prépare la démo prise en charge et son affichage privé." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -14079,7 +14080,7 @@ msgstr "" "Omarchy. Hopper est un logiciel commercial ; sa démo a des limites définies " "par l’éditeur." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14093,18 +14094,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Configuration de Hopper et dépannage{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · installer l’outil d’analyse gratuit et Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14115,7 +14116,7 @@ msgstr "" "votre ordinateur." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14129,7 +14130,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14145,7 +14146,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14153,7 +14154,7 @@ msgstr "{ph0}Télécharger un JDK{ph1} · {ph2}Télécharger Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14163,7 +14164,7 @@ msgstr "" "Vérifiez Java. La première commande affiche {ph0} ; utilisez ce dossier pour" " {ph1}. La seconde confirme que le compilateur est installé :" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14181,7 +14182,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14191,12 +14192,12 @@ msgstr "" "{ph0}Configuration de Ghidra et exigences d’architecture{ph1} · {ph2}Guide " "de Ghidra sur Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · connecter une installation existante" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14208,7 +14209,7 @@ msgstr "" "où le binaire original est ouvert, ou un superviseur sans interface " "graphique qui ouvre une base de données privée." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14221,7 +14222,7 @@ msgstr "" "natif facultatif vers l’interface graphique a ses propres exigences de " "version et de plateforme." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14233,14 +14234,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Profils IDA, exemples d’enregistrement et plateformes vérifiées{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14251,18 +14252,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Suivre un exemple d’analyse native{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Sites web, Android, .NET, firmware et autres cibles" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14271,110 +14272,110 @@ msgstr "" "Ouvrez le guide correspondant à votre cible. Chaque guide indique les outils" " supplémentaires, les hôtes pris en charge et la première commande." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Cible" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Outils à préparer" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Guide" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Ouvrir le guide{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Site web" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / paquets" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "APK Android" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Appareil Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Ressources Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Projet JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / plantage Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Signaux logiques" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Comportement des processus" @@ -14390,7 +14391,7 @@ msgstr "Comportement des processus" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14400,18 +14401,18 @@ msgstr "" "{ph0}Guide Flutter{ph1} · {ph2}Paquets et ressources{ph3} · {ph4}Bytecode " "EVM{ph5} · {ph6}Tous les guides d’investigation{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Utiliser REA depuis un terminal" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Commandes CLI, installation globale et curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14421,7 +14422,7 @@ msgstr "" "Remplacez {ph0} par un nom ou une adresse de fonction figurant dans la liste" " des fonctions de la cible. Ghidra doit être configuré au préalable." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14430,7 +14431,7 @@ msgstr "" "Sur macOS ou Linux, vous pouvez aussi utiliser l’installateur curl après " "avoir préparé Node.js :" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14440,12 +14441,12 @@ msgstr "" "configuration. Dans les clients éditeurs, activez REA dans les paramètres " "MCP et autorisez ses outils dans le chat de l’agent." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL et chemins contenant des espaces" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14457,17 +14458,17 @@ msgstr "" "cet environnement Linux et utilisez-y des chemins Linux. Les fournisseurs " "sans interface graphique s’exécutent sur le même hôte que REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Commande de configuration pour Windows :" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Mettre à jour ou supprimer REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14478,7 +14479,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14492,52 +14493,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Détails sur la mise à jour et la désinstallation{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Copier la commande de configuration de REA pour Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Copier la commande" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Invite d'enquête sur les notes de copie" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14548,12 +14549,12 @@ msgstr "" "exécutez {ph0} ; sur les autres distributions, utilisez votre gestionnaire " "de paquets." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Fermez le terminal, rouvrez-le, puis exécutez :" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14569,7 +14570,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14579,19 +14580,19 @@ msgstr "" "{ph0}Configuration de Cursor{ph1} · {ph2}Configuration de Windsurf / Devin " "Desktop{ph3} · {ph4}Configuration de VS Code et Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · choisir un modèle d’IA" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Préparer le fichier d’enregistrement d’IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14608,7 +14609,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14621,7 +14622,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14634,24 +14635,24 @@ msgstr "" "nécessaire, {ph2}. Ouvrez le binaire original dans IDA et lancez le plugin " "de ce serveur avant de demander à REA de l’inspecter." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Base de données SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" "Installez Codex avec la commande correspondant à votre système " "d’exploitation :" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14662,7 +14663,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14673,12 +14674,12 @@ msgstr "" " de Node.js 24 LTS pour macOS (.pkg){ph1}, ouvrez-le et suivez ses " "instructions. Rouvrez ensuite Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Vous utilisez déjà Homebrew ?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14690,7 +14691,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14700,7 +14701,7 @@ msgstr "" "Examinez et approuvez le plan, rouvrez Claude, puis {ph0}vérifiez la " "connexion à l’étape 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14711,12 +14712,12 @@ msgstr "" "une nouvelle installation sur macOS ou Linux arm64, compilez le " "décompilateur natif pour votre ordinateur avant de continuer." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Compiler le décompilateur natif de Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14729,7 +14730,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14739,7 +14740,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14749,20 +14750,20 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · instructions de compilation native{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" "Vérifiez ensuite Ghidra et enregistrez ses chemins pour votre client :" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14770,13 +14771,13 @@ msgstr "Pourquoi {ph0} donne-t-il 220 dans la Calculatrice ?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Comment ça fonctionne{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14786,22 +14787,22 @@ msgstr "" "jeu ou un site. REA lui fournit les outils pour examiner le code derrière la" " réponse." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Démarrer" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Voir un exemple ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Comment ça fonctionne" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14812,49 +14813,49 @@ msgstr "" "programme lui-même. Avec REA, votre agent peut suivre le code, expliquer une" " fonction et vous aider à la reproduire." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Poser une question sur une fonction" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Donnez à votre agent un programme ou une page et une question." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Examiner le programme" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" "REA renvoie du code, des références et des observations à l'exécution." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Comprendre, puis essayer une modification" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Votre agent utilise les résultats pour expliquer ou reproduire la fonction." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Suivre les instructions pas à pas" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Poser la même question à votre agent" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14863,7 +14864,7 @@ msgstr "" "Commencez à 6 heures. Ajouter 0.001 chaque mise à jour sans collision, alors" " que la vitesse est inférieure 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14871,7 +14872,7 @@ msgstr "" "Explorez une fonction d'une application ou d'un jeu publié, avec du code et " "des résultats vérifiés." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14881,7 +14882,7 @@ msgstr "" " déplacez l'horloge de démonstration pour comprendre pourquoi il change " "toutes les 30 secondes." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14890,7 +14891,7 @@ msgstr "" "Suivez le JavaScript empaqueté de Notion jusqu'au presse-papiers système " "pour voir comment une copie préserve les données riches des blocs." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14899,12 +14900,12 @@ msgstr "" "Retrouvez comment la position d'une balle devient un son à gauche ou à " "droite dans un jeu Windows de 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Choisissez votre cible." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14915,7 +14916,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14934,13 +14935,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Exemple d'invite * Site Web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Oui, celui-ci." @@ -14953,7 +14954,7 @@ msgstr "Oui, celui-ci." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14968,7 +14969,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14982,18 +14983,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Voir l'étude de cas DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Copier l'invite de projet de site Web" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Copie de l'invite de reconstruction du jeu" @@ -15005,7 +15006,7 @@ msgstr "Copie de l'invite de reconstruction du jeu" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15017,7 +15018,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -15026,23 +15027,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — méthodes et notes de reconstruction." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Voir toute l'investigation de la Calculatrice" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Essayer un projet plus ambitieux" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -15051,7 +15052,7 @@ msgstr "" "Essayons deux exemples : changer la vitesse d'un jeu, puis reproduire le " "bouton % de la Calculatrice." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -15060,7 +15061,7 @@ msgstr "" "Le jeu accélère à mesure que vous courez. Pour le reproduire avec un réglage" " de vitesse, il faut d'abord comprendre comment cette vitesse évolue." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Poser une question sur la vitesse" @@ -15073,7 +15074,7 @@ msgstr "1. Poser une question sur la vitesse" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -15082,12 +15083,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Exemple de question · Jeu du " "dinosaure" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Trouver la règle de vitesse" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -15097,12 +15098,12 @@ msgstr "" " commence à 6 et augmente un peu à chaque mise à jour tant qu'elle est " "inférieure à 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Jouer au résultat" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15111,7 +15112,7 @@ msgstr "" "Nous avons reproduit cette règle dans le mini-jeu ci-dessous et ajouté un " "curseur de vitesse. Appuyez sur Jouer, puis choisissez votre vitesse." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15120,7 +15121,7 @@ msgstr "" "Activez JavaScript pour jouer. Vous pouvez toujours lire la règle et ouvrir " "le code source ci-dessous." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15129,7 +15130,7 @@ msgstr "" "Le bouton % agit différemment après + et ×. Retrouvons les deux règles et " "essayons-les dans une petite calculatrice." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Poser une question sur le bouton %" @@ -15142,19 +15143,19 @@ msgstr "1. Poser une question sur le bouton %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Exemple de question · Calculatrice" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Trouver les deux règles" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15163,12 +15164,12 @@ msgstr "" "REA aide l'agent à lire le code du bouton %. Ce code applique deux règles " "différentes :" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Essayer le bouton %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15177,7 +15178,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15185,7 +15186,7 @@ msgstr "{ph0}Lire la FAQ{ph1} — installation et questions fréquentes." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15195,14 +15196,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "" "{ph0}GitHub issues{ph1} — signaler un bug ou demander une fonctionnalité." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Configuration pour votre plateforme :" @@ -15210,14 +15211,14 @@ msgstr "Configuration pour votre plateforme :" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Autres options d'installation : {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15232,7 +15233,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15247,7 +15248,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15259,7 +15260,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15271,7 +15272,7 @@ msgstr "" "défaut est {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15283,67 +15284,67 @@ msgstr "" "Liste ses fonctions et ses chaînes, puis explique la partie qui traite les " "entrées de l'utilisateur avec des références au code." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Contributeurs" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Aller au contenu" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Accueil{ph1} / Contributeurs" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Construit ensemble." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Merci à toutes les personnes qui contribuent à améliorer REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15352,22 +15353,22 @@ msgstr "" "Code, documentation, tests, traductions et idées : il existe de nombreuses " "façons de contribuer." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Comment contribuer" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Rejoindre la discussion →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Contributeurs" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Rechercher un contributeur" @@ -15375,7 +15376,7 @@ msgstr "Rechercher un contributeur" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." @@ -15383,7 +15384,7 @@ msgstr "" "D’après la {ph0}liste des contributeurs sur GitHub{ph1} · Mise à jour le " "{ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Aucun contributeur trouvé. Essayez un autre nom d’utilisateur." @@ -15401,12 +15402,12 @@ msgstr "" "Découvrez les personnes qui apportent du code, de la documentation, des " "tests et des idées à REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nom d’utilisateur GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Haut de page" diff --git a/website/locales/id/messages.po b/website/locales/id/messages.po index 38f7dc35193..1bfd6e3ce4c 100644 --- a/website/locales/id/messages.po +++ b/website/locales/id/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Rumah{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Pemikiran tentang rekayasa terbalik." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Rekonstruksi permainan{ph0}Esai" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Revolusi industri dalam rekayasa terbalik" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -53,36 +53,36 @@ msgstr "" " tentang agen, verifikasi, dan pengetahuan yang digabungkan di seluruh " "proyek." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Baca artikelnya" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Oleh N0zoM1z0 · 10 Oktober 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -102,38 +102,38 @@ msgstr "" "Pemikiran tentang rekayasa balik, berdasarkan pengalaman praktis dengan agen" " REA dan AI." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -142,122 +142,122 @@ msgstr "" "REA-Cari tahu cara kerja perangkat lunak. Rekayasa balik dengan agen " "pengkodean Anda." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Beranda REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Navigasi utama" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA di GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Gabung REA di Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Ikuti REA di X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -266,35 +266,35 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Rumah{ph1} / {ph2}Blog{ph3} / Rekonstruksi Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Essay * Rekonstruksi Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Revolusi industri dalam rekayasa terbalik." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Oleh N0zoM1z0 · 10 Oktober 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Poin utama" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -307,7 +307,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -321,7 +321,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -334,7 +334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -347,7 +347,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -357,65 +357,65 @@ msgstr "" "{ph0}Kita berada di masa-masa awal revolusi industri RE.{ph1} Metodenya " "masih terbentuk. Ada banyak hal yang tersisa untuk dijelajahi." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Bagaimana pengalaman senyawa" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Arah manusia{ph1} * Tujuan dan kriteria penerimaan" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Otonomi" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agen" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Pilih eksperimen.{ph0}Mengajukan hipotesis." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Verifikasi" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Acuan verifikasi" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Uji terhadap a{ph0}referensi konkret." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repositori" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Memori kerja" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -424,7 +424,7 @@ msgstr "Kode, bukti,{ph0}cek dan pelajaran." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -433,26 +433,26 @@ msgstr "Ketidakcocokan{ph0}{ph1}Merevisi hipotesis{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Yang lebih baik{ph0}{ph1}titik awal{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Penggunaan kembali" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Lulus{ph1} * Simpan hasil dan buktinya" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -461,14 +461,14 @@ msgstr "" "Setiap proyek meninggalkan proyek berikutnya dengan titik awal yang lebih " "baik. Itu termasuk memperbaiki pemeriksaan saat kami menemukan celah." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Dalam artikel ini" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -476,7 +476,7 @@ msgstr "{ph0}Agustus 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -484,7 +484,7 @@ msgstr "{ph0} TH08: kelanjutan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -492,7 +492,7 @@ msgstr "{ph0}Dua pendekatan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -500,7 +500,7 @@ msgstr "{ph0} TH095: penggabungan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -508,7 +508,7 @@ msgstr "{ph0} TH04: lintas arsitektur{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -516,7 +516,7 @@ msgstr "{ph0}Dari tepat hingga dapat dibaca{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -524,18 +524,18 @@ msgstr "{ph0}Pergeseran industri{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Apa yang menjadi mungkin{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Apa yang berubah pada Agustus 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -550,7 +550,7 @@ msgstr "" "menghabiskan lebih banyak waktu saya sendiri untuk acara berikutnya. Itu " "juga berarti menyimpan gambaran yang semakin besar di kepala saya." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -564,7 +564,7 @@ msgstr "" "berguna di tempat lain, tetapi setiap bidang perlu menetapkan apa yang dapat" " diperiksa terhadap referensi yang andal." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -577,7 +577,7 @@ msgstr "" "ke program dan alat pengembangan biasa. Rekonstruksi Touhou memberi saya " "sebuah proyek besar untuk mencari tahu." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -594,7 +594,7 @@ msgstr "" "Memberikan kebebasan itu membuat perbedaan: Saya dapat memberikan lebih " "banyak perhatian pada arah proyek dan apakah pemeriksaannya dapat dipercaya." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -606,7 +606,7 @@ msgstr "" "pertandingan berikutnya mendapat manfaat dari semua yang baru saja kita " "pelajari?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: membangun pekerjaan manusia" @@ -615,7 +615,7 @@ msgstr "TH08: membangun pekerjaan manusia" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -629,7 +629,7 @@ msgstr "" " landasan yang kuat. Itu datang dengan pengetahuan tentang bangunan dan " "sejarah kontribusi yang saya simpan dalam kelanjutannya." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -641,7 +641,7 @@ msgstr "" "besar mencatat sumber untuk semua 1.107 fungsi permainan yang " "teridentifikasi." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -652,7 +652,7 @@ msgstr "" "kira-kira sebelas hari setelah kelanjutan dimulai. Edisi Web menyusul. Rilis" " asli Linux 64-bit tiba pada 30 Agustus." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -668,7 +668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -687,12 +687,12 @@ msgstr "" "mengujinya; ketidakcocokan memberinya sesuatu yang spesifik untuk " "diselidiki." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Pencocokan tepat dengan konstanta yang salah" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -704,7 +704,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -717,7 +717,7 @@ msgstr "" " memeriksa kekuatan pemain terhadap {ph0}. Yang asli digunakan {ph1}, ambang" " batas daya maksimum." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -732,14 +732,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" "{ph0}Namun fungsi tersebut telah melewati perbandingan yang tepat.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -755,7 +755,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -772,7 +772,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -787,7 +787,7 @@ msgstr "" " floating-point. Itu menemukan dua belas referensi yang salah di lima fungsi" " yang diterima." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -801,7 +801,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -811,7 +811,7 @@ msgstr "" "{ph0}Referensi verifikasi (oracle) juga perlu direkonstruksi.{ph1} " "Memperbaikinya adalah bagian dari memperbaiki permainan." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -830,7 +830,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -846,7 +846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -856,7 +856,7 @@ msgstr "" "{ph0}Batch yang berhasil memberi kami kode yang dipulihkan dan lingkungan " "yang lebih baik untuk batch berikutnya.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Dua gagasan rekonstruksi yang berbeda" @@ -865,7 +865,7 @@ msgstr "Dua gagasan rekonstruksi yang berbeda" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -878,7 +878,7 @@ msgstr "" "pengembangan lebih lanjut akan dilakukan secara pribadi hingga selesai. Satu" " bagian berbunyi:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -888,7 +888,7 @@ msgstr "" "dari pekerjaan kami memberikan gambaran yang buruk untuk upaya dekompilasi " "di masa mendatang…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -906,7 +906,7 @@ msgstr "" "diskusikan adalah tentang bagaimana rekonstruksi harus dilanjutkan dan " "bagaimana kontribusi harus dinilai." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -920,7 +920,7 @@ msgstr "" "pada kontributor menjadi penting karena begitu banyak alasan yang terjadi " "saat mereka bekerja." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -932,7 +932,7 @@ msgstr "" "menggunakan pengetahuan itu untuk melanjutkan penyelidikan berikutnya dengan" " sendirinya." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -947,7 +947,7 @@ msgstr "" "ingin orang lain dapat memeriksa mengapa kami memilih implementasi, bahkan " "jika agen melakukan sebagian besar pekerjaan." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -960,7 +960,7 @@ msgstr "" "menimbulkan pertanyaan nyata tentang kredit. Ini juga mengubah apa yang " "perlu diketahui pengelola sebelum menerima kontribusi." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -976,7 +976,7 @@ msgstr "" "Komunitas yang berbeda dapat memilih seberapa banyak perubahan yang ingin " "mereka lakukan." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -1002,7 +1002,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1014,14 +1014,14 @@ msgstr "" "Oktober 2026, dan {ph2}kebijakan kontribusi{ph3}. Kutipannya adalah kutipan " "singkat. TH08 {ph4}kredit dan asalnya{ph5} catat batas kelanjutannya." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: pengalaman mulai bertambah" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1036,7 +1036,7 @@ msgstr "" " Tapi kami sudah tahu lebih banyak tentang bagaimana memulai rekonstruksi " "dan bagaimana membuatnya tetap bergerak." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1050,7 +1050,7 @@ msgstr "" " ditandai dapat dimainkan pada 10 September, sekitar dua belas hari setelah " "inisialisasi." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1061,7 +1061,7 @@ msgstr "" "baru bisa mendapat manfaat dari pekerjaan yang dilakukan di game lain. " "Pengalaman sudah ada dalam alat dan cara proyek diatur." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1076,7 +1076,7 @@ msgstr "" "Kita perlu melihat mereka bekerja sama. Pelajaran itu membantu membentuk " "cara kami mendekati pembuatan seluruh program TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1089,7 +1089,7 @@ msgstr "" " setelah saya melanjutkan. Agen berikutnya dapat menggunakan hasilnya tanpa " "mengulangi penyelidikan yang mengarah ke sana." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1104,7 +1104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1116,7 +1116,7 @@ msgstr "" "selanjutnya.{ph1} Kita dapat menghabiskan lebih banyak upaya proyek " "berikutnya untuk apa yang sebenarnya baru tentang targetnya." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1129,7 +1129,7 @@ msgstr "" "melanjutkan pekerjaan. Mereka tidak perlu merekonstruksi seluruh sejarah " "proyek untuk mengetahui mengapa sumbernya terlihat seperti itu." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: alur kerja bertahan dari arsitektur yang berbeda" @@ -1138,7 +1138,7 @@ msgstr "TH04: alur kerja bertahan dari arsitektur yang berbeda" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1154,7 +1154,7 @@ msgstr "" " dari game Windows. Sudah ada {ph2}ReC98 bekerja{ph3} memberi kami " "pengetahuan dan sumber materi yang berharga di sini juga." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1167,7 +1167,7 @@ msgstr "" "Pekerjaan saat ini adalah port 64-bit asli. Membuat versi DOS yang berfungsi" " terlebih dahulu memberikan referensi pada port tersebut." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1180,7 +1180,7 @@ msgstr "" " bisa mengikuti pertanyaan sampai ke hasil dan membiarkan hasil itu memandu " "percobaan berikutnya." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1195,7 +1195,7 @@ msgstr "" "Setelah bukti dan pemeriksaan tersedia, agen dapat mengerjakan pertanyaan " "tersebut seperti yang dilakukan pada judul Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1207,7 +1207,7 @@ msgstr "" "cara kerja yang baru. Arsitektur mendefinisikan masalahnya; alur kerja masih" " memberi kami cara untuk menyelesaikannya." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1224,7 +1224,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1234,12 +1234,12 @@ msgstr "" "Status proyek per 10 Oktober 2026: {ph0}Rekonstruksi DOS dan pengujian " "manual{ph1} · {ph2}port 64-bit{ph3}. Pelabuhan masih dalam pengembangan." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Dari kode yang tepat hingga kode yang dapat dibaca" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1247,7 +1247,7 @@ msgid "" msgstr "" "Setelah rekonstruksi berhasil, saya ingin orang lain dapat memahaminya." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1262,7 +1262,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1279,7 +1279,7 @@ msgstr "" " buktinya. Kami menyimpan alasannya dengan sumbernya sehingga orang " "berikutnya dapat melihat dari mana interpretasi itu berasal." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1294,14 +1294,14 @@ msgstr "" "memiliki status tersebut. Untuk memindahkan perilaku dengan aman, kita perlu" " memulihkan hubungan di balik akses memori lama." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Urutan yang sekarang saya gunakan adalah:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1317,7 +1317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1334,7 +1334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1351,7 +1351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1366,7 +1366,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1383,7 +1383,7 @@ msgstr "" "direkonstruksi masih dibangun dan berperilaku dengan benar di sepanjang " "jalur yang kita gunakan." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1397,7 +1397,7 @@ msgstr "" " tetap tersedia memberi agen kegagalan nyata untuk menyelidiki sebelum " "melakukan refactor lebih lanjut." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1415,7 +1415,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1434,7 +1434,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1445,12 +1445,12 @@ msgstr "" "membuat pengetahuan yang dipulihkan dapat digunakan.{ph1} Sebuah port " "kemudian dapat dibangun di atas keduanya." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Apa yang membuat ini menjadi pergeseran industri" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1464,7 +1464,7 @@ msgstr "" "yang lebih baik dapat membantu setiap fungsi selanjutnya yang " "membutuhkannya." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1478,7 +1478,7 @@ msgstr "" " Jika harus menunggu saya untuk menentukan setiap langkah, sebagian besar " "pekerjaan tetap terkait dengan perhatian saya." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1492,7 +1492,7 @@ msgstr "" "masih harus memutuskan apakah bukti yang terkumpul mendukung pencapaian " "proyek." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1507,7 +1507,7 @@ msgstr "" "dapat menggunakannya untuk menguji sumber yang diusulkannya dan melihat di " "mana penjelasannya bertahan." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1525,7 +1525,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1545,7 +1545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1562,7 +1562,7 @@ msgstr "" "bersama, kami harus memperbaikinya dan meninjau kembali hasil yang " "terpengaruh. Proyek berikutnya kemudian dapat mewarisi alat yang lebih kuat." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1577,7 +1577,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1590,7 +1590,7 @@ msgstr "" "mereka. Bekerja pada satu permainan dapat meningkatkan kondisi awal untuk " "permainan lainnya." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1602,12 +1602,12 @@ msgstr "" "tersebut mengubah seberapa banyak orang berikutnya—atau agen " "berikutnya—dapat menyelesaikannya." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Proyek-proyek yang sekarang dapat kita pertimbangkan" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1619,7 +1619,7 @@ msgstr "" "lebih banyak perhatian saya sendiri daripada yang bisa saya berikan secara " "realistis. Banyak proyek akan tetap menjadi ide." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1637,7 +1637,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1648,7 +1648,7 @@ msgstr "" "umpan balik, dan akumulasi pengetahuan apa yang memungkinkan agen " "mengerjakan ini dengan andal?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1660,12 +1660,12 @@ msgstr "" "mendekati pendekatan berikutnya. Saya ingin terus mengeksplorasi seberapa " "jauh hal itu dapat membawa kita." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Tonggak dan sumber proyek" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1700,7 +1700,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1734,7 +1734,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1752,7 +1752,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1776,7 +1776,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1798,7 +1798,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1814,7 +1814,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1836,7 +1836,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1850,7 +1850,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1871,27 +1871,27 @@ msgstr "" "agen AI, dan bagaimana pengetahuan menyatu di seluruh TH08, TH095, dan PC-98" " TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Pengalaman yang dibawa antar proyek" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Esai rekonstruksi Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -1900,18 +1900,18 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Rumah{ph1}{ph2}/{ph3}Lab kecepatan dinosaurus" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Periksa →" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Bangun kembali aturan kecepatan dinosaurus." @@ -1920,7 +1920,7 @@ msgstr "Bangun kembali aturan kecepatan dinosaurus." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1933,15 +1933,15 @@ msgstr "" "berjalan;{ph1} kami menggunakan aturannya untuk membuat mini-game ini dengan" " {ph2}kecepatan yang dapat disesuaikan.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Di halaman ini" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1949,7 +1949,7 @@ msgstr "{ph0}Mainkan dan ubah kecepatannya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1957,7 +1957,7 @@ msgstr "{ph0}Baca aturan yang dipulihkan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1965,18 +1965,18 @@ msgstr "{ph0}Periksa rekonstruksi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Coba analisisnya{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Mainkan dan ubah kecepatannya" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1988,49 +1988,49 @@ msgstr "" "tetap. Pilih aturan yang dipulihkan untuk memulai dari 6 dan percepat lagi " "secara bertahap." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Mainkan hasil rekonstruksi" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Main" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Lompat ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Mulai ulang" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Kecepatan" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Gunakan aturan akselerasi yang dipulihkan" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Aturan awal: mulai dari 6, lalu tingkatkan menjadi 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Gerakkan penggeser untuk mengatur kecepatan Anda sendiri. Ruang atau " "Lompatan membersihkan kaktus." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2039,7 +2039,7 @@ msgstr "" "Aktifkan JavaScript untuk memainkan rekonstruksi. Kode dan penjelasan di " "atas tetap dapat dibaca." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Baca script REA kembali" @@ -2047,7 +2047,7 @@ msgstr "Baca script REA kembali" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2062,7 +2062,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2072,18 +2072,18 @@ msgstr "" "Pengaturannya adalah {ph0}, {ph1} dan {ph2}. Gim ini menjalankan cabang ini " "pada pembaruan tanpa tabrakan." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Gunakan aturan yang sama di game baru" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Salin" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2100,18 +2100,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Unduh aturan kecepatan{ph1} · {ph2}Baca kode permainannya{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Periksa rekonstruksi" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2122,27 +2122,27 @@ msgstr "" "otomatis dinonaktifkan. Bandingkan kecepatan yang direkam tersebut dengan " "pemutaran ulang aturan yang dipulihkan." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Pembaruan" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Game asli" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Aturan yang direkonstruksi" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Jalankan pemeriksaan kecepatan" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2151,14 +2151,14 @@ msgstr "" "Nilai dibulatkan menjadi tiga desimal. Cabang memeriksa sebelum menambahkan," " sehingga kenaikan terakhir dapat mengambil kecepatan tepat di atas 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Coba analisisnya sendiri" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2167,7 +2167,7 @@ msgstr "{ph0}Siapkan REA {ph1} dengan agen pengodean Anda." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2176,7 +2176,7 @@ msgstr "" "Ikuti {ph0}langkah-langkah koneksi browser{ph1}, menggunakan {ph2} sebagai " "URL halaman." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2193,7 +2193,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2205,7 +2205,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agen pengkodean Anda" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2219,7 +2219,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2234,7 +2234,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2260,12 +2260,12 @@ msgstr "" "Baca aturan kecepatan permainan dinosaurus dengan REA, bangun kembali, lalu " "ubah kecepatan dan mainkan." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Rekonstruksi kecepatan dinosaurus" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2274,52 +2274,52 @@ msgstr "" "Mini-game dinosaurus. Gunakan tombol Lompat atau tekan Spasi saat permainan " "difokuskan." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Salin aturan kecepatan yang direkonstruksi" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Salin prompt analisis dinosaurus" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Rumah{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "FAQ REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Penyiapan, pembaruan, analisis, dan pemecahan masalah." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Topik" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2327,7 +2327,7 @@ msgstr "{ph0}Penyiapan dan pembaruan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2335,7 +2335,7 @@ msgstr "{ph0}Analisis{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2343,31 +2343,31 @@ msgstr "{ph0}Pemecahan masalah{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Data dan berbagi{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Penyiapan dan pembaruan" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Bagaimana cara memasang REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * penyiapan agen" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Salin" @@ -2375,7 +2375,7 @@ msgstr "Salin" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2389,12 +2389,12 @@ msgstr "" "pertanyaan. {ph0}Panduan penyiapan{ph1} menjelaskan kebutuhan awal dan " "langkah analisis pertama." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Agen pengkodean mana yang dapat menggunakan REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2409,18 +2409,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Hubungkan agen pengkodean Anda{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Bagaimana cara memperbarui REA ?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2429,13 +2429,13 @@ msgstr "" "REA sering dirilis, termasuk perbaikan bug. Jika Anda menginstal CLI dengan " "npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * terpasang CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2445,14 +2445,14 @@ msgstr "" "Ikuti perintah penyegaran penyiapan yang dicetak oleh pembaruan. Jika Anda " "mengatur agen Anda melalui {ph0}, lari:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * pengaturan agen penyegaran" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2464,14 +2464,14 @@ msgstr "" "tertentu, jadi jalankan penyiapan lagi agar agen memakai versi baru. Untuk " "satu kali perintah CLI, tambahkan perintah setelah {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Apakah memasang keterampilan dari skills.sh cukup?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2484,24 +2484,24 @@ msgstr "" "keterampilan yang cocok, mulai ulang agen Anda sehingga dapat memanggil " "alat." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analisis" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Apa yang dapat saya analisis dengan REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Mulailah dengan jenis perangkat lunak yang Anda miliki:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2513,7 +2513,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2525,7 +2525,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2533,7 +2533,7 @@ msgstr "{ph0}Halaman browser{ph1}: skrip, permintaan, dan pengamatan runtime." #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2545,12 +2545,12 @@ msgstr "" " dan sumber daya yang dikemas. {ph0}Lihat studi kasus{ph1} untuk investigasi" " yang berhasil." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Apakah saya memerlukan Hopper, Ghidra atau IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2562,7 +2562,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2575,12 +2575,12 @@ msgstr "" "penyedia mana yang dapat digunakan. {ph0}Menyiapkan analisis program kode " "mesin{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Dapatkah saya menggunakan REA tanpa agen pengkodean?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2589,14 +2589,14 @@ msgstr "" "Ya. CLI menggunakan alur kerja analisis yang sama. Untuk aplikasi JavaScript" " atau Electron lokal:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * analisis aplikasi statis" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2607,13 +2607,13 @@ msgstr "" "{ph0}Gunakan CLI {ph1} untuk opsi instalasi." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Kode apa yang dikembalikan REA?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2628,7 +2628,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2640,12 +2640,12 @@ msgstr "" " menguji implementasi. The {ph0} Perhitungan DX-Ball{ph1} dan {ph2}Pemeriksa" " bendera KKP{ph3} tunjukkan bagaimana proses itu bekerja." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Apa yang sebaiknya saya tanyakan kepada agen?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2662,7 +2662,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2670,7 +2670,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agen pengkodean Anda" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2680,18 +2680,18 @@ msgstr "" "Ganti jalur dengan target Anda. The {ph0}panduan{ph1} berikan petunjuk untuk" " contoh asli, Electron, dan browser." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Pemecahan masalah" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Mengapa agen saya tidak dapat melihat alat REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2701,7 +2701,7 @@ msgstr "" "Mulai ulang atau sambungkan kembali agen Anda setelah penyiapan. Periksa " "pendaftaran REA-nya dengan {ph0}; untuk Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * periksa satu klien" @@ -2709,7 +2709,7 @@ msgstr "Terminal * periksa satu klien" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2720,14 +2720,14 @@ msgstr "" "menunjukkan pendaftaran yang hilang atau kedaluwarsa, jalankan penyiapan " "untuk klien tersebut:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * perbaiki pengaturan satu klien" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2739,14 +2739,14 @@ msgstr "" "tetap tidak ada, periksa kesalahan koneksi MCP klien. {ph0}Lebih banyak " "diagnostik pengaturan{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Apakah saya harus memulai Hopper terlebih dahulu?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2758,14 +2758,14 @@ msgstr "" "pilihan mode demo atau aktivasi lisensi yang dijalankan pertama kali sebelum" " analisis tanpa pengawasan. {ph0}Lihat penyiapan penyedia asli{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Apa yang harus saya lakukan jika menemukan bug?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2777,7 +2777,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2790,17 +2790,17 @@ msgstr "" "kesalahan. Sertakan nama penyedia saat masalah melibatkan analisis program " "kode mesin." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Data dan berbagi" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Apakah REA mengunggah aplikasi saya?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2809,7 +2809,7 @@ msgstr "" "REA menganalisis target pada mesin Anda. Agen Anda menerima hasilnya, dan " "kebijakan data penyedia modelnya berlaku untuk hasil tersebut." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Bagaimana saya bisa membagikan contoh atau berkontribusi?" @@ -2818,7 +2818,7 @@ msgstr "Bagaimana saya bisa membagikan contoh atau berkontribusi?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2834,7 +2834,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2859,77 +2859,77 @@ msgstr "" "Jawaban atas pertanyaan umum REA: instalasi, pembaruan, alat analisis, agen " "pengkodean, pemecahan masalah, dan contoh berbagi." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Pertanyaan yang sering diajukan tentang REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Salin perintah pengaturan REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Salin perintah pembaruan REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Perintah penyegaran penyiapan agen salin" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Salin perintah analisis REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Salin contoh analisis prompt" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Salin perintah diagnosis klien" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Salin perintah pengaturan cakupan" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Rumah{ph1} / Investigasi pertama Anda" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Cari tahu di mana{ph0}catatan yang diekspor pergi." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2938,14 +2938,14 @@ msgstr "" "Gunakan REA untuk memeriksa aplikasi kecil, ikuti tombol catatan Ekspornya, " "dan periksa sendiri satu detailnya." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Dalam latihan ini" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2953,7 +2953,7 @@ msgstr "{ph0}1. Siapkan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2961,7 +2961,7 @@ msgstr "{ph0}2. Tanyakan tentang ekspor{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2969,7 +2969,7 @@ msgstr "{ph0}3. Ikuti jawabannya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2977,13 +2977,13 @@ msgstr "{ph0}4. Periksa prediksi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Ajukan pertanyaan lain{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Hubungkan agen Anda ke REA" @@ -2996,30 +2996,30 @@ msgstr "1. Hubungkan agen Anda ke REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Agen pengkodean Anda" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Salin" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Atau jalankan perintah ini di terminal Anda:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3028,14 +3028,14 @@ msgstr "" "Tinjau paket, setujui penyiapan, lalu mulai ulang agen Anda. Sudah " "terhubung? Lanjutkan di bawah ini." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Tanyakan di mana CSV ditulis" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3047,7 +3047,7 @@ msgstr "" " tombol. Agen Anda dapat memeriksa kodenya tanpa menginstal atau meluncurkan" " Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3059,14 +3059,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Unduh contoh ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3076,12 +3076,12 @@ msgstr "" "Jika agen Anda tidak dapat mengunduh file, buka zip arsip ini sendiri. " "Berikan jalan ke {ph0} folder dan pertanyaan ekspor yang sama." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Ikuti jawabannya kembali ke kode" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Cari penjelasan singkat dengan referensi file dan baris:" @@ -3090,7 +3090,7 @@ msgstr "Cari penjelasan singkat dengan referensi file dan baris:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3102,12 +3102,12 @@ msgstr "" "sebagai CSV dan menulis {ph1} di folder Unduhan pengguna. Kolomnya adalah " "{ph2} dan {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Dari tombol ke penulis file" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3116,7 +3116,7 @@ msgstr "" "Analisis statis REA memasangkan pesan dengan penangannya. Tujuan dibaca dari" " kode." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3127,18 +3127,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "{ph0}Lihat jejak kode lengkap dan hasil REA yang direkam{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Periksa prediksi" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3147,29 +3147,29 @@ msgstr "" "Koma memisahkan kolom CSV. Apa yang terjadi jika judul catatan itu sendiri " "berisi koma atau tanda petik?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Jalankan cek sendiri" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Buka terminal di bagian yang belum dibongkar {ph0} folder:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Ajukan pertanyaan lain" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Coba tindak lanjut dalam percakapan yang sama:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3178,7 +3178,7 @@ msgstr "" "Apa yang terjadi jika file tidak dapat ditulis? Ikuti kesalahan kembali ke " "halaman." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3191,7 +3191,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3205,7 +3205,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3219,7 +3219,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3244,116 +3244,116 @@ msgstr "" "perginya catatan yang diekspor, dan periksa formatter CSV dengan judul " "sampel." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Investigasi REA pertama Anda" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Salin prompt instalasi REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Salin perintah pengaturan" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Salin Catatan penyelidikan prompt" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Salin prompt pemeriksaan CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Salin perintah pemeriksaan formatter" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Rumah{ph1} / Memulai" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Siapkan REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Buka terminal dan periksa:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Salin" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3365,19 +3365,19 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." msgstr "" -"Distribusi Anda sendiri {ph0} paket seringkali lebih lama dari 22.23.4, jadi " -"periksa {ph1} jika Anda menggunakannya sebagai gantinya." +"Distribusi Anda sendiri {ph0} paket seringkali lebih lama dari 22.23.4, jadi" +" periksa {ph1} jika Anda menggunakannya sebagai gantinya." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3388,7 +3388,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3396,7 +3396,7 @@ msgstr "{ph0}Gunakan CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3410,18 +3410,18 @@ msgstr "{ph0}Mendapatkan bantuan{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Agen pemrogramanmu" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Atau jalankan pengaturan sendiri" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Bagaimana cara membuka terminal?" @@ -3430,7 +3430,7 @@ msgstr "Bagaimana cara membuka terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3446,7 +3446,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3460,7 +3460,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3475,7 +3475,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3485,7 +3485,7 @@ msgstr "" "Tempel perintah dengan {ph0} {ph1} (macOS : {ph2} {ph3}; Terminal Linux: " "{ph4} {ph5} {ph6}), lalu tekan Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3496,7 +3496,7 @@ msgstr "" "dan keterampilan investigasi pencocokan, menyimpan cadangan konfigurasi yang" " ada. Itu bertanya sebelum menerapkan perubahan." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Bagaimana cara memulai ulang klien saya?" @@ -3505,7 +3505,7 @@ msgstr "Bagaimana cara memulai ulang klien saya?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3521,7 +3521,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3531,7 +3531,7 @@ msgstr "" "{ph0}Agen terminal{ph1} ( Claude Code, Codex, Gemini CLI): keluar dari sesi " "dan mulai lagi." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Bagaimana cara mendapatkan jalur lengkap folder?" @@ -3540,7 +3540,7 @@ msgstr "Bagaimana cara mendapatkan jalur lengkap folder?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3555,7 +3555,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3567,7 +3567,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3577,13 +3577,13 @@ msgstr "" "{ph0}Sistem apa pun:{ph1} seret folder ke jendela terminal dan jalurnya " "muncul." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "Di terminal, beri tanda kutip di sekitar jalur yang berisi spasi." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3592,14 +3592,14 @@ msgstr "" "Analisis folder aplikasi JavaScript atau Electron atau arsip ASAR tanpa " "menjalankan aplikasi:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Analisis aplikasi statis" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3609,13 +3609,13 @@ msgstr "" "Ganti jalur dengan direktori aplikasi yang Anda ekstrak atau {ph0} berkas. " "Pada Windows, jalur seperti {ph1} bekerja di sini." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Di mana berkas .asar suatu aplikasi?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3626,7 +3626,7 @@ msgstr "Aplikasi Electron biasanya menyimpannya dalam {ph0} folder:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3638,7 +3638,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3651,21 +3651,21 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} sering {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" "Beberapa aplikasi dipasang di tempat lain. Cari folder aplikasi untuk {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3677,36 +3677,36 @@ msgstr "" "ditandai dalam hasil." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Jika Anda ingin permanen {ph0} perintah di shell Anda:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Instal CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Lanjutkan dengan panduan aplikasi JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Hubungkan instalasi Ghidra Anda" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Hubungkan Ghidra di Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3718,14 +3718,14 @@ msgstr "" "instalasi Ghidra 12.1.x yang sudah ada dan JDK 64-bit versi 21 atau lebih " "baru:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." msgstr "" "Ganti kedua jalur dengan penginstalan Anda, lalu tinjau paket penyiapan." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3735,18 +3735,18 @@ msgstr "" " itu mendeteksi instalasi yang ada atau menawarkan rencana instalasi untuk " "persetujuan Anda." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Mendapatkan bantuan" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Jika agen Anda tidak melihat REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3756,22 +3756,22 @@ msgstr "" "Mulai ulang atau sambungkan kembali klien setelah pengaturan. Periksa " "koneksi REA-nya dengan {ph0}; untuk Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Jika penyedia membutuhkan perhatian" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Periksa penyedia yang Anda gunakan. Untuk Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Periksa satu penyedia" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3782,7 +3782,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3795,7 +3795,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3809,7 +3809,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3823,7 +3823,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3848,68 +3848,68 @@ msgstr "" "Electron lokal dari terminal. Penyiapan, pertanyaan pertama, dan panduan " "penyedia asli." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Salin pemeriksaan versi Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Salin perintah instalasi Node.js untuk Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Salin perintah instalasi Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Salin perintah instalasi fnm untuk Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Salin perintah Node.js 24 untuk Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "Panduan memulai REA" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Salin prompt instalasi REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Salin perintah analisis JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Salin perintah instalasi CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Salin perintah diagnosis penyedia" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -3918,20 +3918,20 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Rumah{ph1} / {ph2}Panduan{ph3} / Pengamatan browser" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Lihat apa yang terjadi{ph0}saat Anda mengklik." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3940,14 +3940,14 @@ msgstr "" "Gunakan aplikasi browser kecil untuk menghubungkan tindakan, permintaan " "jaringannya, dan JavaScript yang membuat unduhan." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Dalam panduan ini" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3955,7 +3955,7 @@ msgstr "{ph0}Contohnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3963,7 +3963,7 @@ msgstr "{ph0}Buka browser{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3971,7 +3971,7 @@ msgstr "{ph0}Tanyakan pada agen Anda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3979,13 +3979,13 @@ msgstr "{ph0}Tangkap dari CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Baca permintaan dan skrip{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Apa yang terjadi saat Anda mengklik Ekspor?" @@ -3995,7 +3995,7 @@ msgstr "Apa yang terjadi saat Anda mengklik Ekspor?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4007,7 +4007,7 @@ msgstr "" "tombol. Mengkliknya akan memuat {ph4}, memformat dua catatan sebagai CSV, " "dan memulai pengunduhan." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Dari klik ke unduhan CSV" @@ -4018,7 +4018,7 @@ msgstr "Dari klik ke unduhan CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4034,7 +4034,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4052,7 +4052,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4062,17 +4062,17 @@ msgstr "" "{ph0}03 * Agen Anda{ph1}{ph2}Baca kode ekspor{ph3}{ph4}Hubungkan permintaan " "yang diamati ke {ph5} dalam {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Mulai pengambilan sebelum mengklik Ekspor catatan." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Buka Chrome dengan debugging jarak jauh" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4081,21 +4081,21 @@ msgstr "" "Buka contoh Catatan yang dihosting dengan profil browser terpisah dan port " "debugging lokal. Di Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Mulai browser contoh" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Salin" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4104,7 +4104,7 @@ msgstr "" "Gunakan jalur eksekusi browser yang Anda instal di macOS atau Windows . Anda" " dapat mengganti URL halaman dengan halaman lain yang ingin Anda periksa." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4113,7 +4113,7 @@ msgstr "" "REA terhubung ke browser yang ada ini. Anda tetap mengontrol halaman, " "melakukan tindakan, dan menutup browser setelah selesai." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Minta agen Anda untuk menonton satu aksi" @@ -4126,7 +4126,7 @@ msgstr "Minta agen Anda untuk menonton satu aksi" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4138,7 +4138,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agen pengkodean Anda" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4150,7 +4150,7 @@ msgstr "" "dibuat?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4160,7 +4160,7 @@ msgstr "" "Contoh prompt. Berikan agen Anda titik akhir debugging, {ph0}, dan URL " "halaman. Biarkan mulai menangkap sebelum Anda mengklik." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4170,23 +4170,23 @@ msgstr "" "Agen Anda menemukan target halaman, memulai jendela observasi, dan membaca " "bukti yang dihasilkan. Itu kemudian dapat memeriksa skrip di balik ekspor." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Atau tangkap dari terminal" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Temukan ID target halaman:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Temukan halamannya" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4196,14 +4196,14 @@ msgstr "" "Pilih target dengan URL contoh Catatan. Ganti {ph0} di bawah ini dengan ID -" " nya, lalu jalankan:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Abadikan sepuluh detik berikutnya" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4214,7 +4214,7 @@ msgstr "" "catatan{ph1} pada browser tersebut. Hasilnya tiba setelah jendela observasi " "berakhir." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4225,49 +4225,49 @@ msgstr "" "jendela tersebut, dan bentuk respons JSON. Permintaan sebelumnya berada di " "luar tangkapan ini." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Baca skrip permintaan dan ekspor" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Direkam dengan REA 4.1.0 pada contoh Catatan lokal" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Fakta yang ditangkap" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Nilai" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Permintaan" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Tanggapan" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Inisiator permintaan" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * naskah" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Struktur respons" @@ -4275,19 +4275,19 @@ msgstr "Struktur respons" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} dengan {ph1} dan {ph2} bidang" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Baca skrip yang dimuat" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4299,7 +4299,7 @@ msgstr "" "digunakan:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4312,7 +4312,7 @@ msgstr "" "{ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4324,7 +4324,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4348,65 +4348,65 @@ msgstr "" "Amati ekspor Catatan dengan REA: pilih halaman browser, tangkap klik, " "periksa permintaan, dan ikuti skrip ekspor." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Pengamatan browser" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Salin mulai browser contoh" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Salin contoh prompt" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Salin temukan halaman" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Salin tangkap sepuluh detik berikutnya" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Salin baca skrip yang dimuat" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Rumah{ph1} / Panduan" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Panduan REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4415,37 +4415,37 @@ msgstr "" "Analisis fungsi asli, ekspor Electron, atau permintaan browser. Setiap " "panduan menyertakan prompt, kode, dan hasil." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Investigasi pertama" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Siapkan REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Hubungkan agen pengkodean Anda atau gunakan REA dari terminal." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Mulai dengan REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Program kode mesin" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Pulihkan perhitungan posisi suara kiri / kanan" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4454,22 +4454,22 @@ msgstr "" "Mulailah dengan game Windows yang dapat dieksekusi. Periksa instruksi, ikuti" " fungsi pemanggil, baca konstanta numerik, dan periksa C yang dipulihkan." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Analisis panduan program kode mesin" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Ikuti ekspor CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4479,14 +4479,14 @@ msgstr "" "proses utama. Gunakan REA untuk menghubungkan API, saluran IPC, dan penulis " "file." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Panduan JavaScript & Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4494,17 +4494,17 @@ msgstr "" "Untuk aplikasi paket yang lebih besar, ikuti {ph0} Jembatan papan klip " "Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Perilaku peramban" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Amati satu klik" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4513,7 +4513,7 @@ msgstr "" "Buka contoh Catatan kerja, tangkap permintaan ekspor, dan temukan kode yang " "mengubah responsnya menjadi unduhan." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Panduan pengamatan browser" @@ -4532,12 +4532,12 @@ msgstr "" "Pelajari REA melalui contoh singkat yang berhasil: perhitungan asli, ekspor " "Electron CSV, dan permintaan browser." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -4546,20 +4546,20 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Rumah{ph1} / {ph2}Panduan{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Lacak sebuah Electron {ph0} Ekspor CSV." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4568,14 +4568,14 @@ msgstr "" "Ikuti satu klik tombol dari page API, melalui Electron IPC, ke CSV file " "writer." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Dalam panduan ini" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4583,7 +4583,7 @@ msgstr "{ph0}Contohnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4591,7 +4591,7 @@ msgstr "{ph0}Tanyakan pada agen Anda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4599,7 +4599,7 @@ msgstr "{ph0}Lacak kode ekspor{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4607,20 +4607,20 @@ msgstr "{ph0}Coba contohnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Periksa penulis CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Ke mana perginya \"Catatan ekspor\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4632,7 +4632,7 @@ msgstr "" "catatan{ph1} memanggil API di halaman, masuk ke proses utama, dan menulis " "CSV . Perilaku tersebut tersebar di beberapa file." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Ekspor CSV di seluruh proses Electron" @@ -4646,7 +4646,7 @@ msgstr "Ekspor CSV di seluruh proses Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4663,7 +4663,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4680,7 +4680,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4693,13 +4693,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} memformat catatan → {ph1} menulis {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4710,14 +4710,14 @@ msgstr "" "API yang terbuka. Jalur disimpulkan dari kode; tangkapan waktu proses dapat " "memeriksa apa yang dijalankan." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Tanyakan tentang ekspor CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4735,14 +4735,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Agen pengkodean Anda" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Salin" @@ -4753,7 +4753,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4764,7 +4764,7 @@ msgstr "" "mengekspor catatan di aplikasi ini. Di mana CSV dibuat?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4772,7 +4772,7 @@ msgid "" "{ph0}." msgstr "Contoh prompt. Sertakan jalur absolut ke folder aplikasi atau {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4783,17 +4783,17 @@ msgstr "" "proses. Agen Anda menggunakan peta tersebut untuk mempersempit penyelidikan " "ke fitur ekspor." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Lacak kode ekspor" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Halaman tersebut memanggil API kecil" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4804,7 +4804,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4816,7 +4816,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4826,7 +4826,7 @@ msgstr "" "Membaca handler menjawab pertanyaan awal: {ph0} memformat catatan, dan " "proses utama menulis {ph1} ke dalam folder Unduhan pengguna." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4835,7 +4835,7 @@ msgstr "" "Direkam oleh REA 4.1.0 pada contoh yang dapat diunduh di bawah ini. Lokasi " "sumber menyertai temuan API, saluran, dan penangan." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analisis sendiri contohnya" @@ -4843,25 +4843,25 @@ msgstr "Analisis sendiri contohnya" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Unduh contoh ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Jelajahi enam file sumber" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Analisis aplikasi statis" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4872,7 +4872,7 @@ msgstr "" " satu saluran IPC dan satu pengendali yang cocok di {ph0}. Lokasi sumber ada" " di {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4883,13 +4883,13 @@ msgstr "" "atau jalur ASAR. Agen dapat mengikuti string literal, nama API, atau saluran" " IPC dengan alat penelusuran fitur REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Periksa penulis CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4899,7 +4899,7 @@ msgstr "" "Ikuti {ph0} untuk pawangnya. Input mana yang mencapai penulis CSV, dan apa " "yang terjadi jika penulisan file gagal?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4914,7 +4914,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4928,7 +4928,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4942,7 +4942,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4968,32 +4968,32 @@ msgstr "" "dengan REA . Termasuk file contoh yang dapat diunduh dan hasil analisis yang" " diverifikasi." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Salin contoh prompt" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Salin analisis aplikasi statis" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -5002,20 +5002,20 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}Rumah{ph1} / {ph2}Panduan{ph3} / Analisis program kode mesin" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "Recover DX-Ball{ph0}perhitungan posisi suara kiri/kanan." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5024,14 +5024,14 @@ msgstr "" "Periksa instruksi asli, identifikasi input dan konstanta, lalu periksa C " "yang dipulihkan." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Dalam panduan ini" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5039,7 +5039,7 @@ msgstr "{ph0}Contohnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5047,7 +5047,7 @@ msgstr "{ph0}Tanyakan pada agen Anda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5055,7 +5055,7 @@ msgstr "{ph0}Baca hasil REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5063,18 +5063,18 @@ msgstr "{ph0}Pulihkan dan periksa{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Gunakan biner Anda sendiri{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Hitung posisi suara stereo kiri / kanan" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5085,7 +5085,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5097,7 +5097,7 @@ msgstr "" "REA juga mengembalikan instruksi dan fungsi pemanggilnya, yang memberi agen " "cara untuk menyelidiki aritmatika yang hilang." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Baru mengenal istilah ini?" @@ -5106,7 +5106,7 @@ msgstr "Baru mengenal istilah ini?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5118,7 +5118,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5131,7 +5131,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5144,7 +5144,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5156,7 +5156,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5166,7 +5166,7 @@ msgstr "" "{ph0}Konstanta:{ph1} nomor tetap yang disimpan dalam program, dibaca sebagai" " byte mentah dan diterjemahkan." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Tiga bukti, satu perhitungan" @@ -5177,7 +5177,7 @@ msgstr "Tiga bukti, satu perhitungan" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5194,7 +5194,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5212,7 +5212,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5222,7 +5222,7 @@ msgstr "" "{ph0}03 * Byte data{ph1}{ph2}Konstanta numerik{ph3}{ph4}Byte yang " "direferensikan didekode ke {ph5}, {ph6} dan nilai skala.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5231,7 +5231,7 @@ msgstr "" "REA menyediakan instruksi, hubungan panggilan fungsi, dan byte. Agen " "menafsirkannya bersama-sama." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Tanyakan tentang perilakunya" @@ -5240,7 +5240,7 @@ msgstr "Tanyakan tentang perilakunya" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5250,19 +5250,19 @@ msgstr "" "Setelah {ph0}menghubungkan REA ke agen Anda{ph1} dan {ph2}menyiapkan alat " "analisis program kode mesin{ph3}, berikan executable lokal dan pertanyaan:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Alat analisis mana yang harus saya gunakan?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA membutuhkan salah satunya untuk membaca program asli:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5276,7 +5276,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5289,7 +5289,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5300,7 +5300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5316,14 +5316,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Agen pengkodean Anda" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Salin" @@ -5334,7 +5334,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5345,7 +5345,7 @@ msgstr "" "pemosisian suara stereo. Jelaskan perhitungannya dan tunjukkan " "kodenya.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5357,7 +5357,7 @@ msgstr "" "sendiri, atau ajukan pertanyaan yang sama tentang program Windows kecil " "lainnya yang Anda miliki." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Bagaimana cara mendapatkan path lengkap file?" @@ -5366,7 +5366,7 @@ msgstr "Bagaimana cara mendapatkan path lengkap file?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5381,7 +5381,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5393,7 +5393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5403,17 +5403,17 @@ msgstr "" "{ph0}Sistem apa pun:{ph1} seret file ke jendela terminal dan jalurnya " "muncul." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Baca hasil REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Baca inputnya" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5423,13 +5423,13 @@ msgstr "" "floating-point. Ini adalah input yang tidak ada dari tampilan pseudocode " "pertama." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Ikuti fungsi pemanggil" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5440,12 +5440,12 @@ msgstr "" "sebelumnya mengalikan koordinat ubin dengan 30; menambahkan {ph0} (20) " "memberikan posisi layar bata." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Baca konstanta yang dirujuk" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5454,12 +5454,12 @@ msgstr "" "Aritmatika mereferensikan alamat-alamat ini. Membaca byte memberikan nilai " "aktual; urutan instruksi memberi tahu agen bagaimana mereka digunakan." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Tulis dan periksa fungsi yang dipulihkan" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5470,7 +5470,7 @@ msgstr "" " sebelum konversi bilangan bulat. Perhitungan menempatkan bagian tengah " "layar di tengah bidang stereo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5483,20 +5483,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Lihat investigasi lengkap dan perbandingan assembly-to-C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Cobalah dengan biner Anda sendiri" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5510,7 +5510,7 @@ msgstr "" "awal yang berguna termasuk \"Bagaimana file ini diuraikan?\"atau\" Fungsi " "mana yang menangani tindakan menu ini?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5519,13 +5519,13 @@ msgstr "" "Jika Anda sudah mengetahui nama atau alamat fungsi, Anda dapat menanyakannya" " dari terminal. Untuk instalasi Ghidra yang dikonfigurasi:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Analisis fungsi" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5539,7 +5539,7 @@ msgstr "" "sesinya. Kueri MCP agen Anda menggunakan kembali biner yang diimpor saat " "sesi tersebut dibuka." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5563,50 +5563,50 @@ msgstr "" "Pulihkan perhitungan asli dengan REA : periksa instruksi, ikuti fungsi " "pemanggil, baca konstanta, dan periksa C yang direkonstruksi." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Analisis program kode mesin" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Salin contoh prompt" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Salin analisis fungsi" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Lewati ke konten" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Siapkan REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5614,7 +5614,7 @@ msgstr "{ph0}Siapkan REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5622,7 +5622,7 @@ msgstr "{ph0}Permainan dinosaurus{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5630,7 +5630,7 @@ msgstr "{ph0}Kalkulator{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5638,25 +5638,25 @@ msgstr "{ph0}Coba REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Pelajari lebih lanjut{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Rekayasa balik, dengan agen pengkodean Anda" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Cari tahu bagaimana{ph0}perangkat lunak bekerja." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Tempel prompt ini ke agen pemrograman Anda:" @@ -5669,33 +5669,33 @@ msgstr "Tempel prompt ini ke agen pemrograman Anda:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Agen pengkodean Anda" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Salin" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Atau jalankan perintah ini di terminal:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Periksa dan setujui rencana perubahan, lalu mulai ulang agen Anda." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5703,7 +5703,7 @@ msgstr "{ph0}01{ph1} Dekode cabang" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5711,7 +5711,7 @@ msgstr "{ph0}02{ph1} Melacak panggilan" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5721,20 +5721,20 @@ msgstr "{ph0}03{ph1} Pulihkan aturan" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}x64 asli * instruksi yang dipilih{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * Cabang mana?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5743,29 +5743,29 @@ msgid "" msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Dua lompatan ke tempat yang sama. Operator mana ini?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Cari ID perintah, lalu beri label pada cabang." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Membagi ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Kalikan ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Apa yang dilakukan fungsi yang dipanggil?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5775,24 +5775,24 @@ msgstr "" "\"100 sudah jelas. Panggilan itu hanya alamat. {ph0}Yang mana yang membelah?" " Nilai mana yang masuk?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Periksa fungsi pembantu dan lacak nilai yang disimpan." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Membagi" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · Apa aturannya?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5802,19 +5802,19 @@ msgstr "" "\"Jalur ini dikalikan dengan masukan lainnya. Jadi {ph0}10% berarti 10% dari" " 200{ph1} setelah +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Beri nama operan dan periksa kedua jalur operator." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Penalaran ahli ilustratif" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5832,20 +5832,20 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Contoh prompt * Kalkulator" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Contoh jawaban * berdasarkan temuan" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5853,69 +5853,69 @@ msgid "" msgstr "" "Setelah +, tombol % mengambil {ph0}persentase dari angka pertama.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA menyediakan" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Instruksi pawang, kode yang didekompilasi, dan panggilan." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Agen Anda menjelaskan" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" "Cabang mana yang berlaku, apa yang menghitungnya, dan bagaimana membangunnya" " kembali." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Contoh 01 * Game dinosaurus Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Mengapa dinosaurus semakin cepat?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Main" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Lompat ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Mulai ulang" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Kecepatan" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Gunakan aturan akselerasi yang dipulihkan" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Aturan awal: mulai dari 6, lalu tingkatkan menjadi 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5928,7 +5928,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5942,19 +5942,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" "Target yang diperiksa: {ph0}edisi peramban turunan Chromium wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Buka lab kecepatan →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Apa yang dilakukan setiap bagian" @@ -5965,7 +5965,7 @@ msgstr "Apa yang dilakukan setiap bagian" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5982,7 +5982,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5999,7 +5999,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6009,13 +6009,13 @@ msgstr "" "{ph0}03 * Kamu{ph1}{ph2}Mengubah kecepatan dan bermain{ph3}{ph4}Coba " "akselerasi asli, lalu pilih kecepatan Anda sendiri.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Lihat skrip, cek, dan cara mencoba analisisnya" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6025,7 +6025,7 @@ msgstr "" "REA memeriksa edisi browser HTTP melalui koneksi debugging lokal dan " "mengembalikan yang dimuat {ph0}, termasuk sumber dan intisarinya." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6039,7 +6039,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6056,7 +6056,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6074,7 +6074,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6083,34 +6083,34 @@ msgstr "" "{ph0}Kode kecepatan yang diperiksa{ph1} · {ph2} Penulis Chromium * Lisensi " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Contoh 02 * Kalkulator Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Buat ulang tombol % Kalkulator." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Reset" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% dari 200 = 20. Kemudian 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Ilustrasi interaktif dari aturan persentase yang diinspeksi." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6122,7 +6122,7 @@ msgstr "Untuk contoh ini, {ph0} dan {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6133,7 +6133,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Gunakan REA untuk memeriksa tombol % Kalkulator Windows. " "Pulihkan aturan setelah + dan × {ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Dengan +" @@ -6141,13 +6141,13 @@ msgstr "Dengan +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Ambil 10% dari angka pertama.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Dengan ×" @@ -6155,13 +6155,13 @@ msgstr "Dengan ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Ubah 10% menjadi 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Dari aplikasi yang diinstal ke tombol % yang berfungsi" @@ -6173,7 +6173,7 @@ msgstr "Dari aplikasi yang diinstal ke tombol % yang berfungsi" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6191,7 +6191,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6203,12 +6203,12 @@ msgstr "" "aturan{ph3}{ph4}Periksa silang cabang dengan sumber Microsoft, lalu coba + " "dan × {ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Lihat kode sebenarnya dan bagaimana jawabannya diperiksa" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6229,7 +6229,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6239,17 +6239,17 @@ msgstr "" "{ph0}Implementasi persentase{ph1} · {ph2}Kasus uji Microsoft{ph3} · " "{ph4}Panduan penyiapan asli{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Investigasi pertamamu" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Coba REA di aplikasi kecil." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6258,17 +6258,17 @@ msgstr "" "Unduh contoh Catatan kami, lacak ekspor CSV - nya, dan periksa satu input " "yang diubah." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Coba contoh terpandu" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Program kode mesin" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6277,17 +6277,17 @@ msgstr "" "Periksa fungsi, string, referensi, dan hubungan pemanggilan fungsi di " "executable dan pustaka." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Analisis panduan program kode mesin" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6296,17 +6296,17 @@ msgstr "" "Modul peta, rute, IPC, dan dependensi asli dari folder aplikasi atau arsip " "ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Alur kerja aplikasi" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Aktivitas browser & waktu proses" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6315,12 +6315,12 @@ msgstr "" "Tangkap browser atau aktivitas proses yang dipilih, lalu bandingkan hasilnya" " di seluruh proses." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Panduan pengamatan browser" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Ada pertanyaan?" @@ -6340,27 +6340,27 @@ msgstr "" "pengkodean Anda. Ikuti panduan yang jelas dan coba contoh interaktif dengan " "REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Salin prompt instalasi REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Salin perintah pengaturan" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Ikuti analisis Kalkulator manual" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Salin pertanyaan persentase Kalkulator" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6369,27 +6369,27 @@ msgstr "" "Mini-game dinosaurus. Gunakan tombol Lompat atau tekan Spasi saat permainan " "difokuskan." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Salin prompt analisis dinosaurus" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Pilih perhitungan" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Salin prompt analisis Kalkulator" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -6398,25 +6398,25 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Rumah{ph1} / {ph2}Menampilkan{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Studi kasus * Pengautentikasi Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Bagaimana cara kerja autentikator{ph0}buat kode masuk?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6426,17 +6426,17 @@ msgstr "" "perhitungan di Android APK, lalu bangun kembali dengan jam yang dapat Anda " "kendalikan." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * Rilis resmi APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Lihat Aegis di GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Dari APK ke kode yang dapat Anda reproduksi" @@ -6447,7 +6447,7 @@ msgstr "Dari APK ke kode yang dapat Anda reproduksi" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6465,7 +6465,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6483,7 +6483,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6495,14 +6495,14 @@ msgstr "" "kodenya.{ph3}{ph4}Demo browser baru mereproduksi aturan dan memeriksanya " "terhadap kasus referensi publik.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Dalam studi kasus ini" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6510,7 +6510,7 @@ msgstr "{ph0}Tanyakan pada agen Anda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6518,7 +6518,7 @@ msgstr "{ph0}Coba pembuat kode{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6526,7 +6526,7 @@ msgstr "{ph0}Temukan kodenya dengan REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6534,7 +6534,7 @@ msgstr "{ph0}Baca perhitungannya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6542,20 +6542,20 @@ msgstr "{ph0}Periksa rekonstruksi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Periksa sendiri APK{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Tanyakan pada agen Anda" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6573,21 +6573,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Agen pengkodean Anda" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Salin" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6597,14 +6597,14 @@ msgstr "" "Contoh prompt untuk APK yang diunduh, dengan analisis Android REA " "dikonfigurasi. {ph0}Dapatkan APK dan pengaturan analisis ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Coba pembuat kode" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6616,33 +6616,33 @@ msgstr "" "menggabungkan nomor blok dengan kunci akun untuk menghasilkan kode. Kunci " "dan blok yang sama menghasilkan kode yang sama." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Pindahkan jam melintasi 60 detik" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Waktu" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "detik" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Jam contoh kami yang dapat disesuaikan" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "blok 30 detik" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Blok" @@ -6651,35 +6651,35 @@ msgstr "Blok" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 detik{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Kode yang dihasilkan" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Kunci akun + blok →" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Contoh waktu, dalam detik" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 detik" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 detik" @@ -6688,7 +6688,7 @@ msgstr "60 detik" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6700,7 +6700,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6710,7 +6710,7 @@ msgstr "" "Kuncinya adalah tetap, publik {ph0}RFC 6238 datasheet{ph1}. Demo " "mengimplementasikan perhitungan yang dipulihkan dari APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6719,18 +6719,18 @@ msgstr "" "Diagram menunjukkan hasilnya pada 59 detik. Aktifkan JavaScript untuk " "mengubah jam." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Temukan kodenya dengan REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Persempit APK menjadi tiga kelas" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6740,14 +6740,14 @@ msgstr "" "{ph0} adalah kandidat perhitungan; dua lainnya menyangkut bilah kemajuan dan" " akun yang diimpor. TOTP berarti kata sandi satu kali berbasis waktu." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Hubungkan generator ke tampilan aplikasi" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6758,7 +6758,7 @@ msgstr "" "metode dasar. Memeriksa {ph0} kemudian menampilkan panggilan tampilan {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6768,14 +6768,14 @@ msgstr "" "Permintaan menunjukkan jalur input yang dipersingkat. Hasil nama kelas " "menghilangkan yang umum {ph0} awalan." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Baca perhitungannya" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6789,7 +6789,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6797,7 +6797,7 @@ msgstr "{ph0}01{ph1} Blok waktu" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6805,7 +6805,7 @@ msgstr "{ph0}02{ph1} Kunci + blok" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6813,7 +6813,7 @@ msgstr "{ph0}03{ph1} Enam digit" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6825,7 +6825,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6839,7 +6839,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6854,7 +6854,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6865,7 +6865,7 @@ msgstr "" "untuk tampilan. Panel kanan adalah ringkasan penjelasan. {ph0} Kode Aegis " "adalah GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Di dalam generator" @@ -6874,7 +6874,7 @@ msgstr "Di dalam generator" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6885,7 +6885,7 @@ msgstr "" "dari {ph2} dan mengembalikan badan ini; sumber aslinya memanggil helper " "{ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6902,20 +6902,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Bandingkan dengan sumber rilis yang cocok{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Periksa rekonstruksi" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6928,29 +6928,29 @@ msgstr "" "pada {ph0}133 kasus uji{ph1}, termasuk batas blok waktu dan kode yang " "dimulai dengan nol." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Contoh waktu" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Kode enam digit" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 detik" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1.111.111.109 detik" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6960,17 +6960,17 @@ msgstr "" "Generator juga cocok dengan enam kasus referensi SHA-1 yang diterbitkan di " "{ph0}RFC 6238{ph1}. Periksa implementasi browser terhadap mereka:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Jalankan pemeriksaan referensi" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Baca perhitungan demo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6979,7 +6979,7 @@ msgstr "" "Kasus referensi menggunakan delapan digit. Cek tersebut juga memverifikasi " "hasil enam digit mereka." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6988,14 +6988,14 @@ msgstr "" "Verifikasi menjalankan metode Java yang diekstraksi dan demo baru. Android " "APK diperiksa secara statis." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Periksa sendiri APK" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7007,7 +7007,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7017,18 +7017,18 @@ msgstr "" "Analisis Android membutuhkan JDK 17 lengkap atau lebih baru. Pilih dengan " "{ph0} atau {ph1}. Kasus ini menggunakan JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Arahkan REA ke file penyedia dan periksa APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7040,7 +7040,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7050,7 +7050,7 @@ msgstr "" "Pertanyaan selanjutnya: {ph0}apa yang terjadi jika akun menggunakan delapan " "digit atau interval waktu yang berbeda?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Sumber" @@ -7066,7 +7066,7 @@ msgstr "Sumber" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7080,13 +7080,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}Kasus referensi RFC 6238{ph1} · {ph2}Data uji demo{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7111,37 +7111,37 @@ msgstr "" "Periksa Aegis Android APK dengan REA, pulihkan perhitungan kode masuk enam " "digitnya, dan coba rekonstruksi dengan jam yang dapat disesuaikan." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Studi kasus Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Salin prompt contoh Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Ikuti perhitungan kode masuk" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Salin perintah inspeksi APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -7150,26 +7150,26 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Rumah{ph1} / {ph2}Menampilkan{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Studi kasus * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Temukan bendera di{ph0}biner KKP." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7180,17 +7180,17 @@ msgstr "" "menjadi persamaan, dan menemukan masukan yang membuat program asli dicetak " "{ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "pemeriksa bendera kotak bertopeng * Mudah * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Lihat tantangan aslinya" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Dari biner ke jawaban yang dicentang" @@ -7201,7 +7201,7 @@ msgstr "Dari biner ke jawaban yang dicentang" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7218,7 +7218,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7236,7 +7236,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7248,7 +7248,7 @@ msgstr "" "{ph3}{ph4}Skrip Python memecahkan persamaan. REA menangkap program asli " "yang menerima hasilnya.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7256,14 +7256,14 @@ msgstr "" "Tantangannya adalah oleh joseph, diterbitkan di repositori resmi " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Dalam studi kasus ini" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7271,7 +7271,7 @@ msgstr "{ph0}Temukan kode pemeriksaan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7279,7 +7279,7 @@ msgstr "{ph0}Baca satu topeng{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7287,7 +7287,7 @@ msgstr "{ph0}Perakitan ke kode yang dapat dibaca{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7295,7 +7295,7 @@ msgstr "{ph0}Selesaikan persamaannya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7303,20 +7303,20 @@ msgstr "{ph0}Periksa jawabannya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Cobalah sendiri{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Temukan kode pemeriksaan" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7334,17 +7334,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Agen pengkodean Anda" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Salin" @@ -7355,7 +7355,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7367,7 +7367,7 @@ msgstr "" " benderanya. Jelaskan cara kerja pemeriksaan, lalu verifikasi jawabannya " "dengan program aslinya.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7376,12 +7376,12 @@ msgstr "" "Contoh prompt, dengan tantangan yang diunduh tersedia secara lokal dan " "analisis penyedia program kode mesin terhubung." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Ikuti prompt input ke fungsinya" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7390,14 +7390,14 @@ msgstr "" "Referensi memberi agen tempat untuk menyelidiki, meskipun nama fungsi asli " "yang dapat dieksekusi telah dihapus." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Baca pemeriksa dan dua pembantunya" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7410,7 +7410,7 @@ msgstr "" "nomor yang disimpan. Nya {ph0}- langkah byte melintasi {ph1} byte memberikan" " 26 topeng." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7419,12 +7419,12 @@ msgstr "" "Ini adalah hasil yang dipilih dari analisis REA baru. Jalur target lokal " "dipersingkat untuk ditampilkan; alamat mengacu pada gambar yang diimpor REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Satu cek mengungkapkan satu karakter" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7437,14 +7437,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" "Pemeriksaan ketujuh hanya memilih satu posisi. {ph0}Sosok terbuka{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Baca topeng dan targetnya dari biner" @@ -7453,7 +7453,7 @@ msgstr "Baca topeng dan targetnya dari biner" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7466,12 +7466,12 @@ msgstr "" "endian. Bersama-sama, byte ini memberi tahu agen bahwa {ph2}, jadi karakter " "itu adalah {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Dari instruksi hingga pemeriksaan yang dapat dibaca" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7482,7 +7482,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7490,7 +7490,7 @@ msgstr "{ph0}01{ph1} Mulai" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7498,7 +7498,7 @@ msgstr "{ph0}02{ph1} Pilih" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7506,7 +7506,7 @@ msgstr "{ph0}03{ph1} Tambahkan" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7514,18 +7514,18 @@ msgstr "{ph0}04{ph1} Maju" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Bandingkan" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * instruksi asli yang dipilih" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Ringkasan satu cek C * yang dapat dibaca" @@ -7533,7 +7533,7 @@ msgstr "Ringkasan satu cek C * yang dapat dibaca" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7542,7 +7542,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7554,7 +7554,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7566,7 +7566,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7580,7 +7580,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7590,7 +7590,7 @@ msgstr "" "{ph0}05 * Bandingkan dengan target yang disimpan.{ph1} Fungsi pemanggil " "menerima jumlah dalam {ph2}. Ketidakcocokan melompat ke {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7599,12 +7599,12 @@ msgstr "" "Instruksi datang dari pembantu penjumlahan dan fungsi pemanggilnya. C adalah" " ringkasan penjelasan dengan nama deskriptif dan loop 36 sel yang diratakan." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Selesaikan 26 persamaan tersebut" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7616,13 +7616,13 @@ msgstr "" "tumpang tindih memberikan persamaan yang dapat diselesaikan bersama oleh " "skrip Python kecil." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * kutipan pemecah" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7636,19 +7636,19 @@ msgstr "" " bendera dengan huruf, angka,garis bawah, dan tanda kurung. Unduhan lengkap " "mencakup semua 26 topeng dan target." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Unduh pemecah lengkap" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Periksa jawabannya dengan program aslinya" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7660,47 +7660,47 @@ msgstr "" "diselesaikan. Mengubah satu karakter yang dipilih dari {ph0} untuk {ph1} " "membuat jumlah pertama 1440, bukan 1441, dan program menolaknya." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Masukan" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Keluaran yang diamati" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Kode keluar" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Bendera pemecah" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Satu karakter berubah" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Tampilkan bendera yang dipulihkan dan keluaran yang diambil" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * keluaran program asli" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Salin bendera" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7709,12 +7709,12 @@ msgstr "" "Nilai yang dipulihkan juga cocok dengan tanda dalam metadata tantangan yang " "diterbitkan penyelenggara, dicentang setelah menyelesaikan biner." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Sumber, identitas target, dan detail analisis" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7725,7 +7725,7 @@ msgstr "" "4.1.0 dengan Ghidra 12.1.4 pada Linux x64. Binernya adalah ELF x86-64 yang " "dilucuti, 15.248 byte." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7748,7 +7748,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7758,12 +7758,12 @@ msgstr "" "{ph0}Bandingkan dengan sumber penyelenggara{ph1} · {ph2}Tantang metadata dan" " bendera{ph3} · {ph4} Catatan bukti REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Cobalah sendiri" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7773,13 +7773,13 @@ msgstr "" "atas untuk menyelidiki dengan agen Anda, atau jalankan skrip yang " "disertakan." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * selesaikan dan jalankan" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7791,7 +7791,7 @@ msgstr "" "kebutuhan Python dan {ph0}. Menjalankan executable asli membutuhkan Linux " "x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Siapkan REA dengan agen pengkodean Anda" @@ -7812,28 +7812,28 @@ msgstr "" "DownUnderCTF. Temukan fungsi pemeriksaan, ekstrak mask, dan bandingkan flag " "yang dipulihkan dengan program asli." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Studi kasus pemeriksa bendera KKP" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Salin permintaan contoh KKP" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" "Persamaan topeng KKP; gulir secara horizontal pada layar yang lebih kecil" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7844,42 +7844,42 @@ msgstr "" " sel itu yang berkontribusi pada jumlah tersebut. Kode karakter yang " "diperlukan adalah 55, yang berarti karakternya adalah 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Ikuti pemeriksaan KKP" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Salin perakitan KKP" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Salin cek KKP yang dapat dibaca" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Salin kutipan pemecah KKP" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Salin bendera yang dipulihkan" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Salin perintah pemecah KKP" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -7888,25 +7888,25 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Rumah{ph1} / {ph2}Menampilkan{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Studi kasus * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Membangun kembali DX-Ball {ph0}dari executable-nya." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7915,14 +7915,14 @@ msgstr "" "Tujuannya adalah versi C yang dapat dipertahankan dari game Windows tahun " "1996. REA membantu agen memeriksa yang asli, satu fungsi pada satu waktu." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7934,14 +7934,14 @@ msgstr "" "instruksi, fungsi pemanggil, dan pembacaan data; proyek rekonstruksi " "mengimplementasikan dan menguji hasilnya. {ph0}Sosok terbuka{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Dalam studi kasus ini" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7949,7 +7949,7 @@ msgstr "{ph0}Proyek ini{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7957,7 +7957,7 @@ msgstr "{ph0}Panci suara{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7965,23 +7965,23 @@ msgstr "{ph0}Memeriksa hasilnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Lanjutkan pekerjaan{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "fungsi C yang dipertahankan" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "perbandingan dengan kode asli" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "fungsi dengan byte terkompilasi yang cocok" @@ -7992,7 +7992,7 @@ msgstr "fungsi dengan byte terkompilasi yang cocok" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8002,12 +8002,12 @@ msgstr "" "Pos pemeriksaan proyek: 7 Oktober 2026. {ph0}Buku besar kemajuan{ph1} · " "{ph2}Cakupan pengujian{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Proyek sejauh ini" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8022,12 +8022,12 @@ msgstr "" " berlanjut dengan fisika bola dan dayung, penanganan power-up, dan integrasi" " Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Menemukan perhitungan posisi suara kiri/kanan" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8046,17 +8046,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Agen pengkodean Anda" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Salin" @@ -8067,7 +8067,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8078,7 +8078,7 @@ msgstr "" "pemosisian suara stereo. Jelaskan perhitungannya dan tunjukkan " "kodenya.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8089,7 +8089,7 @@ msgstr "" "Investigasi di bawah ini menunjukkan pertanyaan REA dan bukti di balik " "jawabannya." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8103,7 +8103,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8117,12 +8117,12 @@ msgstr "" "operasi floating-point. Ketidaksesuaian itu memberi agen alasan konkret " "untuk terus menyelidiki." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Tampilan dekompiler pertama" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8131,18 +8131,18 @@ msgstr "" "Outputnya menunjukkan panggilan konversi. Membaca petunjuk di bawah ini " "mengungkapkan masukan dan perhitungan yang memanggil panggilan itu." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Tiga pertanyaan dijawab melalui REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Pulihkan input yang hilang" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8153,14 +8153,14 @@ msgstr "" "Di sini, {ph0} memperlihatkan input integer yang hilang dari tampilan " "decompiler." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Ikuti fungsi pemanggil untuk memahami masukannya" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8171,12 +8171,12 @@ msgstr "" "instruksi sebelumnya {ph0} sebesar 30; menambahkan 20 memberikan koordinat " "layar bata, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Baca nilai di balik alamat memori" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8185,12 +8185,12 @@ msgstr "" "Byte yang dikembalikan menetapkan dua konstanta aritmatika dan skala pan " "awal. Agen sekarang memiliki nilai yang diperlukan untuk ekspresi C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Dari temuan REA hingga C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8201,7 +8201,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8209,7 +8209,7 @@ msgstr "{ph0}01{ph1} Masukan" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8217,7 +8217,7 @@ msgstr "{ph0}02{ph1} Lipat gandakan" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8225,7 +8225,7 @@ msgstr "{ph0}03{ph1} Kurangi" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8233,18 +8233,18 @@ msgstr "{ph0}04{ph1} Skala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Kembali" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "x86 asli · kutipan" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Direkonstruksi C" @@ -8254,7 +8254,7 @@ msgstr "Direkonstruksi C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8274,7 +8274,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8291,7 +8291,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8309,7 +8309,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8326,7 +8326,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8338,7 +8338,7 @@ msgstr "" "{ph3}, diidentifikasi dalam hasil callee REA. C memberikan hasil ke {ph4}; " "perbandingan original-x86 periksa nilai yang dikembalikan." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8349,23 +8349,23 @@ msgstr "" "Daftar lengkap di bawah ini juga mencakup penyimpanan intervensi dan " "penyiapan serta pembersihan fungsi." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Perakitan lengkap dan bukti pendukung" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "Hasil REA · 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Apa yang disediakan fungsi pemanggil" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8375,54 +8375,54 @@ msgstr "" "Fungsi pukulan bata di {ph0} menskalakan koordinat ubinnya sebesar 30, " "menambahkan 20, lalu mendorongnya sebelum panggilan:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Apa yang dibaca data menetapkan" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "Pembacaan byte REA, diterjemahkan sebagai ganda little-endian" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Alamat" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Nilai" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Digunakan untuk" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Perkalian pertama" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Pengurangan" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} awalnya" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Skala panci tersimpan" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8438,7 +8438,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8448,12 +8448,12 @@ msgstr "" "{ph0}Sumber yang dipelihara{ph1} · {ph2}Catatan investigasi dan referensi " "bukti{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Memeriksa fungsi yang dipulihkan" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8463,12 +8463,12 @@ msgstr "" " dengan aslinya, dan byte yang dikompilasi cocok dengan yang dapat " "dieksekusi." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 kasus perilaku" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8479,12 +8479,12 @@ msgstr "" "pengembaliannya dengan C. Pengujian mencakup setiap posisi bilangan bulat " "dari 0 hingga 640 pada lima skala panci: 0, 0,5, 1, 20, dan -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 byte yang cocok" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8495,7 +8495,7 @@ msgstr "" "kompilator cocok dengan fungsi lengkap setelah menerapkan relokasi yang " "ditinjau dan memeriksa konstanta yang direferensikan." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8510,18 +8510,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Baca detail pemutaran ulang kompiler{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Lanjutkan penyelidikan" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8532,7 +8532,7 @@ msgstr "" "dan pembuatan bonus: periksa fungsi yang relevan, pulihkan status dan " "dependensinya, lalu bandingkan implementasinya dengan aslinya." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8541,7 +8541,7 @@ msgstr "" "Untuk memeriksa sendiri fungsi sound-pan, ikuti petunjuk penyiapan proyek " "DX-Ball dan berikan target aslinya yang sesuai. Lalu lari:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "Dalam checkout DX-Ball" @@ -8550,7 +8550,7 @@ msgstr "Dalam checkout DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8564,7 +8564,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8580,7 +8580,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8605,7 +8605,7 @@ msgstr "" "original-x86 yang dipertahankan, dan pencocokan byte fungsi yang " "dikompilasi." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8613,7 +8613,7 @@ msgstr "" "DX-Ball sound-pan investigation; gulir secara horizontal pada layar yang " "lebih kecil" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8629,70 +8629,70 @@ msgstr "" "x86 asli dalam 3.205 kasus dan oleh replay kompiler VC4. 0 yang cocok dengan" " 63 byte." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Studi kasus rekonstruksi DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Salin contoh prompt" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Ikuti perhitungan posisi suara kiri / kanan" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Salin kutipan perakitan asli" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Salin fungsi panci suara" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Salin rakitan panci suara lengkap" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Salin perintah analisis DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Rumah{ph1} / Menampilkan" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Studi kasus REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8701,17 +8701,17 @@ msgstr "" "Android, game, Electron, dan tantangan KKP, dengan kode, angka, dan hasil " "yang dicentang." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * Analisis APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Cara autentikator membuat kode masuk" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8722,22 +8722,22 @@ msgstr "" "metode pembuatan dengan REA, lalu pindahkan jam demo untuk melihat mengapa " "kode berubah setiap 30 detik." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Baca studi kasus Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "KKP * Analisis program kode mesin" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Selesaikan pemeriksa bendera KKP" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8748,22 +8748,22 @@ msgstr "" "pemeriksaannya, ubah mask dan jumlah menjadi persamaan, lalu verifikasi flag" " yang diselesaikan dengan program aslinya." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Baca studi kasus KKP" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Asli * Rekonstruksi" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Perhitungan posisi suara kiri/kanan DX-Ball" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8775,22 +8775,22 @@ msgstr "" " C kecil, diperiksa terhadap perilaku asli dan semua 63 byte yang " "dikompilasi." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Baca studi kasus DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Penelusuran fitur" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Bagaimana Notion menyalin teks dan HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8801,22 +8801,22 @@ msgstr "" " Ikuti pembungkus IPC-nya ke papan klip sistem, lalu lihat bagaimana penanda" " HTML kecil menyimpan data blok kaya yang terhubung ke salinan." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Baca studi kasus Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Rekonstruksi" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Bagaimana TH04 mengarahkan cincin peluru" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8827,17 +8827,17 @@ msgstr "" "pembagian, dan koordinatnya dengan C++ yang dapat dibaca, lalu lihat " "bagaimana mereka menghasilkan cincin yang ditujukan untuk pemain." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Baca studi kasus TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Panduan langkah demi langkah" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8846,7 +8846,7 @@ msgstr "" "Panduan berjalan melalui perhitungan asli, ekspor Electron, dan permintaan " "browser. Masing-masing dimulai dengan target yang cepat dan konkret." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Baca panduannya" @@ -8865,12 +8865,12 @@ msgstr "" "Ikuti investigasi REA melalui kode, angka, dan demo: autentikator Android, " "DX-Ball , Notion, TH04, dan pemeriksa bendera DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -8879,25 +8879,25 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Rumah{ph1} / {ph2}Menampilkan{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Studi kasus * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Bagaimana salinan Notion{ph0}teks dan HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8906,12 +8906,12 @@ msgstr "" "Lacak panggilan papan klip dari API halaman Notion, melalui proses pramuat " "dan utama, ke penulis papan klip Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 * JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Jembatan di dalam paket desktop Notion" @@ -8923,7 +8923,7 @@ msgstr "Jembatan di dalam paket desktop Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8940,7 +8940,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8957,7 +8957,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8974,7 +8974,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8985,13 +8985,13 @@ msgstr "" " dan HTML yang disediakan.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Satu saluran bergabung dengan kedua sisi: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9001,14 +9001,14 @@ msgstr "" "proses utama. Menyelesaikan pembungkus mengungkapkan panggilan Electron di " "balik nama-nama itu." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Dalam studi kasus ini" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9016,7 +9016,7 @@ msgstr "{ph0}Ikuti jembatan papan klip{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9024,19 +9024,19 @@ msgstr "{ph0}Menjaga struktur blok{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Lebih banyak contoh dan sumber{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Ke mana perginya operasi penyalinan?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9056,17 +9056,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Agen pengkodean Anda" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Salin" @@ -9077,7 +9077,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9088,7 +9088,7 @@ msgstr "" " HTML ke papan klip sistem. Tunjukkan kode pada setiap " "langkah.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9097,12 +9097,12 @@ msgstr "" "Contoh prompt dengan paket aplikasi lokal Notion tersedia untuk agen " "pengkodean Anda." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA menemukan tempat untuk mulai membaca" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9113,13 +9113,13 @@ msgstr "" " dan panggilan yang mengirimkan permintaan IPC. Kedua temuan datang dengan " "rentang sumber dalam bundel yang diperkecil:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "Temuan REA →" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9133,7 +9133,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9147,12 +9147,12 @@ msgstr "" "sesuatu yang tepat untuk dicari di bundel utama. Empat kutipan di bawah ini " "menunjukkan rute yang menghubungkannya." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Empat potongan kode pendek" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9161,13 +9161,13 @@ msgstr "" "Disederhanakan dari JavaScript yang dikemas, dengan nama variabel yang dapat" " dibaca. Anggota yang tidak terkait dihilangkan." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Mulai dari API yang diekspos ke halaman" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9177,13 +9177,13 @@ msgstr "" "Anggota ini menyediakan nama saluran. Implementasi dari {ph0} memberitahu " "kita bagaimana permintaan meninggalkan proses halaman." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Selesaikan pembungkus pramuat" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9193,14 +9193,14 @@ msgstr "" "Fungsi yang dikembalikan meneruskan argumen melalui IPC request-and-respons " "Electron. Sekarang kita bisa mencari {ph0} di sisi proses utama." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Periksa bagaimana penerima didaftarkan" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9210,12 +9210,12 @@ msgstr "" "Proses utama menggunakan pembungkus lain. Nya {ph0} metode mendaftarkan " "sebuah {ph1} penerima untuk saluran tersebut." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Temukan tulisan dan cek pengirimnya" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9226,13 +9226,13 @@ msgstr "" "yang disediakan ke API papan klip Electron. Saluran dan dua pembungkus yang " "diselesaikan menghubungkan metode yang diekspos ke panggilan ini." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Bagaimana blok yang disalin mempertahankan strukturnya?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9243,27 +9243,27 @@ msgstr "" "data blok secara lokal dan menempatkan ID di HTML yang disalin untuk " "menghubungkannya." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Tautan HTML ke data blok yang disimpan" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Baca ID HTML-nya" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Temukan ID lokal yang sama" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Pulihkan data blok Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9272,7 +9272,7 @@ msgstr "" "Teks ilustrasi dan ID. Pengujian modul yang direkam mengembalikan data blok " "saat ID cocok; entri basi hanya mengembalikan teks dan HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9281,23 +9281,23 @@ msgstr "" "Saat menempel, Notion mencari ID HTML dan memeriksanya terhadap salinan yang" " disimpan. ID yang cocok mengembalikan data blok." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Format papan klip direkam dari aset web yang di-cache pada 13 Juli 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Lebih banyak contoh dan sumber" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Contoh lain: Tabel penurunan harga" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9306,12 +9306,12 @@ msgstr "" "Notion mem-parsing Penurunan harga menjadi data blok. Contoh ini menunjukkan" " bagaimana tabel menjadi header dan baris data." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Tabel melalui parser penurunan harga Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9320,13 +9320,13 @@ msgstr "" "Output yang direkam dari parser Penurunan harga yang diekstraksi. Tabel " "menjadi baris dan sel." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Jalur lain: koneksi SQLite offline" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9340,7 +9340,7 @@ msgstr "" "utilitas SQLite. Kumpulan pernyataan dan hasil selanjutnya melewati port " "tersebut." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9350,7 +9350,7 @@ msgstr "" " mengapa hanya melacak permintaan IPC awal yang melewatkan percakapan " "selanjutnya." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Sumber dan cara membaca kutipannya" @@ -9358,7 +9358,7 @@ msgstr "Sumber dan cara membaca kutipannya" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9376,7 +9376,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9392,7 +9392,7 @@ msgstr "" "modul yang diekstraksi dan harness kecil; keluarannya menggambarkan probe " "tersebut daripada sesi UI desktop yang diambil." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9406,7 +9406,7 @@ msgstr "" "cocok dihubungkan dengan membaca implementasi pembungkusnya dalam paket." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9424,7 +9424,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9438,7 +9438,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9464,52 +9464,52 @@ msgstr "" "proses utama, dengan kutipan kode pendek dan tampilan format papan klip yang" " kaya." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Studi kasus Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Salin prompt analisis Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Salin kutipan pramuat Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Salin kutipan pembungkus pemanggilan Notion" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Salin kutipan pembungkus penangan Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Salin kutipan penerima papan klip Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Memulihkan data papan klip yang kaya saat ditempel" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Kembali ke atas" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -9518,25 +9518,25 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Rumah{ph1} / {ph2}Menampilkan{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Studi kasus * Touhou 4: Kisah Tanah Teratai" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Merekonstruksi TH04{ph0}pola peluru." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9546,17 +9546,17 @@ msgstr "" "memeriksa fungsi DOS asli, lalu ikuti instruksinya ke dalam C++yang dapat " "dibaca." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * DOS 16-bit * C++ dan perakitan" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Lihat rekonstruksi TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Dari instruksi asli hingga sumber yang dicentang" @@ -9567,7 +9567,7 @@ msgstr "Dari instruksi asli hingga sumber yang dicentang" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9583,7 +9583,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9601,7 +9601,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9617,7 +9617,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9629,7 +9629,7 @@ msgstr "" "cocok{ph3}{ph4}Pemeriksaan kompilator yang direkam mencakup kode pembuatan " "peluru yang berisi pembantu ini.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9638,14 +9638,14 @@ msgstr "" "REA mengembalikan kode asli dan bukti analisisnya. Proyek TH04 menyediakan " "pemeriksaan sumber dan kompiler yang dipelihara." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Dalam studi kasus ini" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9653,7 +9653,7 @@ msgstr "{ph0}Cincin peluru{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9661,7 +9661,7 @@ msgstr "{ph0}Apa yang dikembalikan REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9669,7 +9669,7 @@ msgstr "{ph0}Perakitan ke C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9677,18 +9677,18 @@ msgstr "{ph0}Memeriksa sumbernya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Proyek lengkap{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Bagaimana sebuah cincin mengincar pemain" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9707,16 +9707,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Agen pengkodean Anda" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Salin" @@ -9727,7 +9727,7 @@ msgstr "Salin" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9738,7 +9738,7 @@ msgstr "" "peluru dan mengarahkannya ke pemain. Jelaskan perhitungannya dan tunjukkan " "kodenya.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9748,7 +9748,7 @@ msgstr "" "secara lokal." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9762,7 +9762,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9772,12 +9772,12 @@ msgstr "" "Ilustrasi matematika sudut yang dipulihkan untuk hitungan 16, arah pemain " "40, dan rotasi templat 0. {ph0}Sosok terbuka{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Templat penembakan di sumber yang dipulihkan" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Serangan cincin Elly * kutipan sumber" @@ -9786,7 +9786,7 @@ msgstr "Serangan cincin Elly * kutipan sumber" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9796,13 +9796,13 @@ msgstr "" "Garis-garis ini memilih pola sebelum tingkat kesulitan dan penyetelan " "kinerja. {ph0}Baca sumber serangan itu{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Apa yang dikembalikan REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9814,12 +9814,12 @@ msgstr "" "peluru. REA mengembalikan instruksi, pseudocode, dan referensinya. Tiga " "bagian dari hasil itu menjelaskan polanya." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Periksa gambar DOS sebelum membaca kodenya" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9828,7 +9828,7 @@ msgstr "" "Pemeriksaan mengikat kode yang dimuat dan catatan relokasi ke executable " "yang disediakan. Jalur di atas dipersingkat untuk tampilan." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Baca perkalian dan pembagian cincin" @@ -9836,7 +9836,7 @@ msgstr "Baca perkalian dan pembagian cincin" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9848,12 +9848,12 @@ msgstr "" "pembagian menggunakan hitungan yang dibaca dari {ph1}. Nama sumber yang " "dipertahankan bidang itu {ph2}. Urutan lengkapnya muncul di bawah ini." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Temukan di mana polanya mengarah ke pemain" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9866,12 +9866,12 @@ msgstr "" "alamat tersebut dapat dibaca; REA memungkinkan agen memeriksa operasi asli " "di belakangnya." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Dari perakitan ke C++yang dapat dibaca" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9884,7 +9884,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9892,7 +9892,7 @@ msgstr "{ph0}01{ph1} Indeks" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9900,7 +9900,7 @@ msgstr "{ph0}02{ph1} Ruang" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9908,7 +9908,7 @@ msgstr "{ph0}03{ph1} Tujuan" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9916,18 +9916,18 @@ msgstr "{ph0}04{ph1} Putar" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Toko" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * instruksi 16-bit asli" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "C++ yang dapat dibaca * ringkasan aimed-ring" @@ -9935,7 +9935,7 @@ msgstr "C++ yang dapat dibaca * ringkasan aimed-ring" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9949,7 +9949,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9965,7 +9965,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9980,7 +9980,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9995,7 +9995,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10009,7 +10009,7 @@ msgstr "" "oleh pemeran unsigned-byte. Sumber di sekitarnya juga mengubah sudut dan " "kecepatan ini menjadi kecepatan." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10020,7 +10020,7 @@ msgstr "" "C++ di atas adalah ringkasan yang dapat dibaca. Pemeriksaan kompiler di " "bawah ini berlaku untuk sumber yang dipelihara dalam proyek tertaut." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Baca sumber ring dan aim yang dipelihara" @@ -10037,7 +10037,7 @@ msgstr "Baca sumber ring dan aim yang dipelihara" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10047,12 +10047,12 @@ msgstr "" "{ph0}Ring makro{ph1} · {ph2}Tujuan dan sumber kecepatan{ph3} · " "{ph4}Representasi sudut{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Memeriksa sumber yang dipelihara" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10061,12 +10061,12 @@ msgstr "" "Pemeriksaan terekam proyek TH04 mengkompilasi kode pembuatan peluru, " "termasuk pembantu ini, dengan rantai alat Turbo C++ 4.0 J yang disematkan." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2.139 byte yang cocok" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10075,12 +10075,12 @@ msgstr "" "Kode pembuatan peluru yang dikompilasi cocok dengan bagian 2.139 byte dari " "executable asli." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Dua bangunan bersih" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10093,65 +10093,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "Direkam pada 3 Oktober 2026. {ph0}Baca pemeriksaan kompilator{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Identitas target dan ruang lingkup analisis" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Target asli" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156.258 byte, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Entri pembantu" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} dalam gambar yang dimuat REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Offset berkas asli" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, dikembalikan oleh {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Pemeriksaan kode yang direkam" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 Oktober 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10162,7 +10162,7 @@ msgstr "" " tumpang tindih." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10177,7 +10177,7 @@ msgstr "" "terletak pada rentang yang dilaporkan tersebut." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10193,7 +10193,7 @@ msgstr "" "yang sama. Identitas game yang disediakan disematkan oleh manifes " "repositorinya, dengan asal pristine-dump independen masih terbuka." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10204,12 +10204,12 @@ msgstr "" "lengkap, pengaturan waktu, dan perilaku perangkat keras PC-98 memiliki " "pemeriksaan runtime terpisah dalam proyek rekonstruksi." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Rekonstruksi lengkap TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10222,7 +10222,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10234,7 +10234,7 @@ msgstr "{ph0}Jelajahi repositori TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10250,7 +10250,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10266,7 +10266,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10292,22 +10292,22 @@ msgstr "" "C++ untuk melihat bagaimana cincin peluru ditempatkan dan diarahkan ke " "pemain." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Studi kasus pola peluru TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Salin prompt contoh TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10315,7 +10315,7 @@ msgstr "" "TH04 memperbaiki dan mengarahkan cincin peluru; gulir secara horizontal pada" " layar yang lebih kecil" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10328,27 +10328,27 @@ msgstr "" "sama; poin-poin pertama yang disorot mengarah ke pemain. Keduanya menjaga " "jarak 16 unit sudut, atau 22,5 derajat." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Salin templat penembakan TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Ikuti perhitungan cincin bertujuan TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Salin kutipan perakitan TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Salin perhitungan aimed-ring yang dapat dibaca" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Kembali ke atas" @@ -10829,597 +10829,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Jarak yang sama: 256 ÷ 16 = 16 satuan sudut = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Studi kasus" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Mulai" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Panduan" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Kode sumber" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Lisensi MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Gabung komunitas" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Ikuti di X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * sumber skrip yang dipilih" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Kode sumber" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Keluaran formatter yang diharapkan" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Instruksi" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Fungsi pemanggil" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Konstanta" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Fungsi C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Tombol" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "Preload API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Berkas CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Klik Anda" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Permintaan yang ditangkap" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Skrip ekspor" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "Hasil REA * ringkasan.kutipan ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Kutipan instruksi REA · 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "Kutipan fungsi pemanggil REA · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Hasil byte REA * ditafsirkan sebagai ganda little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Kutipan C · yang dipulihkan" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Menampilkan →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Pengaturan yang dipilih dari skrip yang diinspeksi" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Ringkasan yang dapat dibaca dari % handler" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * instruksi asli yang dipilih" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "ID Operator * Sumber Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA →" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → agen * metode dan fungsi pemanggil" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * Java yang didekompilasi yang dipilih" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Ringkasan yang dapat dibaca * interpretasi agen" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, isi lengkap" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Unduh Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Unduh penyedia analisis Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA →" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agen * instruksi yang dipilih" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agen → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA →" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Eksekusi asli * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Unduh tantangan asli" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Unduh pemecah" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Hasil REA * kutipan pseudocode" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA excerpt agen · kutipan instruksi" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA excerpt agen · kutipan fungsi pemanggil" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agen → REA * dua {ph0} permintaan" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Hasil byte REA * diterjemahkan sebagai ganda" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Mulailah dengan target Anda sendiri" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Menghasilkan kode" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Aturan yang dipulihkan" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Jam yang dapat disesuaikan" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Biner" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Memeriksa kode" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Persamaan" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Benar!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Dapat dieksekusi" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Temuan REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Dipulihkan C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Validasi" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Aplikasi yang dikemas" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Exposed API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC wrappers" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Papan klip" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Kode DOS asli" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Instruksi REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Perhitungan sudut" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Cincin peluru" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Exposed page API" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Panggilan IPC perender" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Dikirim ke papan klip sistem" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Disimpan secara lokal oleh Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Masukan penurunan harga" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Keluaran parser terstruktur · kutipan" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analisis aplikasi Anda sendiri" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA →" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA excerpt agen · kutipan instruksi" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Hasil fungsi yang sama * kutipan tujuan" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "C++yang dipertahankan sesuai" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Makro cincin * cabang TH04, kutipan" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Sudut dan kecepatan * kutipan sumber" @@ -11453,7 +11453,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11471,7 +11471,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11492,7 +11492,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11513,7 +11513,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11532,7 +11532,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11545,14 +11545,14 @@ msgstr "" "menjalankannya. Setelah itu, verifikasi pemasangan.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Rekonstruksi · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11563,7 +11563,7 @@ msgstr "" "Anda, dan tinjau perubahan yang diusulkan." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11572,7 +11572,7 @@ msgstr "Contoh yang disediakan · {ph0} dan npm · Agen pengkodean Anda" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11591,7 +11591,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11606,7 +11606,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11625,7 +11625,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11636,7 +11636,7 @@ msgstr "" " {ph7} dan menulis file tersebut.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11651,7 +11651,7 @@ msgstr "{ph0} * baris 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11664,7 +11664,7 @@ msgstr "" "Tampilkan prediksi dan keluaran aktual.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11676,17 +11676,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Anda akan membutuhkan {ph0} 22 (22.23.4+), 24 (24.22.1+) atau 26+ (>=26.12.1). npm hadir " -"dengan {ph1}." +"Anda akan membutuhkan {ph0} 22 (22.23.4+), 24 (24.22.1+) atau 26+ " +"(>=26.12.1). npm hadir dengan {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11694,20 +11695,20 @@ msgstr "Tidak memiliki {ph0}, atau tidak yakin?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Jika {ph0} menampilkan v22.23.4+, v24.22.1+, atau v26.12.1+, kamu sudah siap. Jika " -"menampilkan versi lebih lama atau \"not recognized\" / \"command not " -"found\", instal {ph1} 24 LTS:" +"Jika {ph0} menampilkan v22.23.4+, v24.22.1+, atau v26.12.1+, kamu sudah " +"siap. Jika menampilkan versi lebih lama atau \"not recognized\" / \"command " +"not found\", instal {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11721,7 +11722,7 @@ msgstr "{ph0} · contoh kutipan sumber" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11731,9 +11732,9 @@ msgstr "" "{ph0}Buka contohnya{ph1} · {ph2}Unduh {ph3}{ph4} · {ph5}Unduh {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11741,7 +11742,7 @@ msgstr "{ph0} * contoh sumber" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11755,7 +11756,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11772,7 +11773,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11783,7 +11784,7 @@ msgstr "" "{ph3} menghasilkan 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11797,7 +11798,7 @@ msgstr "REA * dimuat {ph0} * baris yang dipilih" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11816,7 +11817,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11829,28 +11830,28 @@ msgstr "" "memungkinkan saya mengubah waktu.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * Anggota API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * Pembantu IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "utama/{ph0} * pembantu penangan" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11869,7 +11870,7 @@ msgstr "Beralih ke mode gelap" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11885,18 +11886,18 @@ msgstr "" "Anda." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Model khusus{ph0}Esai" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Apakah rekayasa balik membutuhkan model yang lebih besar?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11905,12 +11906,12 @@ msgstr "" "Pelajaran dari rekonstruksi Touhou tentang model umum, model khusus, dan " "pembelajaran dari umpan balik kompiler." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Oleh N0zoM1z0 · 13 Oktober 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Lewati ke konten" @@ -11919,37 +11920,37 @@ msgstr "Lewati ke konten" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Beranda{ph1} / {ph2}Blog{ph3} / Model dan rekayasa balik" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Esai" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Apakah rekayasa balik memerlukan model yang lebih besar?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Oleh N0zoM1z0 · 13 Oktober 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Poin utama" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11962,7 +11963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11975,7 +11976,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11988,7 +11989,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12001,7 +12002,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12011,14 +12012,14 @@ msgstr "" "{ph0}Evaluasi hasil rekonstruksi terverifikasi beserta waktu dan biaya.{ph1}" " Itulah yang ingin saya ukur untuk alur kerja agen AI yang lengkap." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Dalam artikel ini" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12026,7 +12027,7 @@ msgstr "{ph0}Apa yang berubah dengan model yang lebih kuat?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12034,7 +12035,7 @@ msgstr "{ph0}Mengapa mengambil spesialisasi?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12042,7 +12043,7 @@ msgstr "{ph0}Di mana pengalaman ini harus disimpan?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12050,7 +12051,7 @@ msgstr "{ph0}Pelajari eksperimen bermanfaat berikutnya{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12058,7 +12059,7 @@ msgstr "{ph0}Pembelajaran rekayasa balik dan penguatan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12066,7 +12067,7 @@ msgstr "{ph0}Ketika pemeriksa salah{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12074,18 +12075,18 @@ msgstr "{ph0}Sebuah perbandingan yang layak untuk dijalankan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Agen AI macam apa yang disarankan di sini?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Apa yang berubah dengan model yang lebih kuat?" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12101,7 +12102,7 @@ msgstr "" "repositori menyimpan catatan tentang apa yang berhasil dipulihkan oleh " "setiap sesi." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12116,12 +12117,12 @@ msgstr "" "terhenti, perubahan sumber menunjukkan apa yang memungkinkan kemajuan " "tersebut." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Variabel sementara membutuhkan masa hidup yang tumpang tindih" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12142,7 +12143,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12156,7 +12157,7 @@ msgstr "" "memeriksa masalahnya lagi{ph3}, ia mengajukan hipotesis yang berguna tentang" " masa hidup variabel-variabel sementara ini." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12173,7 +12174,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12188,7 +12189,7 @@ msgstr "" " yang ditargetkan, {ph0}kompilasi ulang yang bersih dari sumber " "mengonfirmasi bahwa seluruh fungsi cocok{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12200,7 +12201,7 @@ msgstr "" "baru bagi agen AI. Umpan balik dari kompiler membantunya menyempurnakan " "hipotesis tersebut menjadi susunan kode sumber yang cocok." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Grafik aliran kontrol yang berbeda" @@ -12209,7 +12210,7 @@ msgstr "Grafik aliran kontrol yang berbeda" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12232,7 +12233,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12250,7 +12251,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12265,7 +12266,7 @@ msgstr "" "waktu yang lama sebelum menemukan cara yang lebih baik untuk mengekspresikan" " pekerjaan di sekitarnya." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12280,7 +12281,7 @@ msgstr "" "pemeriksaannya; perbandingan terkontrol akan membantu memisahkan pengaruh " "model dari pengalaman yang diwarisinya." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12296,12 +12297,12 @@ msgstr "" "penalaran yang luas? Berapa banyak yang dapat dipelajari suatu model dengan " "bekerja berulang kali menggunakan compiler dan kode tersebut?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Mengapa model AI khusus dapat berfungsi dengan baik?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12316,7 +12317,7 @@ msgstr "" "mendukung hal tersebut dengan contoh-contoh yang berguna: loop terkait dan " "pengaturan pembantu telah memberikan hipotesis di seluruh game." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12336,7 +12337,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12353,7 +12354,7 @@ msgstr "" "menunjukkan hipotesis yang lebih menjanjikan untuk {ph2}merekonstruksi " "{ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12363,7 +12364,7 @@ msgstr "" "tata letak yang diperlukan tanpa menambahkan penyimpanan. Fungsi penuh " "kemudian dicocokkan." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12375,7 +12376,7 @@ msgstr "" "dikhususkan untuk kompiler ini dapat melihat banyak kasus seperti itu dan " "mempelajari variasi kode sumber mana yang layak untuk diuji terlebih dahulu." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12395,7 +12396,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12416,14 +12417,14 @@ msgstr "" "tahu kita apakah target tersebut berlaku. Model khusus perlu membedakan " "konteks-konteks ini." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Di mana pengalaman ini harus disimpan?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12439,7 +12440,7 @@ msgstr "" " kerja proyek. Memori tersebut mencakup pelajaran kompiler, beserta " "sumbernya dan eksperimen gagal yang menjadikannya berguna." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12456,7 +12457,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12474,7 +12475,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12491,7 +12492,7 @@ msgstr "" "model harus memutuskan apa arti hasil tersebut untuk percobaan berikutnya. " "Mengetahui pola yang relevan hanyalah awal dari proses itu." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12505,12 +12506,12 @@ msgstr "" "saja yang ditambahkan oleh pelatihan: perolehan kandidat yang lebih baik, " "keputusan yang lebih baik setelah adanya masukan, atau keduanya." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Pelajari eksperimen bermanfaat berikutnya" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12524,7 +12525,7 @@ msgstr "" "hasilnya dapat mempersempit kemungkinan yang tersisa dan menyarankan " "percobaan berikutnya yang lebih berguna." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12537,32 +12538,32 @@ msgstr "" "informasi. Setiap eksperimen berikut membantu mengidentifikasi apa yang " "masih perlu diubah." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Eksperimen" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Apa yang diajarkan hasilnya kepada kita" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Coba cara lain untuk menyalin hasilnya" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Kode copynya berubah, tapi fungsinya tetap berbeda." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Gunakan nilai yang dikembalikan secara langsung" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12570,12 +12571,12 @@ msgstr "" "Penyalinan mengikuti pola aslinya, namun penyimpanan sementara tetap " "berbeda." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Jaga agar semua variabel sementara tetap valid pada waktu yang sama" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12584,19 +12585,19 @@ msgstr "" "Mereka mendapatkan penyimpanan terpisah, namun masih tumpang tindih dengan " "nilai yang digunakan nanti untuk pemeriksaan tabrakan." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Pisahkan nilai pemeriksaan tabrakan" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Kompilasi ulang yang bersih dari sumber mengonfirmasi kecocokan yang " "lengkap." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12605,7 +12606,7 @@ msgstr "" "Eksperimen yang dipilih dari rekonstruksi fungsi serangan di atas, " "dikelompokkan berdasarkan apa yang diajarkannya kepada kita." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12621,7 +12622,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12636,7 +12637,7 @@ msgstr "" " lagi bersifat informatif, agen harus dapat mengunjungi kembali representasi" " sumber atau memeriksa bukti lagi." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12650,12 +12651,12 @@ msgstr "" "akan menghilangkan pilihan tersebut, bersama dengan bagian dari perilaku " "yang kita ingin model pelajari." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Mengapa rekayasa balik menarik untuk pembelajaran penguatan" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12669,7 +12670,7 @@ msgstr "" "diulang. Agen bisa mengompilasi kandidat, memeriksa perbedaan, lalu memilih " "langkah berikutnya." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12687,7 +12688,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12709,7 +12710,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12726,7 +12727,7 @@ msgstr "" "penghitungan floating-point{ph1}. Sebelum agen dapat menguji koreksi yang " "berguna, agen harus menentukan apa yang diukur." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12738,12 +12739,12 @@ msgstr "" "dilakukan, kami dapat menyelidiki sejauh mana kebijakan penelusuran yang " "dipelajari dapat diterapkan." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Ketika pemeriksa salah" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12755,7 +12756,7 @@ msgstr "" " Bahkan jawaban yang dapat diulang harus dipahami berdasarkan apa yang " "benar-benar diperiksanya." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12779,7 +12780,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12794,7 +12795,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12811,7 +12812,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12828,7 +12829,7 @@ msgstr "" " Demikian pula, kecocokan instruksi harus dipahami dalam kaitannya dengan " "byte dan data yang diverifikasi." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12846,7 +12847,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12859,12 +12860,12 @@ msgstr "" "mengoptimalkan umpan balik yang kita berikan, semakin penting memahami umpan" " balik itu sendiri." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Sebuah perbandingan yang layak untuk dijalankan" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12880,7 +12881,7 @@ msgstr "" "apa. Dari sana, spesialisasi yang diawasi dan versi terlatih RL akan " "memungkinkan kita memeriksa apa saja yang ditambahkan dalam pelatihan." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12894,7 +12895,7 @@ msgstr "" "akan membantu membedakan strategi pencarian yang andal dari kandidat solusi " "yang berhasil secara kebetulan." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12910,7 +12911,7 @@ msgstr "" "untuk mencapainya. Mengukurnya secara terpisah akan mengungkapkan pembagian " "kerja tersebut." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12925,7 +12926,7 @@ msgstr "" "yang terkait, dan memastikan jawaban terverifikasinya tidak masuk ke data " "pelatihan ataupun pustaka retrieval." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12941,7 +12942,7 @@ msgstr "" "kualitas tersebut menghasilkan alur kerja yang efisien. Biaya pelatihan " "harus diukur secara terpisah." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12959,7 +12960,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12981,7 +12982,7 @@ msgstr "" "semacam itu dapat memandu eksperimen berikutnya, namun saya akan memvalidasi" " imbalan apa pun karena \"mendekati\" dengan pemeriksaan penerimaan penuh." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12997,12 +12998,12 @@ msgstr "" "ditambahkan oleh pelatihan? Jawabannya akan membantu kita memutuskan model " "mana yang paling berguna." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Agen AI macam apa yang disarankan di sini?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13018,7 +13019,7 @@ msgstr "" " tidak masuk akal, agen yang lebih luas dapat kembali ke bukti target atau " "menyelidiki pengukuran itu sendiri." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13029,7 +13030,7 @@ msgstr "" " seiring berkembangnya penyelidikan. Agen mempunyai kebebasan untuk mengubah" " arah yang memungkinkan terobosan sebelumnya." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13043,7 +13044,7 @@ msgstr "" "keputusan mana yang memerlukan pertimbangan luas dan mana yang ditingkatkan " "melalui pengalaman berulang-ulang dengan bidang tertentu." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13060,7 +13061,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13071,12 +13072,12 @@ msgstr "" "Saya ingin menggunakan data tersebut untuk membuat perbandingan dan melihat " "apa yang kita pelajari." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Bukti dan atribusi model" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13090,7 +13091,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13117,7 +13118,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13142,7 +13143,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13167,7 +13168,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13193,7 +13194,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13205,7 +13206,7 @@ msgstr "" "point{ph3}, {ph4}TH08 investigasi numerik{ph5} dan {ph6}TH09 rekonstruksi " "penyimpanan ulangan{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13231,22 +13232,22 @@ msgstr "" "khusus, dan cara belajar mengajukan hipotesis yang lebih baik melalui umpan " "balik kompiler." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Di halaman ini" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Model dan esai rekayasa balik" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Eksperimen rekonstruksi yang dipilih" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Kembali ke atas" @@ -13255,7 +13256,7 @@ msgstr "Kembali ke atas" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13267,68 +13268,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Studi kasus{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Studi kasus REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * Analisis APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Cara autentikator membuat kode masuk" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Baca studi kasus Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Penelusuran fitur" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Bagaimana Notion menyalin teks dan HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Baca studi kasus Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Asli * Rekonstruksi" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "Perhitungan posisi suara kiri/kanan DX-Ball" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Baca studi kasus DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Opsi pengaturan" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13339,7 +13340,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13351,7 +13352,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13359,7 +13360,7 @@ msgstr "{ph0}1. Siapkan komputermu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13367,7 +13368,7 @@ msgstr "{ph0}2. Pilih agen{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13375,7 +13376,7 @@ msgstr "{ph0}3. Hubungkan REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13383,18 +13384,18 @@ msgstr "{ph0}4. Coba penyelidikan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Target dan penyedia analisis lainnya{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Siapkan komputermu" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13403,7 +13404,7 @@ msgstr "" "Gunakan komputer tempat berkas target disimpan. Agen pemrograman lokal bisa " "membaca berkas itu dan menjalankan alat untukmu." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13414,7 +13415,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13425,7 +13426,7 @@ msgstr "{ph0}Unduh penginstal Node.js{ph1} jika winget tidak tersedia." #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13436,17 +13437,17 @@ msgstr "" " system\"{ph1} saat kamu menjalankan {ph2}, gunakan {ph3} sebagai gantinya. " "Untuk npm, gunakan {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Buat folder kerja untuk agenmu" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "Di terminal, buat folder untuk latihan ini lalu masuk ke dalamnya:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13455,12 +13456,12 @@ msgstr "" "Biarkan terminal ini terbuka untuk langkah berikutnya. Jika sudah punya " "folder kerja, buka folder itu saja." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Pilih agen pemrograman" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13470,12 +13471,12 @@ msgstr "" "yang digunakannya. Pilih satu aplikasi di bawah; buka petunjuknya jika belum" " pernah menggunakannya." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · gunakan akun ChatGPT-mu" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13486,39 +13487,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Instalasi Codex dan masuk akun{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf, atau VS Code · gunakan editor" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Instal editor untuk sistem operasimu dan masuk ke akun." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Buka folder rea-work yang kamu buat pada langkah 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · gunakan akun Claude-mu" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Instal dengan perintah untuk sistem operasimu:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13532,13 +13533,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Instalasi Claude Code dan pilihan akun{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · gunakan aplikasi percakapan desktop" @@ -13548,7 +13549,7 @@ msgstr "Claude Desktop · gunakan aplikasi percakapan desktop" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13559,7 +13560,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13571,19 +13572,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Instalasi OpenCode dan penyiapan model{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Semua aplikasi yang didukung dan ID penyiapannya" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13593,12 +13594,12 @@ msgstr "" "Rilis npm 6.4.0 mendukung aplikasi di bawah. Gunakan ID bersama {ph0} saat " "memilih aplikasi secara eksplisit." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Aplikasi" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID penyiapan" @@ -13608,7 +13609,7 @@ msgstr "ID penyiapan" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13627,7 +13628,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13637,13 +13638,13 @@ msgstr "" "{ph0}Konfigurasi aplikasi dan pemecahan masalah{ph1} · {ph2}Ketersediaan " "dalam rilis{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · hubungkan di komputer tempat Bot dihosting" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13656,29 +13657,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Petunjuk konektor Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Hubungkan REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Tempel prompt ini ke agen pemrograman Anda:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Untuk satu aplikasi tertentu, tambahkan ID penyiapannya:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13690,7 +13691,7 @@ msgstr "" "daftar aplikasi REA, gunakan tombol panah untuk berpindah, Space untuk " "memilih aplikasi, dan Enter untuk melanjutkan." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13699,7 +13700,7 @@ msgstr "" "MCP adalah koneksi yang memungkinkan agen memanggil REA. Skill memberinya " "alur kerja untuk menyelidiki perangkat lunak." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13710,7 +13711,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13720,21 +13721,21 @@ msgstr "" "Ganti {ph0} dengan ID penyiapan aplikasimu. Pemeriksaan yang berhasil " "melaporkan {ph1}. Lalu minta agenmu:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Periksa bahwa REA sudah terhubung dan tunjukkan alat REA yang bisa kamu " "gunakan." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Coba penyelidikan pertamamu" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13746,7 +13747,7 @@ msgstr "" " tombol. Agen Anda dapat memeriksa kodenya tanpa menginstal atau meluncurkan" " Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Agen pemrogramanmu" @@ -13760,7 +13761,7 @@ msgstr "Agen pemrogramanmu" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13774,7 +13775,7 @@ msgstr "" "catatan. Tunjukkan dimana {ph4} ditulis, bidang mana yang dikandungnya, dan " "file serta baris yang relevan.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Cari penjelasan singkat dengan referensi file dan baris:" @@ -13783,7 +13784,7 @@ msgstr "Cari penjelasan singkat dengan referensi file dan baris:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13797,13 +13798,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Uji sebuah prediksi dalam latihan terpandu →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Unduh sendiri contoh ini atau gunakan aplikasimu" @@ -13811,14 +13812,14 @@ msgstr "Unduh sendiri contoh ini atau gunakan aplikasimu" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Unduh contoh ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13829,7 +13830,7 @@ msgstr "" "Berikan jalan ke {ph0} folder dan pertanyaan ekspor yang sama." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13839,12 +13840,12 @@ msgstr "" "Gunakan REA untuk memeriksa aplikasi di {ph0}. Cari tahu bagaimana aplikasi " "mengekspor data dan tunjukkan berkas serta baris yang terkait." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Analisis jenis perangkat lunak lain" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13853,12 +13854,12 @@ msgstr "" "Pilih bagian untuk targetmu. Penyedia analisis adalah alat lokal yang " "digunakan REA untuk jenis perangkat lunak tersebut." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Program dan pustaka native · Hopper, Ghidra, atau IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13867,47 +13868,47 @@ msgstr "" "Instal satu alat analisis di komputer yang menjalankan REA. Host adalah " "sistem operasimu; target adalah program yang ingin kamu periksa." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Penyedia analisis" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Tidak tersedia" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Distribusi yang didukung" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · eksperimental" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Profil yang sudah diverifikasi" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Profil tanpa antarmuka grafis yang sudah diverifikasi" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Lihat panduan penyedia analisis" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · biarkan penyiapan menginstal atau menghubungkannya" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13919,7 +13920,7 @@ msgstr "" "dibuka. Di Linux, penyiapan menyiapkan demo yang didukung beserta tampilan " "privatnya." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13929,7 +13930,7 @@ msgstr "" " Omarchy. Hopper adalah perangkat lunak komersial; demonya memiliki batas " "yang ditentukan vendor." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13942,18 +13943,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Penyiapan Hopper dan pemecahan masalah{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · instal alat analisis gratis dan Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13963,7 +13964,7 @@ msgstr "" "paket yang sesuai dengan arsitektur komputermu." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13976,7 +13977,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13992,7 +13993,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14000,7 +14001,7 @@ msgstr "{ph0}Unduh JDK{ph1} · {ph2}Unduh Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14010,7 +14011,7 @@ msgstr "" "Periksa Java. Perintah pertama menampilkan {ph0}; gunakan folder itu untuk " "{ph1}. Perintah kedua memastikan kompiler sudah terinstal:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14028,7 +14029,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14038,12 +14039,12 @@ msgstr "" "{ph0}Penyiapan Ghidra dan kebutuhan arsitektur{ph1} · {ph2}Panduan Ghidra " "untuk Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · hubungkan instalasi yang sudah ada" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14054,7 +14055,7 @@ msgstr "" "upstream. Pilih GUI terhubung dengan berkas biner asli terbuka, atau " "supervisor tanpa antarmuka grafis yang membuka basis data privat." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14066,7 +14067,7 @@ msgstr "" "macOS arm64 dengan IDA Professional 9.1. Bridge GUI native yang opsional " "memiliki kebutuhan versi dan platform sendiri." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14078,7 +14079,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" @@ -14086,7 +14087,7 @@ msgstr "" "{ph0}Profil IDA, contoh registrasi, dan platform yang sudah " "diverifikasi{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14097,18 +14098,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Ikuti contoh analisis native{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Situs web, Android, .NET, firmware, dan target lain" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14117,110 +14118,110 @@ msgstr "" "Buka panduan untuk targetmu. Setiap panduan menjelaskan alat tambahan, host " "yang didukung, dan perintah pertama." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Target" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Alat yang perlu disiapkan" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Panduan" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Buka panduan{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Situs web" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / paket" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "APK Android" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Perangkat Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Sumber daya Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Proyek JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / crash Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Sinyal logika" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Perilaku proses" @@ -14236,7 +14237,7 @@ msgstr "Perilaku proses" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14246,18 +14247,18 @@ msgstr "" "{ph0}Panduan Flutter{ph1} · {ph2}Paket dan sumber daya{ph3} · {ph4}Bytecode " "EVM{ph5} · {ph6}Semua panduan penyelidikan{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Gunakan REA dari terminal" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Perintah CLI, instalasi global, dan curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14267,7 +14268,7 @@ msgstr "" "Ganti {ph0} dengan nama atau alamat fungsi dari daftar fungsi target. Ghidra" " harus dikonfigurasi terlebih dahulu." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14276,7 +14277,7 @@ msgstr "" "Di macOS atau Linux, kamu juga bisa menggunakan penginstal curl setelah " "menyiapkan Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14286,12 +14287,12 @@ msgstr "" "editor, aktifkan REA di pengaturan MCP dan izinkan alatnya dalam percakapan " "agen." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL, dan jalur yang mengandung spasi" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14303,17 +14304,17 @@ msgstr "" "gunakan jalur Linux di sana. Penyedia tanpa antarmuka grafis berjalan pada " "host yang sama dengan REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Perintah penyiapan Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Perbarui atau hapus REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14324,7 +14325,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14338,52 +14339,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Detail pembaruan dan penghapusan{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Salin perintah penyiapan REA untuk Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Salin perintah" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Salin Catatan penyelidikan prompt" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14393,12 +14394,12 @@ msgstr "" "Instal curl dan unzip terlebih dahulu jika belum ada. Di Debian atau Ubuntu," " jalankan {ph0}; di distribusi lain, gunakan pengelola paketmu." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Tutup terminal, buka kembali, lalu:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14413,7 +14414,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14423,19 +14424,19 @@ msgstr "" "{ph0}Penyiapan Cursor{ph1} · {ph2}Penyiapan Windsurf / Devin Desktop{ph3} · " "{ph4}Penyiapan VS Code dan Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · pilih model AI" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Siapkan berkas registrasi IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14451,7 +14452,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14464,7 +14465,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14477,22 +14478,22 @@ msgstr "" "biner asli di IDA dan mulai plugin upstream-nya sebelum meminta REA " "memeriksanya." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Basis data SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Instal Codex dengan perintah untuk sistem operasimu:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14503,7 +14504,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14513,12 +14514,12 @@ msgstr "" "Untuk instalasi pertama, unduh {ph0}penginstal Node.js 24 LTS untuk macOS " "(.pkg){ph1}, buka dan ikuti petunjuknya. Lalu buka kembali Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Sudah menggunakan Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14530,7 +14531,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14540,7 +14541,7 @@ msgstr "" "Tinjau dan setujui rencana, buka kembali Claude, lalu {ph0}periksa koneksi " "pada langkah 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14551,12 +14552,12 @@ msgstr "" "baru di macOS atau Linux arm64, build dekompiler native untuk komputermu " "sebelum melanjutkan." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Build dekompiler native Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14569,7 +14570,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14579,7 +14580,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14589,19 +14590,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · petunjuk build native{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Lalu periksa Ghidra dan simpan jalurnya untuk aplikasimu:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14609,13 +14610,13 @@ msgstr "Mengapa {ph0} menghasilkan 220 di Kalkulator?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Cara kerjanya{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14624,22 +14625,22 @@ msgstr "" "Tanyakan kepada agen pemrograman Anda tentang aplikasi, game, atau situs " "web. REA menyediakan alat untuk memeriksa kode di balik jawabannya." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Mulai" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Lihat contoh ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Cara kerjanya" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14650,51 +14651,51 @@ msgstr "" "program itu sendiri. Dengan REA, agen Anda dapat menelusuri kode, " "menjelaskan fitur, dan membantu membuatnya kembali." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Tanyakan satu fitur" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Berikan program atau halaman beserta pertanyaan kepada agen Anda." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Periksa programnya" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" "REA mengembalikan kode, referensi, dan hasil pengamatan saat program " "berjalan." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Pahami, lalu coba perubahan" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Agen Anda menggunakan temuan untuk menjelaskan atau membuat ulang fitur " "tersebut." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Ikuti instruksi langkah demi langkah" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Ajukan pertanyaan yang sama kepada agen Anda" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14703,7 +14704,7 @@ msgstr "" "Mulai dari 6. Tambahkan 0.001 setiap pembaruan tanpa tabrakan, sementara " "kecepatan di bawah 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14711,7 +14712,7 @@ msgstr "" "Jelajahi fitur dalam aplikasi atau game yang telah dirilis, lengkap dengan " "kode dan hasil yang diperiksa." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14720,7 +14721,7 @@ msgstr "" "Telusuri kode login enam digit Aegis dalam APK yang dirilis, lalu gerakkan " "jam demo untuk melihat mengapa kodenya berubah setiap 30 detik." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14729,7 +14730,7 @@ msgstr "" "Telusuri JavaScript dalam paket Notion hingga papan klip sistem dan lihat " "bagaimana penyalinan mempertahankan data blok yang kaya." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14738,12 +14739,12 @@ msgstr "" "Temukan bagaimana posisi bola menjadi suara kiri atau kanan dalam game " "Windows tahun 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Pilih target Anda." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14754,7 +14755,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14773,13 +14774,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Contoh prompt * Situs web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Ya, yang ini." @@ -14792,7 +14793,7 @@ msgstr "Ya, yang ini." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14806,7 +14807,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14820,18 +14821,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Lihat studi kasus DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Salin prompt proyek situs web" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Salin prompt rekonstruksi game" @@ -14843,7 +14844,7 @@ msgstr "Salin prompt rekonstruksi game" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14855,7 +14856,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14863,23 +14864,23 @@ msgstr "{ph0}Studi kasus →{ph1} — penyelidikan dan demo interaktif." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — metode dan catatan rekonstruksi." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Lihat seluruh penyelidikan Kalkulator" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Coba proyek yang lebih besar" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14888,7 +14889,7 @@ msgstr "" "Mari coba dua contoh: ubah kecepatan permainan, lalu buat ulang tombol % " "Kalkulator." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14897,7 +14898,7 @@ msgstr "" "Permainan makin cepat saat kamu terus berlari. Untuk membuatnya ulang dengan" " pengatur kecepatan, kita perlu tahu dulu bagaimana kecepatannya berubah." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Tanyakan tentang kecepatan" @@ -14910,7 +14911,7 @@ msgstr "1. Tanyakan tentang kecepatan" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14919,12 +14920,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Contoh pertanyaan · Permainan " "dinosaurus" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Temukan aturan kecepatannya" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14933,12 +14934,12 @@ msgstr "" "REA memungkinkan agen membaca kode permainan yang sedang berjalan. Kecepatan" " dimulai dari 6 dan naik sedikit setiap pembaruan selama masih di bawah 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Mainkan hasilnya" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14947,7 +14948,7 @@ msgstr "" "Kami membuat ulang aturan itu dalam permainan kecil di bawah dan menambahkan" " penggeser kecepatan. Mulai bermain, lalu pilih kecepatanmu." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14956,7 +14957,7 @@ msgstr "" "Aktifkan JavaScript untuk bermain. Kamu tetap bisa membaca aturan dan " "membuka kode sumber di bawah." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14965,7 +14966,7 @@ msgstr "" "Tombol % bekerja berbeda setelah + dan ×. Mari temukan kedua aturan dan " "mencobanya dalam kalkulator kecil." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Tanyakan tentang tombol %" @@ -14978,19 +14979,19 @@ msgstr "1. Tanyakan tentang tombol %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Contoh pertanyaan · Kalkulator" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Temukan kedua aturan" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14999,12 +15000,12 @@ msgstr "" "REA membantu agen membaca kode di balik tombol %. Kode ini menerapkan dua " "aturan berbeda:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Coba tombol %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15013,7 +15014,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15021,7 +15022,7 @@ msgstr "{ph0}Baca FAQ{ph1} — penyiapan dan pertanyaan umum." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15030,13 +15031,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — laporkan bug atau minta fitur." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Penyiapan untuk platformmu:" @@ -15044,14 +15045,14 @@ msgstr "Penyiapan untuk platformmu:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Pilihan instalasi lain: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15066,7 +15067,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15081,7 +15082,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15093,7 +15094,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15104,7 +15105,7 @@ msgstr "" "ditampilkan installer. Di Linux, perintah penyiapan default adalah {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15116,67 +15117,67 @@ msgstr "" "memeriksa {ph0}. Daftarkan fungsi dan string-nya, lalu jelaskan bagian yang " "menangani input pengguna dengan referensi ke kode." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Kontributor" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Lewati ke konten" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Beranda{ph1} / Kontributor" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Dibangun bersama." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Terima kasih kepada semua yang membantu membuat REA lebih baik." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15185,22 +15186,22 @@ msgstr "" "Kode, dokumentasi, pengujian, terjemahan, dan ide — ada banyak cara untuk " "berkontribusi." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Cara berkontribusi" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Ikut berdiskusi →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Kontributor" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Cari kontributor" @@ -15208,13 +15209,13 @@ msgstr "Cari kontributor" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "Dari {ph0}daftar kontributor GitHub{ph1} · Diperbarui pada {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Tidak ada kontributor yang cocok. Coba nama pengguna lain." @@ -15232,12 +15233,12 @@ msgstr "" "Kenali orang-orang yang menyumbangkan kode, dokumentasi, pengujian, dan ide " "untuk REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nama pengguna GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Kembali ke atas" diff --git a/website/locales/it/messages.po b/website/locales/it/messages.po index d6a47dc0443..3af8f77b4cc 100644 --- a/website/locales/it/messages.po +++ b/website/locales/it/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Casa{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Riflessioni sul reverse engineering." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Gioco ricostruzione{ph0}Saggio" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "La rivoluzione industriale nel reverse engineering" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "Che manuale RE e ricostruire TH08, TH095 e TH04 mi ha insegnato circa gli " "agenti, la verifica e la conoscenza che composti attraverso i progetti." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Leggi l'articolo" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Di N0zoM1z0 * 10 ottobre 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Pensieri sul reverse engineering, attingendo all'esperienza pratica con REA " "e agenti AI." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA-Scopri come funziona il software. Reverse engineering con il tuo agente " "di codifica." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Home di REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Navigazione principale" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA su GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Unisciti a REA su Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Segui REA su X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -265,35 +265,35 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Casa{ph1} / {ph2}Blog{ph3} / Touhou ricostruzione" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Saggio * Touhou ricostruzione" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "La rivoluzione industriale nel reverse engineering." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Di N0zoM1z0 * 10 ottobre 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Punti chiave" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -356,65 +356,65 @@ msgstr "" "{ph0}Siamo agli inizi della rivoluzione industriale di RE.{ph1} I metodi " "stanno ancora prendendo forma. C'è ancora molto da esplorare." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Come composti esperienza" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Direzione umana{ph1} * Obiettivi e criteri di accettazione" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Autonomia" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agente" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Scegli un esperimento.{ph0}Proponi un'ipotesi." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Verifica" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Riferimento di verifica" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Test contro a{ph0}riferimento concreto." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repository" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Memoria di lavoro" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -423,7 +423,7 @@ msgstr "Codice, prove,{ph0}controlli e lezioni." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -432,26 +432,26 @@ msgstr "Disadattamento{ph0}{ph1}Rivedere l'ipotesi{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Wells{ph0}{ph1}punto di partenza{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Riutilizzo" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Passare{ph1} * Mantenere il risultato e le sue prove" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -460,14 +460,14 @@ msgstr "" "Ogni progetto lascia il successivo con un punto di partenza migliore. Ciò " "include fissare i controlli quando scopriamo una lacuna." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "In questo articolo" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -475,7 +475,7 @@ msgstr "{ph0}Agosto 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -483,7 +483,7 @@ msgstr "{ph0} TH08: la continuazione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -491,7 +491,7 @@ msgstr "{ph0}Due approcci{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -499,7 +499,7 @@ msgstr "{ph0} TH095: compounding{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -507,7 +507,7 @@ msgstr "{ph0} TH04: tra architetture{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -515,7 +515,7 @@ msgstr "{ph0}Da esatto a leggibile{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -523,18 +523,18 @@ msgstr "{ph0}Il cambiamento industriale{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Cosa diventa possibile{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Cosa è cambiato nell'agosto 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -550,7 +550,7 @@ msgstr "" "successiva. Significava anche mantenere un quadro sempre più grande nella " "mia testa." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -564,7 +564,7 @@ msgstr "" "metodo può essere utile altrove, ma ogni campo deve stabilire cosa può " "verificare con un riferimento affidabile." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -577,7 +577,7 @@ msgstr "" "l'accesso al programma e agli strumenti di sviluppo ordinari. Touhou " "ricostruzione mi ha dato un progetto sostanziale in cui scoprire." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -595,7 +595,7 @@ msgstr "" "attenzione alla direzione del progetto e se i suoi controlli fossero " "affidabili." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -606,7 +606,7 @@ msgstr "" "chiedermi cosa sarebbe sopravvissuto oltre il progetto attuale. Il prossimo " "gioco trarrà beneficio da tutto ciò che abbiamo appena imparato?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: costruire sul lavoro umano" @@ -615,7 +615,7 @@ msgstr "TH08: costruire sul lavoro umano" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -629,7 +629,7 @@ msgstr "" "dato un fondamento sostanziale. È venuto con la conoscenza della costruzione" " e una storia di contributi che ho conservato nella continuazione." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -641,7 +641,7 @@ msgstr "" "libro mastro ha registrato la fonte per tutte le 1.107 funzioni di gioco " "identificate." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -652,7 +652,7 @@ msgstr "" "circa undici giorni dopo l'inizio della continuazione. Ne è seguita " "un'edizione Web. La versione nativa Linux a 64 bit è arrivata il 30 agosto." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -668,7 +668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -686,12 +686,12 @@ msgstr "" "previsto. L'agente propone una spiegazione e la mette alla prova; una " "mancata corrispondenza gli dà qualcosa di specifico da indagare." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Una corrispondenza esatta con la costante sbagliata" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -703,7 +703,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -716,7 +716,7 @@ msgstr "" " la potenza del giocatore contro {ph0}. L'originale usato {ph1}, la soglia " "di potenza massima." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -732,13 +732,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "{ph0}Eppure la funzione aveva già superato il confronto esatto.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -754,7 +754,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -770,7 +770,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -784,7 +784,7 @@ msgstr "" " ampio{ph3} poi ha esaminato 1.548 riferimenti costanti in virgola mobile. " "Ha trovato altri dodici riferimenti errati su cinque funzioni accettate." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -798,7 +798,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -808,7 +808,7 @@ msgstr "" "{ph0}Anche il riferimento di verifica (oracle) doveva essere " "ricostruito.{ph1} Ripararlo faceva parte della riparazione del gioco." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -826,7 +826,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -843,7 +843,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -853,7 +853,7 @@ msgstr "" "{ph0}Un batch di successo ci ha dato sia il codice recuperato che un " "ambiente migliore per il batch successivo.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Due diverse idee di ricostruzione" @@ -862,7 +862,7 @@ msgstr "Due diverse idee di ricostruzione" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -874,7 +874,7 @@ msgstr "" " con questo tipo di lavoro. L'avviso annuncia che ulteriori sviluppi " "avverranno privatamente fino al completamento. Un passaggio recita:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -884,7 +884,7 @@ msgstr "" "prende dal nostro lavoro dipinge una cattiva immagine per i futuri sforzi di" " decompilazione…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -902,7 +902,7 @@ msgstr "" "dovrebbe procedere la ricostruzione e come dovrebbe essere giudicato un " "contributo." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -916,7 +916,7 @@ msgstr "" "contributore contava perché gran parte del ragionamento accadeva mentre " "lavoravano." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -927,7 +927,7 @@ msgstr "" "costruiscono strumenti. Ciò che è cambiato per me è che un agente potrebbe " "usare quella conoscenza per perseguire la prossima indagine da solo." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -942,7 +942,7 @@ msgstr "" " persona sia in grado di esaminare il motivo per cui abbiamo scelto " "un'implementazione, anche se un agente ha fatto la maggior parte del lavoro." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -955,7 +955,7 @@ msgstr "" "Ciò solleva domande reali sul credito. Cambia anche ciò che i manutentori " "devono sapere prima di accettare un contributo." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -971,7 +971,7 @@ msgstr "" "Diverse comunità possono scegliere quanto di quel cambiamento vogliono " "assumere." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -996,7 +996,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1009,14 +1009,14 @@ msgstr "" "abbreviato. Di TH08 {ph4}crediti e provenienza{ph5} registra il limite di " "continuazione." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: l'esperienza inizia a comporre" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1031,7 +1031,7 @@ msgstr "" "ancora imparare il gioco. Ma sapevamo già molto di più su come iniziare una " "ricostruzione e come mantenerla in movimento." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1045,7 +1045,7 @@ msgstr "" "Windows i386 è stata contrassegnata come giocabile il 10 settembre, circa " "dodici giorni dopo l'inizializzazione." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1057,7 +1057,7 @@ msgstr "" "L'esperienza era già presente negli strumenti e nel modo in cui il progetto " "è stato organizzato." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1073,7 +1073,7 @@ msgstr "" " a modellare il modo in cui ci siamo avvicinati alla compilazione " "dell'intero programma di TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1086,7 +1086,7 @@ msgstr "" "aiutare dopo che sono andato avanti. L'agente successivo può utilizzare il " "risultato senza ripetere l'indagine che lo ha portato." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1101,7 +1101,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1113,7 +1113,7 @@ msgstr "" "partita.{ph1} Possiamo spendere di più dello sforzo del prossimo progetto su" " ciò che è effettivamente nuovo sul suo obiettivo." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1126,7 +1126,7 @@ msgstr "" "continuare il lavoro. Non devono ricostruire la storia dell'intero progetto " "per scoprire perché la fonte sembra il modo in cui lo fa." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: il flusso di lavoro sopravvive a un'architettura diversa" @@ -1135,7 +1135,7 @@ msgstr "TH04: il flusso di lavoro sopravvive a un'architettura diversa" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1151,7 +1151,7 @@ msgstr "" "diverse dai giochi Windows. Esistente {ph2}ReC98 lavoro{ph3} ci ha dato " "preziose conoscenze e materiale sorgente anche qui." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1164,7 +1164,7 @@ msgstr "" "salvataggi. Il lavoro corrente è una porta nativa a 64 bit. Stabilire una " "versione DOS funzionante prima dà a quella porta un riferimento." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1177,7 +1177,7 @@ msgstr "" "il nostro lavoro. Ma l'agente potrebbe ancora seguire una domanda fino a un " "risultato e lasciare che quel risultato guidi il prossimo esperimento." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1192,7 +1192,7 @@ msgstr "" "prove e i controlli sono disponibili, un agente può elaborare la domanda " "come ha fatto su un titolo Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1204,7 +1204,7 @@ msgstr "" "con un nuovo modo di lavorare. L'architettura ha definito il problema; il " "flusso di lavoro ci ha comunque dato un modo per risolverlo." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1221,7 +1221,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1232,12 +1232,12 @@ msgstr "" "manuale{ph1} · {ph2}porta a 64 bit{ph3}. Il porto è ancora in fase di " "sviluppo." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Dal codice esatto al codice leggibile" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1246,7 +1246,7 @@ msgstr "" "Una volta che una ricostruzione funziona, voglio che qualcun altro sia in " "grado di capirlo." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1261,7 +1261,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1278,7 +1278,7 @@ msgstr "" "Manteniamo il ragionamento con la fonte in modo che la prossima persona " "possa vedere da dove proviene quell'interpretazione." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1294,14 +1294,14 @@ msgstr "" "sicuro, abbiamo bisogno di recuperare la relazione dietro il vecchio accesso" " alla memoria." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "L'ordine che ora uso è:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1317,7 +1317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1334,7 +1334,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1350,7 +1350,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1365,7 +1365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1382,7 +1382,7 @@ msgstr "" "ricostruito costruisca e si comporti correttamente lungo i percorsi che " "esercitiamo." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1396,7 +1396,7 @@ msgstr "" "disponibili dà all'agente un fallimento concreto per indagare prima di " "portare un refactor ulteriormente." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1413,7 +1413,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1432,7 +1432,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1443,12 +1443,12 @@ msgstr "" "semantica rende fruibile la conoscenza recuperata.{ph1} Una porta può quindi" " costruire su entrambi." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Cosa rende questo un cambiamento industriale" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1462,7 +1462,7 @@ msgstr "" "Uno strumento migliore potrebbe aiutare con ogni funzione successiva che ne " "aveva bisogno." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1476,7 +1476,7 @@ msgstr "" "io prescriva ogni passo, gran parte del lavoro rimane legato alla mia " "attenzione." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1489,7 +1489,7 @@ msgstr "" "aiutare a capire l'errore abbastanza bene da riprovare. Devo ancora decidere" " se le prove accumulate supportano una pietra miliare del progetto." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1504,7 +1504,7 @@ msgstr "" "controlli di riferimento. L'agente può usarli per testare la fonte che " "propone e vedere dove regge la sua spiegazione." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1522,7 +1522,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1543,7 +1543,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1561,7 +1561,7 @@ msgstr "" "rivedere i risultati che ha influenzato. Il prossimo progetto può quindi " "ereditare uno strumento più forte." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1577,7 +1577,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1589,7 +1589,7 @@ msgstr "" " progetti un modo condiviso per portare avanti i loro controlli e lezioni. " "Lavorare su un gioco può migliorare le condizioni di partenza per un altro." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1601,12 +1601,12 @@ msgstr "" "utilizzare. Migliorare questi strumenti cambia quanto la prossima persona—o " "il prossimo agente-può fare." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "I progetti che possiamo ora considerare" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1618,7 +1618,7 @@ msgstr "" "attenzione di quanto potrei realisticamente dargli. Molti progetti " "rimarrebbero idee." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1636,7 +1636,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1647,7 +1647,7 @@ msgstr "" " conoscenza accumulata permetterebbero a un agente di lavorare su questo in " "modo affidabile?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1658,12 +1658,12 @@ msgstr "" "avrei lasciato da solo. Ognuno può migliorare il modo in cui ci avviciniamo " "al prossimo. Voglio continuare a esplorare fino a che punto ci può portare." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Pietre miliari e fonti del progetto" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1698,7 +1698,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1732,7 +1732,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1750,7 +1750,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1774,7 +1774,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1796,7 +1796,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1813,7 +1813,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1835,7 +1835,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1849,7 +1849,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1870,27 +1870,27 @@ msgstr "" "Touhou con agenti AI e su come la conoscenza si compensa in TH08 , TH095 e " "PC-98 TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Esperienza tra i progetti" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Touhou ricostruzione saggio" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -1899,18 +1899,18 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Casa{ph1}{ph2}/{ph3}Dinosaur speed lab" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Ispezionare → ricostruire → modificare" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Ricostruisci la regola della velocità del dinosauro." @@ -1919,7 +1919,7 @@ msgstr "Ricostruisci la regola della velocità del dinosauro." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1932,15 +1932,15 @@ msgstr "" "abbiamo usato la sua regola per costruire questo mini-gioco con " "{ph2}velocità regolabile.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "In questa pagina" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1948,7 +1948,7 @@ msgstr "{ph0}Gioca e cambia la velocità{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1956,7 +1956,7 @@ msgstr "{ph0}Leggi la regola recuperata{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1964,18 +1964,18 @@ msgstr "{ph0}Controlla la ricostruzione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Prova l'analisi{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Gioca e cambia la velocità" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1987,49 +1987,49 @@ msgstr "" "Selezionare la regola recuperato per iniziare a 6 e gradualmente accelerare " "di nuovo." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Gioca alla ricostruzione" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Gioca" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Salta ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Ricomincia" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Velocità" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Utilizzare la regola di accelerazione recuperata" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regola originale: inizia da 6, quindi aumenta verso 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Spostare il cursore per impostare la propria velocità. Spazio o salto " "cancella un cactus." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2038,7 +2038,7 @@ msgstr "" "Abilita JavaScript per riprodurre la ricostruzione. Il codice e la " "spiegazione di cui sopra rimangono leggibili." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Leggere lo script REA restituito" @@ -2046,7 +2046,7 @@ msgstr "Leggere lo script REA restituito" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2061,7 +2061,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2071,18 +2071,18 @@ msgstr "" "Le impostazioni sono {ph0}, {ph1} e {ph2}. Il gioco esegue questo ramo su un" " aggiornamento senza una collisione." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Usa la stessa regola nel nuovo gioco" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Copia" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2099,7 +2099,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" @@ -2107,12 +2107,12 @@ msgstr "" "{ph0}Scarica la regola della velocità{ph1} · {ph2}Leggi il codice del " "gioco{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Controlla la ricostruzione" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2123,27 +2123,27 @@ msgstr "" "ostacoli e programmazione automatica disabilitata. Confronta quelle velocità" " registrate con un replay della regola recuperata." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Aggiornare" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Gioco originale" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Regola ricostruita" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Eseguire il controllo della velocità" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2152,14 +2152,14 @@ msgstr "" "Valori arrotondati a tre decimali. Il ramo controlla prima di aggiungere, " "quindi l'incremento finale può prendere velocità appena sopra 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Prova tu stesso l'analisi" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2168,7 +2168,7 @@ msgstr "{ph0}Impostare REA {ph1} con il tuo agente di codifica." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2177,7 +2177,7 @@ msgstr "" "Segui il {ph0}passaggi di connessione del browser{ph1}, servendosi {ph2} " "come l'URL della pagina." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2194,7 +2194,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2206,7 +2206,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Il tuo agente di codifica" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2220,7 +2220,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2235,7 +2235,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2261,12 +2261,12 @@ msgstr "" "Leggi la regola di velocità del gioco dei dinosauri con REA, ricostruiscilo," " quindi cambia la velocità e gioca." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Dinosauro velocità ricostruzione" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2275,52 +2275,52 @@ msgstr "" "Dinosauro mini-gioco. Utilizzare il pulsante di salto o premere Spazio " "mentre il gioco è focalizzato." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Copia regola di velocità ricostruita" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copia dinosaur analysis prompt" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Casa{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "Domande FREQUENTI SU REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Configurazione, aggiornamenti, analisi e risoluzione dei problemi." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Argomento" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2328,7 +2328,7 @@ msgstr "{ph0}Configurazione e aggiornamenti{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2336,7 +2336,7 @@ msgstr "{ph0}Analisi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2344,31 +2344,31 @@ msgstr "{ph0}Risoluzione dei problemi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Dati e condivisione{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Configurazione e aggiornamenti" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Come installo REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminale * configurazione agente" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Copia" @@ -2376,7 +2376,7 @@ msgstr "Copia" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2390,12 +2390,12 @@ msgstr "" "percorso del file e una domanda. La {ph0}guida alla configurazione{ph1} " "spiega i prerequisiti e la prima analisi." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Quali agenti di codifica possono utilizzare REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2411,18 +2411,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Connetti il tuo agente di codifica{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Come aggiorno REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2431,13 +2431,13 @@ msgstr "" "REA rilascia frequentemente, comprese le correzioni di bug. Se è stato " "installato il CLI con npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminale * installato CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2447,14 +2447,14 @@ msgstr "" "Seguire il comando setup refresh stampato dall'aggiornamento. Se si imposta " "il vostro agente attraverso {ph0}, eseguire:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminale * aggiorna la configurazione dell'agente" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2467,14 +2467,14 @@ msgstr "" "usare la nuova versione. Per un singolo comando CLI, aggiungi il comando " "dopo {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Sta installando l'abilità da skills.sh abbastanza?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2486,24 +2486,24 @@ msgstr "" " REA{ph1} per collegare il server MCP e installare l'abilità corrispondente," " quindi riavviare l'agente in modo che possa chiamare gli strumenti." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analisi" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Cosa posso analizzare con REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Inizia con il tipo di software che hai:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2515,7 +2515,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2527,7 +2527,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2536,7 +2536,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2548,12 +2548,12 @@ msgstr "" "risorse pacchettizzate. {ph0}Vedi i casi di studio{ph1} per le indagini " "lavorate." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Ho bisogno di Hopper, Ghidra o IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2565,7 +2565,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2578,12 +2578,12 @@ msgstr "" "quale provider può essere utilizzato. {ph0}Impostare l'analisi dei programmi" " di codice macchina{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Posso usare REA senza un agente di codifica?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2592,14 +2592,14 @@ msgstr "" "Sì. CLI utilizza gli stessi flussi di lavoro di analisi. Per un locale " "JavaScript o Electron app:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminale * analisi statica dell'applicazione" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2610,13 +2610,13 @@ msgstr "" " ASAR. {ph0}Utilizzare il CLI {ph1} per le opzioni di installazione." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Quale codice restituisce REA?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2631,7 +2631,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2643,12 +2643,12 @@ msgstr "" "e testare un'implementazione. Il {ph0} Calcolo DX-Ball{ph1} e {ph2}CTF flag " "checker{ph3} mostra come funziona questo processo." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Che cosa chiedo al mio agente?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2665,7 +2665,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2673,7 +2673,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Il tuo agente di codifica" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2683,18 +2683,18 @@ msgstr "" "Sostituisci il percorso con il tuo obiettivo. Il {ph0}guida{ph1} fornire " "prompt per esempi nativi, Electron e browser." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Risoluzione dei problemi" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Perché il mio agente non può vedere gli strumenti REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2704,7 +2704,7 @@ msgstr "" "Riavviare o ricollegare l'agente dopo l'installazione. Controlla la sua " "registrazione REA con {ph0}; per Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminale * controllare un client" @@ -2712,7 +2712,7 @@ msgstr "Terminale * controllare un client" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2723,14 +2723,14 @@ msgstr "" "report mostra una registrazione mancante o obsoleta, eseguire setup per quel" " client:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminale * riparare la configurazione di un cliente" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2742,14 +2742,14 @@ msgstr "" "gli strumenti rimangono assenti, controllare l'errore di connessione MCP del" " client. {ph0}Più diagnostica di configurazione{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Devo iniziare prima Hopper?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2762,14 +2762,14 @@ msgstr "" "licenza prima dell'analisi automatica. {ph0}Vedere configurazione provider " "nativo{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Che cosa faccio se trovo un bug?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2781,7 +2781,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2794,17 +2794,17 @@ msgstr "" "degli errori. Includere il nome del provider quando il problema comporta " "l'analisi dei programmi di codice macchina." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Dati e condivisione" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA carica la mia app?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2813,7 +2813,7 @@ msgstr "" "REA analizza gli obiettivi sulla tua macchina. L'agente riceve i risultati e" " la politica dei dati del fornitore del modello si applica a tali risultati." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Come posso condividere un esempio o contribuire?" @@ -2822,7 +2822,7 @@ msgstr "Come posso condividere un esempio o contribuire?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2838,7 +2838,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2864,77 +2864,77 @@ msgstr "" " di analisi, agenti di codifica, risoluzione dei problemi e esempi di " "condivisione." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Domande frequenti su REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Copia il comando di installazione REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Copia il comando di aggiornamento REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Copy agent setup refresh command" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Copia il comando di analisi REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Copia esempio prompt di analisi" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Copia comando diagnosi client" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Copy scoped setup comando" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Casa{ph1} La tua prima indagine" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Scopri dove{ph0}le note esportate vanno." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2943,14 +2943,14 @@ msgstr "" "Usa REA per ispezionare una piccola app, segui il pulsante Esporta note e " "controlla tu stesso un dettaglio." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "In questo esercizio" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2958,7 +2958,7 @@ msgstr "{ph0}1. Istituire{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2966,7 +2966,7 @@ msgstr "{ph0}2. Chiedi informazioni sull'esportazione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2974,7 +2974,7 @@ msgstr "{ph0}3. Segui la risposta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2982,13 +2982,13 @@ msgstr "{ph0}4. Controllare una previsione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Fai un'altra domanda{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Connetti il tuo agente a REA" @@ -3001,30 +3001,30 @@ msgstr "1. Connetti il tuo agente a REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Il tuo agente di codifica" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Copia" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Oppure esegui questo comando nel tuo terminale:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3033,14 +3033,14 @@ msgstr "" "Rivedere il piano, approvare la configurazione, quindi riavviare l'agente. " "Sei già connesso? Continua sotto." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Chiedi dove è scritto CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3052,7 +3052,7 @@ msgstr "" " pulsante. L'agente può ispezionare il codice senza installare o avviare " "Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3064,14 +3064,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Scarica esempio ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3082,12 +3082,12 @@ msgstr "" "archivio. Dare il percorso per il {ph0} cartella e la stessa domanda di " "esportazione." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Segui la risposta al codice" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Cerca una breve spiegazione con riferimenti a file e righe:" @@ -3096,7 +3096,7 @@ msgstr "Cerca una breve spiegazione con riferimenti a file e righe:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3108,12 +3108,12 @@ msgstr "" "note come CSV e scrive {ph1} nella cartella Download dell'utente. Le colonne" " sono {ph2} e {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Dal pulsante al file writer" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3122,7 +3122,7 @@ msgstr "" "L'analisi statica di REA associa il messaggio al suo gestore. La " "destinazione viene letta dal codice." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3134,7 +3134,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." @@ -3142,12 +3142,12 @@ msgstr "" "{ph0}Vedere la traccia completa del codice e il risultato REA " "registrato{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Controllare una previsione" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3156,29 +3156,29 @@ msgstr "" "Una virgola separa le colonne CSV. Cosa succede quando il titolo di una nota" " contiene una virgola o virgolette?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Esegui il controllo da solo" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Aprire un terminale nel disimballato {ph0} cartella:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Fai un'altra domanda" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Prova un follow-up nella stessa conversazione:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3187,7 +3187,7 @@ msgstr "" "Cosa succede se il file non può essere scritto? Seguire l'errore torna alla " "pagina." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3200,7 +3200,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3214,7 +3214,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3228,7 +3228,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3252,116 +3252,116 @@ msgstr "" "Prova REA su una piccola app Note. Imposta il tuo agente, chiedi dove vanno " "le note esportate e controlla il formatter CSV con un titolo di esempio." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "La tua prima indagine REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Copia REA prompt di installazione" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Copia comando setup" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Copia note richiesta di indagine" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Copia CSV prompt di controllo" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Comando Copia formatter check" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Casa{ph1} / Inizia" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Impostare REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Aprire un terminale e controllare:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminale" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Copia" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3373,7 +3373,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3385,7 +3385,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3397,7 +3397,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3405,7 +3405,7 @@ msgstr "{ph0}Utilizzare il CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3419,19 +3419,19 @@ msgstr "{ph0}Ottenere aiuto{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Il tuo agente di programmazione" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "O eseguire l'installazione da soli" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Come faccio ad aprire un terminale?" @@ -3440,7 +3440,7 @@ msgstr "Come faccio ad aprire un terminale?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3456,7 +3456,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3469,7 +3469,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3484,7 +3484,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3494,7 +3494,7 @@ msgstr "" "Incolla un comando con {ph0} {ph1} ( macOS : {ph2} {ph3}; Terminali Linux: " "{ph4} {ph5} {ph6}), quindi premere Invio." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3506,7 +3506,7 @@ msgstr "" "conservando una copia della configurazione esistente. Chiede conferma prima " "di applicare le modifiche." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Come riavvio l'applicazione dell'agente?" @@ -3515,7 +3515,7 @@ msgstr "Come riavvio l'applicazione dell'agente?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3531,7 +3531,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3541,7 +3541,7 @@ msgstr "" "{ph0}Agenti terminali{ph1} (Claude Code , Codex , Gemini CLI ): uscire dalla" " sessione e riavviarla." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Come ottengo il percorso completo di una cartella?" @@ -3550,7 +3550,7 @@ msgstr "Come ottengo il percorso completo di una cartella?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3566,7 +3566,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3578,7 +3578,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3588,15 +3588,15 @@ msgstr "" "{ph0}Qualsiasi sistema:{ph1} trascinare la cartella in una finestra di " "terminale e il suo percorso appare." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "In un terminale, metti le virgolette attorno a un percorso che contiene " "spazi." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3605,14 +3605,14 @@ msgstr "" "Analizzare una cartella dell'applicazione JavaScript o Electron o un " "archivio ASAR senza eseguire l'app:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Analisi statica delle applicazioni" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3622,13 +3622,13 @@ msgstr "" "Sostituire il percorso con la directory dell'app estratta o {ph0} file. Su " "Windows, un percorso come {ph1} funziona qui." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Dove trovo il file .asar di un'app?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3639,7 +3639,7 @@ msgstr "Electron apps di solito tenerlo in un {ph0} cartella:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3651,7 +3651,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3664,21 +3664,21 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} spesso {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" "Alcune app si installano altrove. Cerca nella cartella dell'app per {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3690,36 +3690,36 @@ msgstr "" " contrassegnate nel risultato." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Se vuoi un permanente {ph0} comando nella tua shell:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Installare il CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Continuare con la guida all'applicazione JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Collegare l'installazione Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Collegare Ghidra su Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3731,7 +3731,7 @@ msgstr "" "un'installazione esistente di Ghidra 12.1.x e un JDK a 64 bit, versione 21 o" " successiva:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3739,7 +3739,7 @@ msgstr "" "Sostituire i due percorsi con le installazioni, quindi rivedere il piano di " "installazione." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3749,18 +3749,18 @@ msgstr "" "un'installazione esistente o offre un piano di installazione per " "l'approvazione." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Ottenere aiuto" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Se il tuo agente non vede REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3770,22 +3770,22 @@ msgstr "" "Riavviare o ricollegare il client dopo l'installazione. Controlla la sua " "connessione REA con {ph0}; per Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Se un fornitore ha bisogno di attenzione" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Controlla il provider che stai utilizzando. Per Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Controllare un provider" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3796,7 +3796,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3809,7 +3809,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3823,7 +3823,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3837,7 +3837,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3860,68 +3860,68 @@ msgstr "" "Electron locale dal terminale. Configurazione, prime domande e guide native " "provider." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Copia controllo versione Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Copia il comando di installazione Node.js per Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Copia il comando di installazione Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Copia il comando di installazione fnm per Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Copia i comandi Node.js 24 per Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA guida introduttiva" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Copia REA prompt di installazione" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Copia il comando di analisi JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Copia il comando di installazione CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Copia il comando di diagnosi del provider" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -3930,20 +3930,20 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Casa{ph1} / {ph2}Guida{ph3} / Osservazione del browser" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Vedi cosa succede{ph0}quando si fa clic." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3952,14 +3952,14 @@ msgstr "" "Utilizzare una piccola applicazione browser per collegare un'azione, la sua " "richiesta di rete e il JavaScript che costruisce un download." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "In questa guida" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3967,7 +3967,7 @@ msgstr "{ph0}Esempio{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3975,7 +3975,7 @@ msgstr "{ph0}Apri il browser{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3983,7 +3983,7 @@ msgstr "{ph0}Chiedi al tuo agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3991,13 +3991,13 @@ msgstr "{ph0}Cattura da CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Leggi la richiesta e lo script{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Cosa succede quando fai clic su Esporta?" @@ -4007,7 +4007,7 @@ msgstr "Cosa succede quando fai clic su Esporta?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4019,7 +4019,7 @@ msgstr "" "pulsante. Cliccando carica {ph4}, formatta le due note come CSV, e avvia un " "download." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Dal clic al CSV scarica" @@ -4030,7 +4030,7 @@ msgstr "Dal clic al CSV scarica" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4046,7 +4046,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4065,7 +4065,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4076,17 +4076,17 @@ msgstr "" "esportazione{ph3}{ph4}Collegare la richiesta osservata a {ph5} in " "{ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Avviare l'acquisizione prima di fare clic su Esporta note." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Aprire Chrome con debug remoto" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4095,21 +4095,21 @@ msgstr "" "Aprire l'esempio di Note ospitate con un profilo browser separato e una " "porta di debug locale. Su Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Avviare il browser di esempio" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Copia" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4119,7 +4119,7 @@ msgstr "" ". È possibile sostituire l'URL della pagina con un'altra pagina che si " "desidera ispezionare." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4128,7 +4128,7 @@ msgstr "" "REA si connette a questo browser esistente. Mantieni il controllo della " "pagina, esegui l'azione e chiudi il browser al termine." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Chiedi al tuo agente di guardare un'azione" @@ -4141,7 +4141,7 @@ msgstr "Chiedi al tuo agente di guardare un'azione" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4153,7 +4153,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Il tuo agente di codifica" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4165,7 +4165,7 @@ msgstr "" "CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4175,7 +4175,7 @@ msgstr "" "Esempio prompt. Fornisci al tuo agente l'endpoint di debug, {ph0}, e l'URL " "della pagina. Lascia che inizi la cattura prima di fare clic." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4186,23 +4186,23 @@ msgstr "" "osservazione e legge le prove risultanti. Può quindi ispezionare lo script " "dietro l'esportazione." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "O cattura dal terminale" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Trova l'ID di destinazione della pagina:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Trova la pagina" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4212,14 +4212,14 @@ msgstr "" "Scegli la destinazione con l'URL di esempio Notes. Sostituire {ph0} sotto " "con il suo ID, quindi esegui:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Cattura i prossimi dieci secondi" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4230,7 +4230,7 @@ msgstr "" "{ph0}Note di esportazione{ph1} in quel browser. Il risultato arriva dopo la " "fine della finestra di osservazione." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4241,49 +4241,49 @@ msgstr "" "durante quella finestra e la forma della risposta JSON. Le richieste " "precedenti sono al di fuori di questa acquisizione." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Leggere lo script di richiesta ed esportazione" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Registrato con REA 4.1.0 nell'esempio local Notes" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Fatto catturato" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Valore" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Richiesta" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Risposta" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Iniziatore della richiesta" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · script" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Struttura di risposta" @@ -4291,19 +4291,19 @@ msgstr "Struttura di risposta" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} con {ph1} e {ph2} campo" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Leggi gli script caricati" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4315,7 +4315,7 @@ msgstr "" " utilizzati i dati:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4328,7 +4328,7 @@ msgstr "" "stabilisce che questo clic richiesto {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4340,7 +4340,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4365,65 +4365,65 @@ msgstr "" "browser, catturare un clic, ispezionare la richiesta e seguire lo script di " "esportazione." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Osservazione del browser" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Copia avvia il browser di esempio" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Copia esempio prompt" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Copia trova la pagina" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Copia cattura i prossimi dieci secondi" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Copia leggi gli script caricati" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Casa{ph1} / Guida" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Guide REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4432,37 +4432,37 @@ msgstr "" "Analizzare una funzione nativa, un'esportazione Electron o una richiesta del" " browser. Ogni guida include un prompt, codice e risultati." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Prima indagine" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Impostare REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Collega il tuo agente di codifica o usa REA dal terminale." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Inizia con REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Programmi a codice macchina" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Recuperare un calcolo della posizione del suono sinistra/destra" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4472,22 +4472,22 @@ msgstr "" "seguire un chiamante, leggere costanti numeriche e controllare il C " "recuperato." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Guida all'analisi dei programmi di codice macchina" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Seguire un'esportazione CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4497,14 +4497,14 @@ msgstr "" "precarico e il processo principale. Utilizzare REA per collegare l'API, il " "canale IPC e il file writer." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Guida di JavaScript & Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4512,17 +4512,17 @@ msgstr "" "Per un'app pacchettizzata più grande, segui {ph0} Ponte appunti di " "Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Comportamento del browser" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Osservare un clic" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4531,7 +4531,7 @@ msgstr "" "Aprire un esempio di Note di lavoro, acquisire una richiesta di esportazione" " e trovare il codice che trasforma la sua risposta in un download." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Guida all'osservazione del browser" @@ -4550,12 +4550,12 @@ msgstr "" "Impara REA attraverso brevi esempi elaborati: un calcolo nativo, " "un'esportazione Electron CSV e una richiesta del browser." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -4564,20 +4564,20 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Casa{ph1} / {ph2}Guida{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Traccia un Electron {ph0} Esportazione CSV." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4586,14 +4586,14 @@ msgstr "" "Segui un clic del pulsante dall'API della pagina, tramite Electron IPC, al " "file writer CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "In questa guida" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4601,7 +4601,7 @@ msgstr "{ph0}Esempio{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4609,7 +4609,7 @@ msgstr "{ph0}Chiedi al tuo agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4617,7 +4617,7 @@ msgstr "{ph0}Traccia il codice di esportazione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4625,20 +4625,20 @@ msgstr "{ph0}Prova l'esempio{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Ispezionare il writer CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Dove vanno le \"note di esportazione\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4650,7 +4650,7 @@ msgstr "" "esportazione{ph1} chiama un'API nella pagina, attraversa il processo " "principale e scrive un CSV . Il comportamento è distribuito su più file." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "L'esportazione di CSV attraverso i processi Electron" @@ -4664,7 +4664,7 @@ msgstr "L'esportazione di CSV attraverso i processi Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4681,7 +4681,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4698,7 +4698,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4711,13 +4711,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} formatta le note → {ph1} scrivere {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4728,14 +4728,14 @@ msgstr "" "l'API esposta. Il percorso è dedotto dal codice; un'acquisizione di runtime " "può controllare ciò che viene eseguito." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Chiedi informazioni sull'esportazione CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4753,14 +4753,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Il tuo agente di codifica" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Copia" @@ -4771,7 +4771,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4782,7 +4782,7 @@ msgstr "" "questa app. Dove viene creato CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4792,7 +4792,7 @@ msgstr "" "Esempio prompt. Includere il percorso assoluto della cartella " "dell'applicazione o {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4803,17 +4803,17 @@ msgstr "" " confini di processo. L'agente utilizza tale mappa per restringere " "l'indagine alla funzione di esportazione." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Traccia il codice di esportazione" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "La pagina chiama una piccola API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4824,7 +4824,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4836,7 +4836,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4847,7 +4847,7 @@ msgstr "" "note e il processo principale scrive {ph1} nella cartella Download " "dell'utente." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4856,7 +4856,7 @@ msgstr "" "Registrato da REA 4.1.0 nell'esempio scaricabile qui sotto. Le posizioni di " "origine accompagnano i risultati dell'API, del canale e del gestore." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analizza l'esempio da solo" @@ -4864,25 +4864,25 @@ msgstr "Analizza l'esempio da solo" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Scarica esempio ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Sfoglia i sei file sorgente" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Analisi statica delle applicazioni" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4893,7 +4893,7 @@ msgstr "" "canale IPC e un gestore corrispondente in {ph0}. Le posizioni di origine " "sono in {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4904,13 +4904,13 @@ msgstr "" "ASAR. Un agente può seguire una stringa letterale, un nome API o un canale " "IPC con gli strumenti di tracciamento delle funzionalità di REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Ispezionare il writer CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4920,7 +4920,7 @@ msgstr "" "Seguire {ph0} al suo gestore. Quali input raggiungono il writer CSV e cosa " "succede se la scrittura del file non riesce?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4935,7 +4935,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4949,7 +4949,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4963,7 +4963,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4989,32 +4989,32 @@ msgstr "" "precarico e un gestore IPC con REA . Include file di esempio scaricabili e " "un risultato di analisi verificato." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Copia esempio prompt" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Copia analisi applicazione statica" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -5023,7 +5023,7 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5031,14 +5031,14 @@ msgstr "" "{ph0}Casa{ph1} / {ph2}Guida{ph3} / Analisi di programmi a codice macchina" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" "Recuperare di DX-Ball{ph0}calcolo della posizione sonora sinistra/destra." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5047,14 +5047,14 @@ msgstr "" "Ispezionare le istruzioni originali, identificare l'input e le costanti, " "quindi controllare il C recuperato." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "In questa guida" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5062,7 +5062,7 @@ msgstr "{ph0}Esempio{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5070,7 +5070,7 @@ msgstr "{ph0}Chiedi al tuo agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5078,7 +5078,7 @@ msgstr "{ph0}Leggi i risultati di REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5086,18 +5086,18 @@ msgstr "{ph0}Recuperare e controllare{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Usa il tuo binario{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Calcola il posizionamento del suono stereo sinistro / destro" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5109,7 +5109,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5121,7 +5121,7 @@ msgstr "" "chiamata a {ph1}. REA restituisce anche le sue istruzioni e i chiamanti, " "che danno all'agente un modo per indagare sull'aritmetica mancante." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Nuovo a questi termini?" @@ -5130,7 +5130,7 @@ msgstr "Nuovo a questi termini?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5142,7 +5142,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5155,7 +5155,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5168,7 +5168,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5180,7 +5180,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5190,7 +5190,7 @@ msgstr "" "{ph0}Costante:{ph1} numeri fissi memorizzati nel programma, letti come byte " "grezzi e decodificati." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Tre prove, un calcolo" @@ -5201,7 +5201,7 @@ msgstr "Tre prove, un calcolo" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5218,7 +5218,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5236,7 +5236,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5246,7 +5246,7 @@ msgstr "" "{ph0}03 * Byte di dati{ph1}{ph2}Le costanti numeriche{ph3}{ph4}I byte di " "riferimento decodificano a {ph5}, {ph6} e un valore di scala.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5255,7 +5255,7 @@ msgstr "" "REA fornisce le istruzioni, la relazione funzione-chiamata e i byte. " "L'agente li interpreta insieme." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Chiedi del comportamento" @@ -5264,7 +5264,7 @@ msgstr "Chiedi del comportamento" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5275,19 +5275,19 @@ msgstr "" "strumento di analisi dei programmi di codice macchina{ph3}, fornisca " "l'eseguibile locale e una domanda:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Quale strumento di analisi dovrei usare?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA ha bisogno di uno di questi per leggere i programmi nativi:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5301,7 +5301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5314,7 +5314,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5325,7 +5325,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5341,14 +5341,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Il tuo agente di codifica" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Copia" @@ -5359,7 +5359,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5370,7 +5370,7 @@ msgstr "" "posizionamento del suono stereo. Spiega il calcolo e mostra il " "codice.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5381,7 +5381,7 @@ msgstr "" "1.07 locale. REA non include DX-Ball, quindi usa la tua copia o fai lo " "stesso tipo di domanda su un altro piccolo programma Windows che hai." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Come ottengo il percorso completo di un file?" @@ -5390,7 +5390,7 @@ msgstr "Come ottengo il percorso completo di un file?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5405,7 +5405,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5417,7 +5417,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5427,17 +5427,17 @@ msgstr "" "{ph0}Qualsiasi sistema:{ph1} trascinare il file in una finestra di terminale" " e il suo percorso appare." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Leggi i risultati di REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Leggi l'input" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5446,13 +5446,13 @@ msgstr "" "Le istruzioni caricano un argomento intero e lo convertono per l'aritmetica " "in virgola mobile. Questo è l'input assente dalla prima vista pseudocodice." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Segui il chiamante" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5463,12 +5463,12 @@ msgstr "" "moltiplicano la coordinata tile per 30; aggiunta {ph0} (20) dà la posizione " "dello schermo del mattone." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Leggi le costanti di riferimento" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5478,12 +5478,12 @@ msgstr "" " i valori effettivi; l'ordine di istruzioni indica all'agente come vengono " "utilizzati." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Scrivi e controlla la funzione recuperata" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5494,7 +5494,7 @@ msgstr "" "-500, 0 e 500 prima della conversione intera. Il calcolo mette il centro " "dello schermo al centro del campo stereo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5507,20 +5507,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Vedi l'indagine completa e il confronto assembly-to-C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Provalo con il tuo binario" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5535,7 +5535,7 @@ msgstr "" "Come viene analizzato questo file?\"o\" Quale funzione gestisce questa " "azione del menu?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5544,13 +5544,13 @@ msgstr "" "Se si conosce già il nome o l'indirizzo di una funzione, è possibile " "interrogarlo dal terminale. Per un'installazione Ghidra configurata:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Analisi delle funzioni" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5564,7 +5564,7 @@ msgstr "" "binario, quindi chiude la sua sessione. Le query MCP dell'agente " "riutilizzano il binario importato mentre la sessione è aperta." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5588,50 +5588,50 @@ msgstr "" "Recuperare un calcolo nativo con REA: ispezionare le istruzioni, seguire un " "chiamante, leggere le costanti e controllare ricostruito C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Analisi di programmi a codice macchina" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Copia esempio prompt" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Analisi delle funzioni di copia" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Vai al contenuto" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Impostare REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5639,7 +5639,7 @@ msgstr "{ph0}Impostare REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5647,7 +5647,7 @@ msgstr "{ph0}Dinosauro gioco{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5655,7 +5655,7 @@ msgstr "{ph0}Calcolatore{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5663,25 +5663,25 @@ msgstr "{ph0}Prova REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Approfondisci{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Reverse engineering, con il tuo agente di codifica" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Scopri come{ph0}funziona il software." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Copia questo prompt nel tuo agente di programmazione:" @@ -5694,33 +5694,33 @@ msgstr "Copia questo prompt nel tuo agente di programmazione:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Il tuo agente di codifica" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Copia" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Oppure esegui questo comando nel terminale:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Controlla e approva le modifiche previste, poi riavvia il tuo agente." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5728,7 +5728,7 @@ msgstr "{ph0}01{ph1} Decodifica rami" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5736,7 +5736,7 @@ msgstr "{ph0}02{ph1} Traccia chiamate" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5746,20 +5746,20 @@ msgstr "{ph0}03{ph1} Recuperare la regola" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Originale x64 * istruzioni selezionate{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * Quale ramo ·" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5769,29 +5769,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Due salti nello stesso posto. Quali operatori sono " "questi?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Cerca gli ID del comando, quindi etichetta il ramo." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Dividere ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Moltiplicare ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Che cosa fanno le funzioni chiamate?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5801,24 +5801,24 @@ msgstr "" "\"100 è chiaro. Le chiamate sono solo indirizzi. {ph0}Quale divide? Quale " "valore entra?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Ispezionare le funzioni di supporto e tracciare i valori memorizzati." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Dividere" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * Qual è la regola ·" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5828,20 +5828,20 @@ msgstr "" "\"Questo percorso si moltiplica per l'altro input. Cosi {ph0}10% significa " "10% di 200{ph1} dopo +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" "Assegnare un nome agli operandi e controllare entrambi i percorsi operatore." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Ragionamento illustrativo esperto" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5859,87 +5859,87 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Esempio prompt * Calcolatrice" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Esempio di risposta * in base ai risultati" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "Dopo +, il pulsante % prende {ph0}percentuale del primo numero.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA fornisce" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Istruzioni del gestore, codice decompilato e chiamate." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Il tuo agente spiega" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Quale ramo si applica, cosa calcola e come ricostruirlo." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Esempio 01 * Gioco di dinosauri di Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Perché il dinosauro diventa più veloce?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Gioca" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Salta ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Ricomincia" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Velocità" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Utilizzare la regola di accelerazione recuperata" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regola originale: inizia da 6, quindi aumenta verso 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5952,7 +5952,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5966,7 +5966,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -5974,12 +5974,12 @@ msgstr "" "Obiettivo ispezionato: {ph0}edizione del browser derivata da Chromium di " "wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Apri lo speed lab" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Cosa fa ogni parte" @@ -5990,7 +5990,7 @@ msgstr "Cosa fa ogni parte" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6007,7 +6007,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6024,7 +6024,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6034,13 +6034,13 @@ msgstr "" "{ph0}03 * Tu{ph1}{ph2}Cambiare la velocità e giocare{ph3}{ph4}Prova " "l'accelerazione originale, quindi scegli il tuo ritmo.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Vedi lo script, i controlli e come provare l'analisi" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6050,7 +6050,7 @@ msgstr "" "REA ispezionato l'edizione del browser HTTP tramite una connessione di debug" " locale e restituito il caricato {ph0}, compresa la sua fonte e digest." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6064,7 +6064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6081,7 +6081,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6099,7 +6099,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6108,34 +6108,34 @@ msgstr "" "{ph0}Codice di velocità ispezionato{ph1} · {ph2} Autori Chromium * Licenza " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Esempio 02 * Calcolatrice Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Ricrea il pulsante % della calcolatrice." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Reimposta" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% di 200 = 20. Quindi 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Illustrazione interattiva della regola percentuale ispezionata." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6147,7 +6147,7 @@ msgstr "Per questo esempio, {ph0} e {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6159,7 +6159,7 @@ msgstr "" "calcolatrice Windows. Recuperare le regole dopo + e×, quindi costruire una " "piccola calcolatrice che utilizza entrambi.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Con +" @@ -6167,13 +6167,13 @@ msgstr "Con +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Prendi il 10% del primo numero.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Con ×" @@ -6181,13 +6181,13 @@ msgstr "Con ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Trasforma il 10% in 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Dall'app installata a un pulsante % funzionante" @@ -6199,7 +6199,7 @@ msgstr "Dall'app installata a un pulsante % funzionante" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6217,7 +6217,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6229,12 +6229,12 @@ msgstr "" "regole{ph3}{ph4}Crosscheck il ramo con la fonte di Microsoft, quindi provare" " + e × sopra.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Vedi il codice reale e come è stata controllata la risposta" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6255,7 +6255,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6265,17 +6265,17 @@ msgstr "" "{ph0}Percentuale di attuazione{ph1} · {ph2}I test case di Microsoft{ph3} · " "{ph4}Guida all'installazione nativa{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "La tua prima indagine" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Prova REA su una piccola app." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6284,17 +6284,17 @@ msgstr "" "Scarica il nostro esempio di Note, traccia la sua esportazione CSV e " "controlla un input modificato." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Prova l'esempio guidato" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Programmi a codice macchina" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6303,17 +6303,17 @@ msgstr "" "Ispezionare funzioni, stringhe, riferimenti e relazioni di chiamata di " "funzione in eseguibili e librerie." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Guida all'analisi dei programmi di codice macchina" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6322,17 +6322,17 @@ msgstr "" "Mappa moduli, percorsi, IPC e dipendenze native da una cartella " "dell'applicazione o da un archivio ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Flussi di lavoro delle applicazioni" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Attività del browser e runtime" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6341,12 +6341,12 @@ msgstr "" "Cattura l'attività del browser o del processo selezionata, quindi confronta " "i risultati tra le varie esecuzioni." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Guida all'osservazione del browser" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Hai domande?" @@ -6365,27 +6365,27 @@ msgstr "" "Decodificare app, binari e comportamento del browser con il tuo agente di " "codifica. Segui guide chiare e prova esempi interattivi con REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Copia REA prompt di installazione" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Copia comando setup" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Seguire l'analisi calcolatrice manuale" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Copia Calcolatrice percentuale domanda" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6394,27 +6394,27 @@ msgstr "" "Dinosauro mini-gioco. Utilizzare il pulsante di salto o premere Spazio " "mentre il gioco è focalizzato." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copia dinosaur analysis prompt" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Scegli il calcolo" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Copia Calcolatrice analisi prompt" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -6423,25 +6423,25 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Casa{ph1} / {ph2}Vetrina{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Caso di studio · Autenticatore Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Come funziona un autenticatore{ph0}generare un codice di accesso?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6451,17 +6451,17 @@ msgstr "" " in un APK Android, quindi ricostruiscilo con un orologio che puoi " "controllare." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * Versione ufficiale APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Vedi Aegis su GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Da un APK a un codice che puoi riprodurre" @@ -6472,7 +6472,7 @@ msgstr "Da un APK a un codice che puoi riprodurre" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6490,7 +6490,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6508,7 +6508,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6520,14 +6520,14 @@ msgstr "" "codice.{ph3}{ph4}Una nuova demo del browser riproduce la regola e la " "confronta con i casi di riferimento pubblico.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "In questo caso di studio" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6535,7 +6535,7 @@ msgstr "{ph0}Chiedi al tuo agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6543,7 +6543,7 @@ msgstr "{ph0}Prova il generatore di codice{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6551,7 +6551,7 @@ msgstr "{ph0}Trova il codice con REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6559,7 +6559,7 @@ msgstr "{ph0}Leggi il calcolo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6567,20 +6567,20 @@ msgstr "{ph0}Controlla la ricostruzione{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Ispezionare il APK da soli{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Chiedi al tuo agente" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6598,21 +6598,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Il tuo agente di codifica" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Copia" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6622,14 +6622,14 @@ msgstr "" "Un prompt di esempio per il APK scaricato, con l'analisi Android di REA " "configurata. {ph0}Ottenere il APK e la configurazione di analisi ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Prova il generatore di codice" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6641,33 +6641,33 @@ msgstr "" "numero di blocco con la chiave dell'account per generare un codice. La " "stessa chiave e blocco producono lo stesso codice." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Spostare l'orologio attraverso 60 secondi" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Tempo" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "secondo" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Il nostro orologio di esempio regolabile" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "blocco di 30 secondi" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Blocco" @@ -6676,35 +6676,35 @@ msgstr "Blocco" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 secondi{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Codice generato" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Chiave account + blocco → sei cifre" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Tempo di esempio, in secondi" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 secondi" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 secondi" @@ -6713,7 +6713,7 @@ msgstr "60 secondi" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6725,7 +6725,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6735,7 +6735,7 @@ msgstr "" "La chiave è fissa, pubblica {ph0}Dati di prova RFC 6238{ph1}. La demo " "implementa il calcolo recuperato dal APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6744,18 +6744,18 @@ msgstr "" "Il diagramma mostra il risultato a 59 secondi. Abilita JavaScript per " "cambiare l'orologio." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Trova il codice con REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Restringere il APK a tre classi" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6766,14 +6766,14 @@ msgstr "" "avanzamento e gli account importati. TOTP indica una password una tantum " "basata sul tempo." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Collegare il generatore al display dell'app" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6784,7 +6784,7 @@ msgstr "" "base. Ispezionare {ph0} poi mostra il display chiamata {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6794,14 +6794,14 @@ msgstr "" "Le richieste mostrano un percorso di input abbreviato. I nomi delle classi " "dei risultati omettono il comune {ph0} prefisso." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Leggi il calcolo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6816,7 +6816,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6824,7 +6824,7 @@ msgstr "{ph0}01{ph1} Blocco di tempo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6832,7 +6832,7 @@ msgstr "{ph0}02{ph1} Chiave + blocco" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6840,7 +6840,7 @@ msgstr "{ph0}03{ph1} Sei cifre" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6852,7 +6852,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6866,7 +6866,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6880,7 +6880,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6891,7 +6891,7 @@ msgstr "" "visualizzazione. Il pannello di destra è un riassunto esplicativo. {ph0} Il " "codice Aegis è GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "All'interno del generatore" @@ -6900,7 +6900,7 @@ msgstr "All'interno del generatore" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6910,7 +6910,7 @@ msgstr "" "Il APK rilasciato mette {ph0} in {ph1}. REA segue la chiamata da {ph2} e " "restituisce questo corpo; la fonte originale chiama l'helper {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6927,20 +6927,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Confronta con la sorgente di rilascio corrispondente{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Controlla la ricostruzione" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6953,29 +6953,29 @@ msgstr "" "indipendente su {ph0}133 casi di prova{ph1}, compresi i limiti del blocco " "temporale e i codici che iniziano con zero." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Tempo di esempio" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Codice a sei cifre" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 secondi" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 secondi" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6986,17 +6986,17 @@ msgstr "" "in {ph0}RFC 6238{ph1}. Controlla l'implementazione del browser contro di " "loro:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Eseguire controlli di riferimento" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Leggi il calcolo della demo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -7005,7 +7005,7 @@ msgstr "" "I casi di riferimento utilizzano otto cifre. Il controllo verifica anche i " "loro risultati a sei cifre." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7014,14 +7014,14 @@ msgstr "" "Verifica esegue metodi Java estratti e la nuova demo. L'Android APK è stato " "ispezionato staticamente." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Ispezionare il APK da soli" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7033,7 +7033,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7043,18 +7043,18 @@ msgstr "" "Android analysis ha bisogno di un JDK completo 17 o successivo. Selezionalo " "con {ph0} o {ph1}. Questo caso ha usato JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Puntare REA sul file del provider e ispezionare APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7066,7 +7066,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7076,7 +7076,7 @@ msgstr "" "Una prossima domanda: {ph0}cosa succede quando un account utilizza otto " "cifre o un intervallo di tempo diverso?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Fonte" @@ -7092,7 +7092,7 @@ msgstr "Fonte" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7106,13 +7106,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, 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 casi di riferimento{ph1} · {ph2}Dati di prova demo{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7137,37 +7137,37 @@ msgstr "" "Ispeziona Aegis Android APK con REA, recupera il calcolo del codice di " "accesso a sei cifre e prova una ricostruzione con un orologio regolabile." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Studio di caso Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Copia il prompt di esempio di Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Segui il calcolo del codice di accesso" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Copia il comando di ispezione APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -7176,26 +7176,26 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Casa{ph1} / {ph2}Vetrina{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Caso di studio * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Trova la bandiera in{ph0}un binario CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7206,17 +7206,17 @@ msgstr "" "regole in equazioni e trovare un input che faccia stampare il programma " "originale {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "quadrati mascherati bandiera checker * Facile * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Visualizza la sfida originale" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Da un binario a una risposta controllata" @@ -7227,7 +7227,7 @@ msgstr "Da un binario a una risposta controllata" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7245,7 +7245,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7263,7 +7263,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7275,21 +7275,21 @@ msgstr "" "Corretta!{ph3}{ph4}Uno script Python risolve le equazioni. REA cattura il " "programma originale accettando il risultato.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" "La sfida è di joseph, pubblicato nel repository ufficiale di DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "In questo caso di studio" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7297,7 +7297,7 @@ msgstr "{ph0}Trova il codice di controllo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7305,7 +7305,7 @@ msgstr "{ph0}Leggi una maschera{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7313,7 +7313,7 @@ msgstr "{ph0}Assembly a codice leggibile{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7321,7 +7321,7 @@ msgstr "{ph0}Risolvi le equazioni{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7329,20 +7329,20 @@ msgstr "{ph0}Controlla la risposta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Provalo tu stesso{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Trova il codice di controllo" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7360,17 +7360,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Il tuo agente di codifica" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Copia" @@ -7381,7 +7381,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7393,7 +7393,7 @@ msgstr "" "flag. Spiega come funzionano i controlli, quindi verifica la risposta con il" " programma originale.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7402,12 +7402,12 @@ msgstr "" "Un prompt di esempio, con la sfida scaricata disponibile localmente e " "un'analisi del provider di programmi di codice macchina collegato." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Seguire il prompt di input per la sua funzione" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7416,14 +7416,14 @@ msgstr "" "Il riferimento fornisce all'agente un posto in cui indagare, anche se i nomi" " delle funzioni originali dell'eseguibile sono stati rimossi." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Leggi il correttore e i suoi due aiutanti" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7436,7 +7436,7 @@ msgstr "" " con un numero memorizzato. Sua {ph0}- passi byte attraverso {ph1} i byte " "danno 26 maschere." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7446,12 +7446,12 @@ msgstr "" "destinazione locale viene abbreviato per la visualizzazione; gli indirizzi " "si riferiscono all'immagine importata di REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Un controllo rivela un carattere" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7464,14 +7464,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" "Il settimo controllo seleziona solo una posizione. {ph0}Apri figura{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Leggi la maschera e il suo obiettivo dal binario" @@ -7480,7 +7480,7 @@ msgstr "Leggi la maschera e il suo obiettivo dal binario" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7493,12 +7493,12 @@ msgstr "" "Insieme, questi byte dicono all'agente che {ph2}, in modo che il carattere è" " {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Dalle istruzioni a un controllo leggibile" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7509,7 +7509,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7517,7 +7517,7 @@ msgstr "{ph0}01{ph1} Inizia" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7525,7 +7525,7 @@ msgstr "{ph0}02{ph1} Selezionare" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7533,7 +7533,7 @@ msgstr "{ph0}03{ph1} Aggiungere" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7541,18 +7541,18 @@ msgstr "{ph0}04{ph1} Anticipo" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Confrontare" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * istruzioni originali selezionate" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Leggibile C * riepilogo di un controllo" @@ -7560,7 +7560,7 @@ msgstr "Leggibile C * riepilogo di un controllo" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7568,7 +7568,7 @@ msgstr "{ph0}01 * Inizia da zero.{ph1} {ph2} contiene la somma corrente." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7580,7 +7580,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7592,7 +7592,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7606,7 +7606,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7616,7 +7616,7 @@ msgstr "" "{ph0}05 * Confronta con l'obiettivo memorizzato.{ph1} Il chiamante riceve la" " somma in {ph2}. Una mancata corrispondenza salta a {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7626,12 +7626,12 @@ msgstr "" "un riassunto esplicativo con nomi descrittivi e un ciclo appiattito a 36 " "celle." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Risolvi le 26 equazioni" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7643,13 +7643,13 @@ msgstr "" "1441. Le selezioni sovrapposte danno equazioni che un piccolo script Python " "può risolvere insieme." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * estratto del risolutore" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7663,19 +7663,19 @@ msgstr "" "lettere, cifre, caratteri di sottolineatura e parentesi graffe. Il download " "completo include tutte le 26 maschere e obiettivi." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Scarica il risolutore completo" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Controlla la risposta con il programma originale" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7687,47 +7687,47 @@ msgstr "" "accettando il flag risolto. Modifica di un carattere selezionato da {ph0} " "per {ph1} fa la prima somma 1440 invece di 1441, e il programma lo rifiuta." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Input" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Uscita osservata" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Codice di uscita" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Bandiera del risolutore" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Un personaggio cambiato" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Mostra il flag recuperato e l'output catturato" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * uscita del programma originale" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Copia bandiera" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7737,12 +7737,12 @@ msgstr "" "sfida pubblicati dagli organizzatori, controllati dopo aver risolto il " "binario." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Fonte, identità di destinazione e dettagli di analisi" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7753,7 +7753,7 @@ msgstr "" "utilizzando REA 4.1.0 con Ghidra 12.1.4 su Linux x64. Il binario è un ELF " "x86-64 spogliato, 15.248 byte." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7776,7 +7776,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7786,12 +7786,12 @@ msgstr "" "{ph0}Confronta con la fonte degli organizzatori{ph1} · {ph2}Metadati sfida e" " flag{ph3} · {ph4} Note di prova REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Provalo tu stesso" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7801,13 +7801,13 @@ msgstr "" "il prompt sopra per indagare con il proprio agente o eseguire lo script " "incluso." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminale * risolvere ed eseguire" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7819,7 +7819,7 @@ msgstr "" "Risolvere i bisogni di Python e {ph0}. L'esecuzione dell'eseguibile " "originale richiede Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Configura REA con il tuo agente di codifica" @@ -7840,28 +7840,28 @@ msgstr "" "DownUnderCTF. Trova le funzioni di controllo, estrai le maschere e confronta" " un flag recuperato con il programma originale." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Caso di studio CTF flag-checker" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Copia CTF esempio prompt" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" "Equazione maschera CTF; scorrere orizzontalmente su schermi più piccoli" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7872,42 +7872,42 @@ msgstr "" "14. Solo quella cella contribuisce alla somma. Il suo codice di carattere " "richiesto è 55, il che significa che il carattere è 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Segui il controllo CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Copia CTF assembly" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Copia controllo CTF leggibile" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Copia estratto del risolutore CTF" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Copia recuperato bandiera" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Copia i comandi del risolutore CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -7916,25 +7916,25 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Casa{ph1} / {ph2}Vetrina{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Caso di studio * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Ricostruzione DX-Ball {ph0}dal suo eseguibile." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7943,14 +7943,14 @@ msgstr "" "L'obiettivo è una versione C mantenibile del gioco Windows del 1996. REA " "aiuta l'agente a ispezionare l'originale, una funzione alla volta." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7962,14 +7962,14 @@ msgstr "" "i chiamanti e le letture dei dati; il progetto di ricostruzione implementa e" " verifica il risultato. {ph0}Apri figura{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "In questo caso di studio" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7977,7 +7977,7 @@ msgstr "{ph0}Progetto{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7985,7 +7985,7 @@ msgstr "{ph0}Suono pan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7993,23 +7993,23 @@ msgstr "{ph0}Controllo del risultato{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Continua il lavoro{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "funzioni C mantenute" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "confronto con il codice originale" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "funzioni con byte compilati corrispondenti" @@ -8020,7 +8020,7 @@ msgstr "funzioni con byte compilati corrispondenti" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8030,12 +8030,12 @@ msgstr "" "Checkpoint del progetto: 7 ottobre 2026. {ph0}Progress ledger{ph1} · " "{ph2}Copertura di prova{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Il progetto finora" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8050,12 +8050,12 @@ msgstr "" "gioco giocabile continua con la fisica della palla e della pagaia, la " "gestione dei potenziamenti e l'integrazione con Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Trovare il calcolo della posizione del suono sinistra/destra" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8075,17 +8075,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Il tuo agente di codifica" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Copia" @@ -8096,7 +8096,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8107,7 +8107,7 @@ msgstr "" "posizionamento del suono stereo. Spiega il calcolo e mostra il " "codice.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8118,7 +8118,7 @@ msgstr "" "disponibile. L'indagine di seguito mostra le query REA e le prove dietro la " "risposta." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8133,7 +8133,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8147,12 +8147,12 @@ msgstr "" "input dello stack e operazioni in virgola mobile. Questa discrepanza ha dato" " all'agente un motivo concreto per continuare a indagare." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "La prima vista decompilatore" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8162,18 +8162,18 @@ msgstr "" "riportate di seguito rivela l'input e il calcolo che alimenta quella " "chiamata." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Tre domande risposte attraverso REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Recuperare l'input mancante" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8183,14 +8183,14 @@ msgstr "" "Il risultato della funzione include istruzioni insieme a pseudocodice e " "chiamanti. Qui, {ph0} espone l'input intero mancante dalla vista decompiler." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Seguire il chiamante per capire l'input" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8201,12 +8201,12 @@ msgstr "" "precedenti scala {ph0} con 30; l'aggiunta di 20 dà la coordinata dello " "schermo del mattone, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Leggere i valori dietro gli indirizzi di memoria" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8215,12 +8215,12 @@ msgstr "" "I byte restituiti stabiliscono le due costanti aritmetiche e la scala pan " "iniziale. L'agente ora ha i valori necessari per l'espressione C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Dai risultati di REA a C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8231,7 +8231,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8239,7 +8239,7 @@ msgstr "{ph0}01{ph1} Input" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8247,7 +8247,7 @@ msgstr "{ph0}02{ph1} Moltiplicare" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8255,7 +8255,7 @@ msgstr "{ph0}03{ph1} Sottrarre" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8263,18 +8263,18 @@ msgstr "{ph0}04{ph1} Scala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Restituire" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Originale x86 * estratto" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Ricostruito C" @@ -8284,7 +8284,7 @@ msgstr "Ricostruito C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8304,7 +8304,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8321,7 +8321,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8339,7 +8339,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8356,7 +8356,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8368,7 +8368,7 @@ msgstr "" " {ph3}, identificato nei risultati del callee di REA. Il C lancia il " "risultato a {ph4}; originale-x86 confronti controllare il valore restituito." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8379,23 +8379,23 @@ msgstr "" "ritorno. L'elenco completo di seguito include anche i negozi intermedi e " "l'impostazione e la pulizia delle funzioni." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Assemblea completa e prove a sostegno" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA risultato * 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Cosa fornisce il chiamante" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8405,54 +8405,54 @@ msgstr "" "La funzione brick-hit a {ph0} ridimensiona la sua coordinata tile di 30, " "aggiunge 20, quindi la spinge prima della chiamata:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Ciò che i dati leggono stabiliscono" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA byte legge, decodificato come little-endian raddoppia" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Indirizzo" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Valore" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Usato per" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Prima moltiplicazione" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Sottrazione" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} inizialmente" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Scala pan memorizzata" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8468,7 +8468,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8478,12 +8478,12 @@ msgstr "" "{ph0}Fonte mantenuta{ph1} · {ph2}Note di indagine e riferimenti alle " "prove{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Controllo della funzione recuperata" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8493,12 +8493,12 @@ msgstr "" "corrispondono all'originale e i suoi byte compilati corrispondono " "all'eseguibile." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 casi di comportamento" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8509,12 +8509,12 @@ msgstr "" "ritorno con il C mantenuto.Coprono ogni posizione intera da 0 a 640 a cinque" " scale pan: 0, 0.5, 1, 20 e -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 byte corrispondenti" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8525,7 +8525,7 @@ msgstr "" "del compilatore corrisponde alla funzione completa dopo aver applicato le " "rilocazioni riviste e controllato le costanti di riferimento." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8540,18 +8540,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Leggi i dettagli di riproduzione del compilatore{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Continua l'indagine" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8563,7 +8563,7 @@ msgstr "" "pertinenti, recuperare il loro stato e le dipendenze, quindi confrontare " "l'implementazione con l'originale." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8573,7 +8573,7 @@ msgstr "" "di installazione del progetto DX-Ball e fornire il relativo target originale" " corrispondente. Allora corri:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "Nel checkout DX-Ball" @@ -8582,7 +8582,7 @@ msgstr "Nel checkout DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8596,7 +8596,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8612,7 +8612,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8636,7 +8636,7 @@ msgstr "" "Seguire una ricostruzione DX-Ball dall'analisi binaria attraverso REA a C " "mantenuto, test originali-x86 e corrispondenti byte di funzioni compilate." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8644,7 +8644,7 @@ msgstr "" "DX-Ball sound-pan investigation; scorri orizzontalmente su schermi più " "piccoli" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8660,70 +8660,70 @@ msgstr "" "dall'originale x86 in 3.205 casi e dal replay del compilatore VC4.0 che " "corrisponde a 63 byte." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball ricostruzione caso di studio" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Copia esempio prompt" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Seguire il calcolo di sinistra / destra posizione del suono" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Copia estratto di assemblaggio originale" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Copia suono-funzione pan" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Copia suono completo-pan assembly" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Copia il comando di analisi DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Casa{ph1} / Vetrina" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Studi di casi REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8732,17 +8732,17 @@ msgstr "" "Android, giochi, Electron e una sfida CTF, con codice, figure e risultati " "controllati." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * Analisi APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Come un autenticatore genera un codice di accesso" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8753,22 +8753,22 @@ msgstr "" "Traccia i metodi di generazione con REA, quindi sposta un orologio demo per " "vedere perché il codice cambia ogni 30 secondi." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Leggi il case study di Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Analisi di programmi a codice macchina" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Risolvere un CTF flag checker" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8779,22 +8779,22 @@ msgstr "" " controllo, trasforma maschere e somme in equazioni, quindi verifica il flag" " risolto con il programma originale." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Leggi il caso di studio CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Nativo * Ricostruzione" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball ' s calcolo di sinistra / destra posizione del suono" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8806,22 +8806,22 @@ msgstr "" "costanti numeriche portano a una piccola funzione C, verificata rispetto al " "comportamento originale e a tutti i 63 byte compilati." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Leggi il caso di studio DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Funzione di tracciamento" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Come Notion copia testo e HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8833,22 +8833,22 @@ msgstr "" "come un piccolo marcatore HTML mantiene i dati dei blocchi ricchi collegati " "a una copia." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Leggi il caso di studio Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Ricostruzione" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Come TH04 mira un anello di proiettili" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8859,17 +8859,17 @@ msgstr "" " operazioni di moltiplicazione, divisione e coordinamento a C++ leggibile, " "quindi guarda come producono un anello rivolto al giocatore." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Leggi il caso di studio TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Guide passo-passo" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8878,7 +8878,7 @@ msgstr "" "Le guide seguono un calcolo nativo, un'esportazione Electron e una richiesta" " del browser. Ognuno inizia con un prompt e un obiettivo concreto." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Leggi le guide" @@ -8897,12 +8897,12 @@ msgstr "" "Segui le indagini REA attraverso codice, figure e demo: un autenticatore " "Android, DX-Ball , Notion , TH04 e un correttore di flag DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -8911,25 +8911,25 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Casa{ph1} / {ph2}Vetrina{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Caso di studio * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Come copie Notion{ph0}testo e HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8939,12 +8939,12 @@ msgstr "" "attraverso il precarico e il processo principale, allo scrittore degli " "appunti di Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 · JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Il ponte all'interno del pacchetto desktop Notion" @@ -8956,7 +8956,7 @@ msgstr "Il ponte all'interno del pacchetto desktop Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8973,7 +8973,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8990,7 +8990,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9007,7 +9007,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9018,13 +9018,13 @@ msgstr "" "testo e l'HTML forniti.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Un canale unisce i due lati: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9034,14 +9034,14 @@ msgstr "" " e principale. La risoluzione dei wrapper rivela le chiamate Electron dietro" " quei nomi." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "In questo caso di studio" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9049,7 +9049,7 @@ msgstr "{ph0}Segui il ponte degli appunti{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9057,19 +9057,19 @@ msgstr "{ph0}Mantenere la struttura di un blocco{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Altri esempi e fonti{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Dove va l'operazione di copia?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9089,17 +9089,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Il tuo agente di codifica" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Copia" @@ -9110,7 +9110,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9120,7 +9120,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Utilizzare REA per tracciare come Notion copia testo e HTML " "negli appunti di sistema. Mostra il codice ad ogni passaggio.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9129,12 +9129,12 @@ msgstr "" "Un prompt di esempio con il pacchetto di applicazioni locali di Notion " "disponibile per l'agente di codifica." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA trova dove iniziare a leggere" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9145,13 +9145,13 @@ msgstr "" "e la chiamata che invia una richiesta IPC. Entrambi i risultati sono dotati " "di intervalli di origine nel pacchetto minificato:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA risultati → due posti da aprire" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9165,7 +9165,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9179,12 +9179,12 @@ msgstr "" "dà all'agente qualcosa di preciso da cercare nel pacchetto principale. I " "quattro estratti qui sotto mostrano il percorso che collega." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Quattro brevi pezzi di codice" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9193,13 +9193,13 @@ msgstr "" "Semplificato dal pacchetto JavaScript, con nomi di variabili leggibili. I " "membri non correlati sono omessi." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Inizia dall'API esposta alla pagina" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9209,13 +9209,13 @@ msgstr "" "Questo membro fornisce il nome del canale. L'attuazione di {ph0} ci dice " "come la richiesta lascia il processo della pagina." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Risolvere il wrapper del precarico" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9226,14 +9226,14 @@ msgstr "" "risposta di Electron. Ora possiamo cercare {ph0} dal lato del processo " "principale." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Controlla come è registrato il ricevitore" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9243,12 +9243,12 @@ msgstr "" "Il processo principale utilizza un altro wrapper. Sua {ph0} metodo registra " "un {ph1} ricevitore per quel canale." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Trova la scrittura e il suo controllo mittente" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9259,13 +9259,13 @@ msgstr "" "passa i dati forniti all'API degli appunti di Electron. Il canale e i due " "wrapper risolti collegano il metodo esposto a questa chiamata." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "In che modo un blocco copiato mantiene la sua struttura?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9275,27 +9275,27 @@ msgstr "" "L'editor web di Notion invia testo e HTML attraverso {ph0}. Mantiene i dati " "del blocco localmente e inserisce un ID nell'HTML copiato per collegarli." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Collegamenti HTML ai dati di blocco salvati" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Leggi l'ID HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Trova lo stesso ID locale" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Ripristinare i dati del blocco Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9305,7 +9305,7 @@ msgstr "" " blocco quando gli ID corrispondono; una voce obsoleta restituisce solo " "testo e HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9314,24 +9314,24 @@ msgstr "" "In incolla, Notion cerca l'ID HTML e lo controlla rispetto alla copia " "salvata. Gli ID corrispondenti ripristinano i dati del blocco." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Formato appunti registrato da risorse Web memorizzate nella cache il 13 " "luglio 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Altri esempi e fonti" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Un altro esempio: tabelle Markdown" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9340,12 +9340,12 @@ msgstr "" "Notion analizza Markdown in dati di blocco. Questo esempio mostra come una " "tabella diventa intestazione e righe di dati." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Una tabella attraverso il parser Markdown di Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9354,13 +9354,13 @@ msgstr "" "Uscita registrata da un parser Markdown estratto. La tabella diventa righe e" " celle." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Un altro percorso: la connessione SQLite offline" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9374,7 +9374,7 @@ msgstr "" "l'altra a un processo di utilità SQLite. I successivi lotti di istruzione e " "i risultati viaggiano su quella porta." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9384,7 +9384,7 @@ msgstr "" "database e perché tracciare solo la richiesta IPC iniziale manca la " "conversazione successiva." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Fonti e come leggere gli estratti" @@ -9392,7 +9392,7 @@ msgstr "Fonti e come leggere gli estratti" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9410,7 +9410,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9426,7 +9426,7 @@ msgstr "" "eseguito moduli estratti e piccoli cablaggi; i loro output descrivono quelle" " sonde piuttosto che una sessione di interfaccia utente desktop catturata." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9441,7 +9441,7 @@ msgstr "" "pacchetto." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9459,7 +9459,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9473,7 +9473,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9499,52 +9499,52 @@ msgstr "" "wrapper IPC e il processo principale, con brevi estratti di codice e uno " "sguardo al suo ricco formato di appunti." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Studio di caso Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Copia il prompt di analisi Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Copia estratto di precarico Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Copia Notion invoke wrapper estratto" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Copia estratto del wrapper del gestore Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Copia estratto del ricevitore degli appunti Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Ripristino dei dati degli appunti ricchi su incolla" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Torna in alto" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -9553,25 +9553,25 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Casa{ph1} / {ph2}Vetrina{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Caso di studio · Touhou 4: Lotus Land Story" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Ricostruzione di TH04{ph0}modelli di proiettile." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9581,17 +9581,17 @@ msgstr "" "REA per ispezionare la funzione DOS originale, quindi seguire le sue " "istruzioni in C++leggibile." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * DOS a 16 bit * C++ e assemblaggio" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Visualizza la ricostruzione TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Dalle istruzioni originali alla fonte controllata" @@ -9602,7 +9602,7 @@ msgstr "Dalle istruzioni originali alla fonte controllata" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9618,7 +9618,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9636,7 +9636,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9652,7 +9652,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9664,7 +9664,7 @@ msgstr "" " controlli del compilatore registrati coprono il codice di generazione " "bullet che contiene questo helper.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9673,14 +9673,14 @@ msgstr "" "REA restituisce il codice originale e le sue prove di analisi. Il progetto " "TH04 fornisce i controlli di origine e compilatore mantenuti." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "In questo caso di studio" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9688,7 +9688,7 @@ msgstr "{ph0}Il bullet ring{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9696,7 +9696,7 @@ msgstr "{ph0}Cosa restituisce REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9704,7 +9704,7 @@ msgstr "{ph0}Montaggio in C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9712,18 +9712,18 @@ msgstr "{ph0}Verifica della fonte{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Il progetto completo{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Come un anello mira al giocatore" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9742,16 +9742,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Il tuo agente di codifica" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Copia" @@ -9762,7 +9762,7 @@ msgstr "Copia" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9772,7 +9772,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Usa REA per scoprire come TH04 crea un anello di proiettili " "e lo mira al giocatore. Spiega il calcolo e mostra il codice.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9782,7 +9782,7 @@ msgstr "" "ricostruzione disponibili localmente." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9796,7 +9796,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9807,12 +9807,12 @@ msgstr "" "16, la direzione del giocatore 40 e la rotazione del modello 0. {ph0}Apri " "figura{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Il modello di cottura nella fonte recuperata" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly's ring attack * fonte estratto" @@ -9821,7 +9821,7 @@ msgstr "Elly's ring attack * fonte estratto" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9831,13 +9831,13 @@ msgstr "" "Queste linee selezionano il modello prima della difficoltà e della messa a " "punto delle prestazioni. {ph0}Leggi la fonte dell'attacco{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Cosa restituisce REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9849,12 +9849,12 @@ msgstr "" "proiettile. REA restituisce le sue istruzioni, pseudocodice e riferimenti. " "Tre parti di questo risultato spiegano il modello." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Controllare l'immagine DOS prima di leggere il suo codice" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9864,7 +9864,7 @@ msgstr "" "all'eseguibile fornito. Il percorso sopra è abbreviato per la " "visualizzazione." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Leggi l'anello moltiplica e dividi" @@ -9872,7 +9872,7 @@ msgstr "Leggi l'anello moltiplica e dividi" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9884,12 +9884,12 @@ msgstr "" "quindi la divisione utilizza il conteggio letto da {ph1}. I nomi di origine " "mantenuti quel campo {ph2}. La sequenza completa appare sotto." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Trova dove il modello gira verso il giocatore" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9903,12 +9903,12 @@ msgstr "" "REA consente all'agente di controllare le operazioni originali dietro di " "loro." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Dall'assembly al C++leggibile" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9921,7 +9921,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9929,7 +9929,7 @@ msgstr "{ph0}01{ph1} Indice" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9937,7 +9937,7 @@ msgstr "{ph0}02{ph1} Spazio" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9945,7 +9945,7 @@ msgstr "{ph0}03{ph1} Obiettivo" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9953,18 +9953,18 @@ msgstr "{ph0}04{ph1} Ruotare" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Memorizzare" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * istruzioni originali a 16 bit" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "C++ leggibile * riepilogo dell'anello mirato" @@ -9972,7 +9972,7 @@ msgstr "C++ leggibile * riepilogo dell'anello mirato" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9986,7 +9986,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10002,7 +10002,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10018,7 +10018,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10033,7 +10033,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10047,7 +10047,7 @@ msgstr "" " cast di byte senza segno. La sorgente circostante converte anche questo " "angolo e velocità in velocità." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10059,7 +10059,7 @@ msgstr "" " controlli del compilatore riportati di seguito si applicano all'origine " "mantenuta nel progetto collegato." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Leggi l'anello mantenuto e la fonte aim" @@ -10076,7 +10076,7 @@ msgstr "Leggi l'anello mantenuto e la fonte aim" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10086,12 +10086,12 @@ msgstr "" "{ph0}Anello macro{ph1} · {ph2}Sorgente di mira e velocità{ph3} · " "{ph4}Rappresentazione angolare{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Verifica della fonte mantenuta" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10101,12 +10101,12 @@ msgstr "" "bullet, incluso questo helper, con la sua toolchain Turbo C++ 4.0 J " "bloccata." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 byte corrispondenti" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10115,12 +10115,12 @@ msgstr "" "Il codice di generazione bullet compilato corrisponde a una sezione di 2.139" " byte dell'eseguibile originale." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Due build pulite" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10133,66 +10133,66 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" "Registrato il 3 ottobre 2026. {ph0}Leggi i controlli del compilatore{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Identità target e ambito di analisi" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Obiettivo originale" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156,258 byte, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Helper entry" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} nell ' immagine caricata di REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Offset file originale" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, restituito da {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Ispezione del codice registrato" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 Ottobre 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10203,7 +10203,7 @@ msgstr "" " il trasferimento sovrapposto." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10219,7 +10219,7 @@ msgstr "" "riportati." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10236,7 +10236,7 @@ msgstr "" "bloccata dal suo repository manifest, con la provenienza indipendente di " "pristine-dump ancora aperta." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10247,12 +10247,12 @@ msgstr "" "tempi e il comportamento hardware PC-98 hanno controlli di runtime separati " "nel progetto di ricostruzione." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "La ricostruzione completa TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10265,7 +10265,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10277,7 +10277,7 @@ msgstr "{ph0}Esplora il repository TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10293,7 +10293,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10309,7 +10309,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10335,22 +10335,22 @@ msgstr "" "l'assemblea e recuperato C++ per vedere come un anello di proiettili è " "distanziato e rivolto al giocatore." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Caso di studio TH04 bullet-pattern" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Copia il prompt di esempio di TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10358,7 +10358,7 @@ msgstr "" "TH04 anelli di proiettile fissi e mirati; scorrere orizzontalmente su " "schermi più piccoli" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10372,27 +10372,27 @@ msgstr "" "giocatore. Entrambi mantengono una spaziatura di 16 unità angolari o 22,5 " "gradi." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Copia TH04 modello di cottura" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Seguire il calcolo dell'anello di puntamento TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Copia estratto dell'assemblea TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Copia leggibile mirato-anello di calcolo" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Torna in alto" @@ -10879,597 +10879,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Stessa spaziatura: 256 ÷ 16 = 16 unità angolari = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Casi pratici" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Inizia" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Guide" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Codice sorgente" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Licenza MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Unisciti alla community" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Seguici su X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * sorgente script selezionata" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Codice sorgente" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Uscita formatter prevista" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Istruzione" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Chiamante" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Costante" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Funzione C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Pulsante" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API Precarico" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "File CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Il tuo click" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Richiesta acquisita" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Esporta script" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA risultato * riepilogo.estratto ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Estratto di istruzioni REA * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA chiamante estratto * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Risultati byte REA * interpretati come doppi little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Recuperato C * estratto" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Vetrina →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Impostazioni selezionate dallo script ispezionato" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Riepilogo leggibile del gestore %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * istruzioni originali selezionate" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "ID operatore * Fonte di Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → agente * risultati selezionati" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → agente * metodi e chiamanti" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * Java decompilato selezionato" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Riepilogo leggibile * interpretazione dell'agente" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, corpo completo" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Scarica Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Scarica Android analysis provider" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → agente * risultati selezionati" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agente * istruzioni selezionate" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agente → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → agente * settima voce" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Eseguibile originale * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Scarica la sfida originale" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Scarica risolutore" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Risultato REA * estratto di pseudocodice" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agente * estratto di istruzioni" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → agente * estratto del chiamante" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agente → REA * due {ph0} richiesta" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Risultati byte REA * decodificati come doppi" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Inizia con il tuo obiettivo" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Generazione di codice" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Regola recuperata" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Orologio regolabile" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binario" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Controllo del codice" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Equazione" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Esatto!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Eseguibile" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Risultati REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Recuperato C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Convalida" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "App pacchettizzata" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "API esposte" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Wrapper IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Appunti" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Codice DOS originale" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Istruzioni REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Calcolo dell'angolo" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Anello di proiettile" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "API pagina esposta" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Renderer Chiamata IPC" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Inviato agli appunti di sistema" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Salvato localmente da Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Ingresso markdown" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Uscita parser strutturata * estratto" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analizza la tua app" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agente → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → agente * campi selezionati" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agente * estratto di istruzioni" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Stesso risultato di funzione * estratto aim" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Corrispondente mantenuto C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Macro anello * Ramo TH04, estratto" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Angolo e velocità * fonte estratto" @@ -11503,7 +11503,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11520,7 +11520,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11541,7 +11541,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11562,7 +11562,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11581,7 +11581,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11594,14 +11594,14 @@ msgstr "" "approvazione. Poi verifica l’installazione.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Ricostruzione · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11612,7 +11612,7 @@ msgstr "" " codifica e rivedi le modifiche proposte." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11621,7 +11621,7 @@ msgstr "Un esempio fornito · {ph0} e npm * Il tuo agente di codifica" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11640,7 +11640,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11656,7 +11656,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11675,7 +11675,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11686,7 +11686,7 @@ msgstr "" " {ph7} e scrive il file.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11701,7 +11701,7 @@ msgstr "{ph0} * linee 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11714,7 +11714,7 @@ msgstr "" " previsione e l'output effettivo.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11726,17 +11726,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Avrai bisogno di {ph0} 22 (22.23.4+), 24 (24.22.1+) o 26+ (>=26.12.1). npm viene fornito " -"con {ph1}." +"Avrai bisogno di {ph0} 22 (22.23.4+), 24 (24.22.1+) o 26+ (>=26.12.1). npm " +"viene fornito con {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11744,20 +11745,20 @@ msgstr "Non ho {ph0}, o non sicuro?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Se {ph0} mostra v22.23.4+, v24.22.1+ o v26.12.1+, sei pronto. Se mostra una versione " -"precedente o \"not recognized\" / \"command not found\", installa {ph1} 24 " -"LTS:" +"Se {ph0} mostra v22.23.4+, v24.22.1+ o v26.12.1+, sei pronto. Se mostra una " +"versione precedente o \"not recognized\" / \"command not found\", installa " +"{ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11771,7 +11772,7 @@ msgstr "{ph0} * esempio fonte estratto" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11782,9 +11783,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11792,7 +11793,7 @@ msgstr "{ph0} * esempio sorgente" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11807,7 +11808,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11824,7 +11825,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11835,7 +11836,7 @@ msgstr "" " dà 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11849,7 +11850,7 @@ msgstr "REA * caricato {ph0} * linee selezionate" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11868,7 +11869,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11881,28 +11882,28 @@ msgstr "" "demo in cui posso cambiare l’ora.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * Membro API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * IPC helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "principale/{ph0} * handler helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11921,7 +11922,7 @@ msgstr "Passa alla modalità scura" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11937,18 +11938,18 @@ msgstr "" "traffico acquisito con il tuo agente." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Modelli specializzati{ph0}Saggio" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Il reverse engineering ha bisogno di un modello più grande?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11957,12 +11958,12 @@ msgstr "" "Cosa suggerisce la ricostruzione di Touhou sui modelli generali, quelli " "specializzati e l’apprendimento dal feedback del compilatore." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Da N0zoM1z0 · 13 ottobre 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Vai al contenuto" @@ -11971,37 +11972,37 @@ msgstr "Vai al contenuto" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Home{ph1} / {ph2}Blog{ph3} / Modelli e reverse engineering" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Saggio" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Il reverse engineering necessita di un modello più grande?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Da N0zoM1z0 · 13 ottobre 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Punti chiave" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12014,7 +12015,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12027,7 +12028,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12040,7 +12041,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12053,7 +12054,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12064,14 +12065,14 @@ msgstr "" "costi.{ph1} Questo è ciò che voglio misurare per il flusso di lavoro " "completo dell'agente AI." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "In questo articolo" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12079,7 +12080,7 @@ msgstr "{ph0}Che cosa hanno cambiato i modelli più capaci{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12087,7 +12088,7 @@ msgstr "{ph0}Perché specializzarsi?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12095,7 +12096,7 @@ msgstr "{ph0}Dove dovrebbe essere archiviata questa esperienza?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12103,7 +12104,7 @@ msgstr "{ph0}Imparare il prossimo esperimento utile{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12111,7 +12112,7 @@ msgstr "{ph0}Reverse engineering e apprendimento per rinforzo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12119,7 +12120,7 @@ msgstr "{ph0}Quando il controllo di verifica è sbagliato{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12127,18 +12128,18 @@ msgstr "{ph0}Un confronto che vale la pena fare{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Che tipo di agente AI suggerisce questo?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Che cosa hanno cambiato i modelli più capaci" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12153,7 +12154,7 @@ msgstr "" "particolare Touhou. Man mano che ho cambiato modello, i repository hanno " "tenuto traccia di ciò che è riuscita a recuperare ciascuna sessione." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12167,12 +12168,12 @@ msgstr "" "successivo riesce dove il lavoro precedente si era bloccato, le modifiche " "alla fonte mostrano cosa ha reso possibile quel progresso." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Le variabili temporanee necessitavano di vite sovrapposte" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12194,7 +12195,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12208,7 +12209,7 @@ msgstr "" "sorgente. Quando {ph2}GPT-6.1-Sol ha esaminato nuovamente il problema{ph3}, " "ha proposto un'ipotesi utile sulla durata di queste variabili temporanee." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12225,7 +12226,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12240,7 +12241,7 @@ msgstr "" "esperimenti mirati, {ph0}una ricompilazione pulita dal sorgente ha " "confermato che l'intera funzione corrispondeva a{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12252,7 +12253,7 @@ msgstr "" "nuova direzione. Il feedback del compilatore ha aiutato a perfezionare " "quell'ipotesi in una disposizione del codice sorgente che corrispondesse." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Un diverso grafico del flusso di controllo" @@ -12261,7 +12262,7 @@ msgstr "Un diverso grafico del flusso di controllo" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12284,7 +12285,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12303,7 +12304,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12318,7 +12319,7 @@ msgstr "" "variazioni locali per molto tempo prima di trovare un modo migliore per " "esprimere il lavoro circostante." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12333,7 +12334,7 @@ msgstr "" "verifiche; un confronto controllato aiuterebbe a separare il contributo del " "modello da quello dell’esperienza ereditata." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12349,12 +12350,12 @@ msgstr "" "capacità di ragionamento? Quanto potrebbe imparare un modello lavorando " "ripetutamente con quel compilatore e quel codice?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Perché un modello di IA specializzato potrebbe funzionare bene?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12369,7 +12370,7 @@ msgstr "" "I repository lo confermano con esempi utili: cicli correlati e disposizioni " "di supporto hanno fornito ipotesi attraverso i giochi." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12389,7 +12390,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12406,7 +12407,7 @@ msgstr "" " che influenzava la scelta del compilatore. Ciò ha suggerito un'ipotesi più " "promettente per {ph2}ricostruire {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12416,7 +12417,7 @@ msgstr "" "prodotto il layout richiesto senza aggiungere spazio di archiviazione. La " "funzione completa quindi corrispondeva." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12429,7 +12430,7 @@ msgstr "" "vedere molti casi simili e apprendere quali variazioni del codice sorgente " "vale la pena testare per prime." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12449,7 +12450,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12469,14 +12470,14 @@ msgstr "" "un’aspettativa iniziale, ma ogni obiettivo indica se è applicabile. Un " "modello specializzato dovrebbe imparare a distinguere questi contesti." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Dove dovrebbe essere archiviata questa esperienza?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12492,7 +12493,7 @@ msgstr "" "progetto. Quella memoria include lezioni del compilatore, insieme alla fonte" " e agli esperimenti falliti che li hanno resi utili." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12509,7 +12510,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12528,7 +12529,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12545,7 +12546,7 @@ msgstr "" "modello deve decidere cosa significherà il risultato per il suo prossimo " "tentativo. Conoscere il modello rilevante è solo l’inizio di quel processo." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12559,12 +12560,12 @@ msgstr "" "aggiunge: una migliore generazione di candidati, decisioni migliori dopo il " "feedback o entrambi." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Imparare il prossimo esperimento utile" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12578,7 +12579,7 @@ msgstr "" "candidato fallisce, il risultato può restringere le possibilità rimanenti e " "suggerire un prossimo esperimento più utile." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12591,32 +12592,32 @@ msgstr "" "fonte contiene più informazioni. Ciascuno dei seguenti esperimenti ha " "contribuito a identificare ciò che ancora doveva cambiare." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Esperimento" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Cosa ci ha insegnato il suo risultato" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Prova un modo diverso per copiare i risultati" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Il codice di copia cambia, ma la funzione cambia ancora." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Utilizzare direttamente i valori restituiti" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12624,12 +12625,12 @@ msgstr "" "La copia segue lo schema originale, ma l'archiviazione temporanea differisce" " ancora." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Mantieni valide tutte le variabili temporanee contemporaneamente" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12638,18 +12639,18 @@ msgstr "" "Ottengono un'archiviazione separata, ma uno si sovrappone comunque a un " "valore utilizzato successivamente per i controlli di collisione." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Mantenere separato il valore del controllo collisioni" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Una ricompilazione pulita dalla fonte conferma la corrispondenza completa." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12658,7 +12659,7 @@ msgstr "" "Esperimenti selezionati dalla ricostruzione della funzione di attacco sopra," " raggruppati in base a ciò che ci hanno insegnato." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12674,7 +12675,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12689,7 +12690,7 @@ msgstr "" "locali smettono di essere informative, l'agente dovrebbe essere in grado di " "rivisitare la rappresentazione originale o ispezionare nuovamente le prove." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12703,14 +12704,14 @@ msgstr "" "scelta, insieme a parte del comportamento che vogliamo che il modello " "impari." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" "Perché il reverse engineering è interessante per l'apprendimento per " "rinforzo" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12724,7 +12725,7 @@ msgstr "" "L'agente può compilare un candidato, ispezionare la mancata corrispondenza e" " utilizzare tale osservazione per scegliere il passaggio successivo." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12741,7 +12742,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12764,7 +12765,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12781,7 +12782,7 @@ msgstr "" "programma originale gestiva i calcoli in virgola mobile{ph1}. Prima che " "l'agente potesse testare una correzione utile, doveva capire cosa misurare." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12793,12 +12794,12 @@ msgstr "" " questo controllo, possiamo indagare fino a che punto può arrivare una " "politica di ricerca appresa." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Quando il controllo di verifica è sbagliato" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12810,7 +12811,7 @@ msgstr "" "verificatore. Persino una risposta ripetibile va interpretata in base a ciò " "che verifica davvero." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12834,7 +12835,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12849,7 +12850,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12866,7 +12867,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12883,7 +12884,7 @@ msgstr "" "stesso modo, la corrispondenza di un'istruzione deve essere intesa in " "termini di byte e dati che verifica." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12902,7 +12903,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12915,12 +12916,12 @@ msgstr "" "migliora nell'ottimizzare il feedback che gli forniamo, anche comprendere " "quel feedback diventa più importante." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Un confronto che vale la pena fare" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12937,7 +12938,7 @@ msgstr "" "versione addestrata con RL ci permetterebbero di esaminare cosa aggiunge la " "formazione." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12951,7 +12952,7 @@ msgstr "" "ripetute aiuterebbero a distinguere una strategia di ricerca affidabile da " "una soluzione candidata che ha successo per caso." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12967,7 +12968,7 @@ msgstr "" "necessario per raggiungerlo. Misurarli separatamente rivelerebbe quella " "divisione del lavoro." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12982,7 +12983,7 @@ msgstr "" "codice sorgente correlato e manterrei le loro risposte verificate fuori sia " "dai dati di addestramento che dalla libreria di recupero." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12998,7 +12999,7 @@ msgstr "" "compilazione, mostrerebbe se tale qualità produce un flusso di lavoro " "efficiente. I costi di formazione dovrebbero essere misurati separatamente." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -13016,7 +13017,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13039,7 +13040,7 @@ msgstr "" "esperimento, ma convaliderei qualsiasi ricompensa per \"avvicinarsi\" " "rispetto al controllo completo di accettazione." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13056,12 +13057,12 @@ msgstr "" "l’addestramento? Le risposte ci aiuterebbero a decidere dove ciascun tipo di" " modello è più utile." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Che tipo di agente AI suggerisce questo?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13078,7 +13079,7 @@ msgstr "" "l’agente più ampio potrebbe tornare all’evidenza target o indagare sulla " "misurazione stessa." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13089,7 +13090,7 @@ msgstr "" "scegliere man mano che l’indagine si sviluppa. L'agente mantiene la libertà " "di cambiare direzione che ha reso possibili i progressi precedenti." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13103,7 +13104,7 @@ msgstr "" " quali decisioni necessitano di un ampio giudizio e quali migliorano " "attraverso l’esperienza ripetuta con una particolare imbarcazione." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13120,7 +13121,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13130,12 +13131,12 @@ msgstr "" "{ph0}I repository ci offrono un modo per testare la domanda.{ph1} Vorrei " "utilizzare quel record per creare il confronto e vedere cosa impariamo." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Evidenze e attribuzione del modello" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13149,7 +13150,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13176,7 +13177,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13201,7 +13202,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13227,7 +13228,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13254,7 +13255,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13266,7 +13267,7 @@ msgstr "" "mobile{ph3}, {ph4}TH08 indagine numerica{ph5} e {ph6}TH09 ricostruzione con " "salvataggio replay{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13292,22 +13293,22 @@ msgstr "" "modelli specialistici e sull'imparare a proporre ipotesi migliori dal " "feedback del compilatore." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "In questa pagina" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modelli e saggio di reverse engineering" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Esperimenti di ricostruzione selezionati" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Torna in alto" @@ -13316,7 +13317,7 @@ msgstr "Torna in alto" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13328,68 +13329,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Casi pratici{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Studi di casi REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * Analisi APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Come un autenticatore genera un codice di accesso" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Leggi il case study di Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Funzione di tracciamento" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Come Notion copia testo e HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Leggi il caso di studio Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Nativo * Ricostruzione" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball ' s calcolo di sinistra / destra posizione del suono" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Leggi il caso di studio DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Opzioni di configurazione" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13400,7 +13401,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13412,7 +13413,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13420,7 +13421,7 @@ msgstr "{ph0}1. Prepara il computer{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13428,7 +13429,7 @@ msgstr "{ph0}2. Scegli un agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13436,7 +13437,7 @@ msgstr "{ph0}3. Collega REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13444,18 +13445,18 @@ msgstr "{ph0}4. Prova un'analisi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Altri obiettivi e strumenti di analisi{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Prepara il computer" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13464,7 +13465,7 @@ msgstr "" "Usa il computer su cui si trovano i file da analizzare. Un agente di " "programmazione locale può leggere quei file ed eseguire strumenti per te." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13475,7 +13476,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13488,7 +13489,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13498,18 +13499,18 @@ msgstr "" "Se in seguito PowerShell mostra {ph0}\"running scripts is disabled on this " "system\"{ph1} quando esegui {ph2}, usa invece {ph3}. Per npm, usa {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Crea una cartella di lavoro per l'agente" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Nel terminale, crea una cartella per l'esercizio e poi entra nella cartella:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13518,12 +13519,12 @@ msgstr "" "Lascia aperto questo terminale per il passaggio successivo. Se hai già una " "cartella di lavoro, apri quella." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Scegli un agente di programmazione" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13533,12 +13534,12 @@ msgstr "" "analisi. Scegli una delle applicazioni qui sotto; apri le istruzioni se non " "l'hai mai usata." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · usa il tuo account ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13549,39 +13550,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Installazione di Codex e accesso{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf o VS Code · usa un editor" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Installa l'editor per il tuo sistema operativo e accedi." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Apri la cartella rea-work creata al passaggio 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · usa il tuo account Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Installa con il comando per il tuo sistema operativo:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13595,13 +13596,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Installazione di Claude Code e opzioni dell'account{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · usa una chat desktop" @@ -13611,7 +13612,7 @@ msgstr "Claude Desktop · usa una chat desktop" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13623,7 +13624,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13635,19 +13636,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Installazione di OpenCode e configurazione del modello{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Tutte le applicazioni supportate e i relativi ID di configurazione" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13657,12 +13658,12 @@ msgstr "" "La versione npm 6.4.0 supporta le applicazioni qui sotto. Usa l'ID con {ph0}" " quando scegli esplicitamente un'applicazione." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Applicazione" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID di configurazione" @@ -13672,7 +13673,7 @@ msgstr "ID di configurazione" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13691,7 +13692,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13701,13 +13702,13 @@ msgstr "" "{ph0}Configurazione delle applicazioni e risoluzione dei problemi{ph1} · " "{ph2}Disponibilità nelle versioni{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · collegalo sul computer che lo ospita" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13720,29 +13721,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Istruzioni per il connettore di Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Collega REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Copia questo prompt nel tuo agente di programmazione:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Per un'applicazione specifica, aggiungi il suo ID di configurazione:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13754,7 +13755,7 @@ msgstr "" "Nell'elenco delle applicazioni di REA, usa le frecce per spostarti, Space " "per selezionare la tua applicazione ed Enter per continuare." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13763,7 +13764,7 @@ msgstr "" "MCP è la connessione che permette all'agente di chiamare REA. La skill gli " "fornisce un flusso di lavoro per analizzare il software." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13774,7 +13775,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13784,20 +13785,20 @@ msgstr "" "Sostituisci {ph0} con l'ID di configurazione della tua applicazione. Un " "controllo riuscito restituisce {ph1}. Poi chiedi all'agente:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Verifica che REA sia collegato e mostrami quali strumenti REA puoi usare." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Prova la tua prima analisi" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13809,7 +13810,7 @@ msgstr "" " pulsante. L'agente può ispezionare il codice senza installare o avviare " "Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Il tuo agente di programmazione" @@ -13823,7 +13824,7 @@ msgstr "Il tuo agente di programmazione" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13837,7 +13838,7 @@ msgstr "" "su Esporta note. Mostra dove {ph4} è scritto, quali campi contiene e i file " "e le linee pertinenti.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Cerca una breve spiegazione con riferimenti a file e righe:" @@ -13846,7 +13847,7 @@ msgstr "Cerca una breve spiegazione con riferimenti a file e righe:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13860,13 +13861,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Verifica una previsione nell'esercizio guidato →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Scarica l'esempio da solo o usa la tua app" @@ -13874,14 +13875,14 @@ msgstr "Scarica l'esempio da solo o usa la tua app" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Scarica esempio ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13893,7 +13894,7 @@ msgstr "" "esportazione." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13903,12 +13904,12 @@ msgstr "" "Usa REA per analizzare l'app in {ph0}. Trova come esporta i dati e mostra i " "file e le righe pertinenti." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Analizza un altro tipo di software" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13917,12 +13918,12 @@ msgstr "" "Scegli la sezione per ciò che vuoi analizzare. Un provider è lo strumento di" " analisi locale che REA usa per quel tipo di software." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Eseguibili e librerie native · Hopper, Ghidra o IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13931,47 +13932,47 @@ msgstr "" "Installa uno strumento di analisi sul computer che esegue REA. L'host è il " "tuo sistema operativo; il target è il programma che vuoi analizzare." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Strumento di analisi" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Non disponibile" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Distribuzioni supportate" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · sperimentale" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Profili verificati" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Profilo senza interfaccia grafica verificato" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Consulta la guida del provider" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · lascia che la configurazione lo installi o lo colleghi" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13983,7 +13984,7 @@ msgstr "" "licenza al primo avvio di Hopper. Su Linux, la configurazione prepara la " "demo supportata e il suo display privato." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13993,7 +13994,7 @@ msgstr "" "Omarchy. Hopper è un software commerciale; la demo ha limiti definiti dal " "produttore." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14006,18 +14007,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Configurazione di Hopper e risoluzione dei problemi{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · installa lo strumento di analisi gratuito e Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14027,7 +14028,7 @@ msgstr "" "Java. Scegli il pacchetto adatto all'architettura del tuo computer." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14040,7 +14041,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14056,7 +14057,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14064,7 +14065,7 @@ msgstr "{ph0}Scarica un JDK{ph1} · {ph2}Scarica Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14074,7 +14075,7 @@ msgstr "" "Controlla Java. Il primo comando stampa {ph0}; usa quella cartella per " "{ph1}. Il secondo conferma che il compilatore è installato:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14092,7 +14093,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14102,12 +14103,12 @@ msgstr "" "{ph0}Configurazione di Ghidra e requisiti di architettura{ph1} · {ph2}Guida " "a Ghidra su Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · collega un'installazione esistente" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14118,7 +14119,7 @@ msgstr "" "upstream. Scegli una GUI collegata con il binario originale aperto, oppure " "un supervisore senza interfaccia grafica che apre un database privato." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14130,7 +14131,7 @@ msgstr "" "grafica su macOS arm64 con IDA Professional 9.1. Il bridge nativo " "facoltativo per la GUI ha requisiti propri di versione e piattaforma." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14142,14 +14143,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Profili IDA, esempi di registrazione e piattaforme verificate{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14160,18 +14161,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Segui un esempio di analisi nativa{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Siti web, Android, .NET, firmware e altri obiettivi" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14180,110 +14181,110 @@ msgstr "" "Apri la guida per ciò che vuoi analizzare. Ogni guida indica gli strumenti " "aggiuntivi, gli host supportati e il primo comando." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Target" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Strumenti da preparare" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Guida" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Apri la guida{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Sito web" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / pacchetti" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "APK Android" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Dispositivo Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Risorse Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Progetto JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / crash di Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Segnali logici" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Comportamento dei processi" @@ -14299,7 +14300,7 @@ msgstr "Comportamento dei processi" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14309,18 +14310,18 @@ msgstr "" "{ph0}Guida Flutter{ph1} · {ph2}Pacchetti e risorse{ph3} · {ph4}Bytecode " "EVM{ph5} · {ph6}Tutte le guide di analisi{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Usa REA dal terminale" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Comandi CLI, installazione globale e curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14330,7 +14331,7 @@ msgstr "" "Sostituisci {ph0} con il nome o l'indirizzo di una funzione dall'elenco " "delle funzioni del target. Ghidra deve essere già configurato." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14339,7 +14340,7 @@ msgstr "" "Su macOS o Linux puoi anche usare il programma di installazione curl dopo " "aver preparato Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14349,12 +14350,12 @@ msgstr "" "configurazione. Negli editor, abilita REA nelle impostazioni MCP e consenti " "i suoi strumenti nella chat dell'agente." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL e percorsi con spazi" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14366,17 +14367,17 @@ msgstr "" "quell'ambiente Linux e usa lì i percorsi Linux. I provider senza interfaccia" " grafica vengono eseguiti sullo stesso host di REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Comando di configurazione per Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Aggiorna o rimuovi REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14388,7 +14389,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14402,52 +14403,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Dettagli di aggiornamento e disinstallazione{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Copia il comando di configurazione REA per Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Copia il comando" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Copia note richiesta di indagine" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14457,12 +14458,12 @@ msgstr "" "Installa prima curl e unzip se mancano. Su Debian o Ubuntu, esegui {ph0}; su" " altre distribuzioni, usa il gestore di pacchetti." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Chiudi il terminale, riaprilo, poi:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14477,7 +14478,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14487,19 +14488,19 @@ msgstr "" "{ph0}Configurazione di Cursor{ph1} · {ph2}Configurazione di Windsurf / Devin" " Desktop{ph3} · {ph4}Configurazione di VS Code e Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · scegli un modello IA" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Prepara il file di registrazione IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14515,7 +14516,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14528,7 +14529,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14541,22 +14542,22 @@ msgstr "" "in IDA e avvia il suo plugin upstream prima di chiedere a REA di " "analizzarlo." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Database SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Installa Codex con il comando per il tuo sistema operativo:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14567,7 +14568,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14578,12 +14579,12 @@ msgstr "" "Node.js 24 LTS per macOS (.pkg){ph1}, aprilo e segui le istruzioni. Poi " "riapri Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Usi già Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14594,7 +14595,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14604,7 +14605,7 @@ msgstr "" "Controlla e approva il piano, riapri Claude, poi {ph0}verifica la " "connessione al passaggio 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14615,12 +14616,12 @@ msgstr "" "Per una nuova installazione su macOS o Linux arm64, compila il decompilatore" " nativo per il tuo computer prima di continuare." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Compila il decompilatore nativo di Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14633,7 +14634,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14643,7 +14644,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14653,19 +14654,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · istruzioni di compilazione nativa{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Poi controlla Ghidra e salva i suoi percorsi per l'applicazione:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14673,13 +14674,13 @@ msgstr "Perché {ph0} dà 220 nella Calcolatrice?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Come funziona{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14689,22 +14690,22 @@ msgstr "" "sito web. REA gli dà gli strumenti per esaminare il codice dietro la " "risposta." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Inizia" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Guarda un esempio ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Come funziona" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14715,48 +14716,48 @@ msgstr "" " il programma stesso. Con REA, il tuo agente può seguire il codice, spiegare" " una funzione e aiutarti a ricrearla." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Chiedi di una funzione" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Dai al tuo agente un programma o una pagina e una domanda." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Esamina il programma" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" "REA restituisce codice, riferimenti e osservazioni durante l'esecuzione." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Capisci, poi prova una modifica" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "Il tuo agente usa i risultati per spiegare o ricreare la funzione." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Segui le istruzioni passo dopo passo" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Fai la stessa domanda al tuo agente" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14765,7 +14766,7 @@ msgstr "" "Inizia alle 6. Aggiungere 0.001 ogni aggiornamento senza una collisione, " "mentre la velocità è inferiore 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14773,7 +14774,7 @@ msgstr "" "Esplora una funzione di un'app o gioco pubblicato, con codice e risultati " "verificati." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14782,7 +14783,7 @@ msgstr "" "Segui il codice di accesso a sei cifre di Aegis nel suo APK pubblicato, poi " "sposta l'orologio della demo per vedere perché cambia ogni 30 secondi." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14791,7 +14792,7 @@ msgstr "" "Segui il JavaScript incluso in Notion fino agli appunti di sistema e scopri " "come una copia conserva i dati ricchi dei blocchi." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14800,12 +14801,12 @@ msgstr "" "Ricostruisci come la posizione di una palla diventa suono a sinistra o a " "destra in un gioco Windows del 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Scegli il tuo obiettivo." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14816,7 +14817,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14835,13 +14836,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Esempio prompt * Sito web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Sì, questa." @@ -14854,7 +14855,7 @@ msgstr "Sì, questa." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14869,7 +14870,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14883,18 +14884,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Vedere il caso di studio DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Copia il prompt del progetto del sito web" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Copia gioco ricostruzione prompt" @@ -14906,7 +14907,7 @@ msgstr "Copia gioco ricostruzione prompt" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14918,7 +14919,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14926,23 +14927,23 @@ msgstr "{ph0}Casi studio →{ph1} — indagini e demo interattive." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — metodi e appunti sulla ricostruzione." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Guarda l'indagine completa della Calcolatrice" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Prova un progetto più grande" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14951,7 +14952,7 @@ msgstr "" "Proviamo due esempi: cambiare la velocità di un gioco e ricreare il pulsante" " % della Calcolatrice." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14960,7 +14961,7 @@ msgstr "" "Il gioco accelera mentre corri. Per ricrearlo con un controllo della " "velocità, dobbiamo prima capire come cambia la velocità." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Chiedi della velocità" @@ -14973,7 +14974,7 @@ msgstr "1. Chiedi della velocità" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14982,12 +14983,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Domanda di esempio · Gioco del " "dinosauro" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Trova la regola della velocità" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14997,12 +14998,12 @@ msgstr "" "velocità parte da 6 e aumenta un po' a ogni aggiornamento finché è inferiore" " a 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Gioca con il risultato" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15011,7 +15012,7 @@ msgstr "" "Abbiamo ricreato questa regola nel minigioco qui sotto e aggiunto un cursore" " della velocità. Avvia il gioco, poi scegli la tua velocità." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15020,7 +15021,7 @@ msgstr "" "Attiva JavaScript per giocare. Puoi comunque leggere la regola e aprire il " "codice sorgente qui sotto." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15029,7 +15030,7 @@ msgstr "" "Il pulsante % si comporta diversamente dopo + e ×. Troviamo entrambe le " "regole e proviamole in una piccola calcolatrice." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Chiedi del pulsante %" @@ -15042,19 +15043,19 @@ msgstr "1. Chiedi del pulsante %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Domanda di esempio · Calcolatrice" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Trova entrambe le regole" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15063,12 +15064,12 @@ msgstr "" "REA aiuta l'agente a leggere il codice del pulsante %. Il codice applica due" " regole diverse:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Prova il pulsante %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15076,7 +15077,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15084,7 +15085,7 @@ msgstr "{ph0}Leggi le FAQ{ph1} — configurazione e domande comuni." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15093,13 +15094,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — segnala un bug o richiedi una funzione." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Configurazione per la tua piattaforma:" @@ -15107,14 +15108,14 @@ msgstr "Configurazione per la tua piattaforma:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Altre opzioni di installazione: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15129,7 +15130,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15144,7 +15145,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15156,7 +15157,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15168,7 +15169,7 @@ msgstr "" "predefinito è {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15180,67 +15181,67 @@ msgstr "" "funzioni e le stringhe, poi spiega la parte che gestisce l'input dell'utente" " con riferimenti al codice." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Collaboratori" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Vai al contenuto" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Home{ph1} / Collaboratori" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Lo costruiamo insieme." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Grazie a tutte le persone che aiutano a migliorare REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15249,22 +15250,22 @@ msgstr "" "Codice, documentazione, test, traduzioni e idee: ci sono molti modi per " "contribuire." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Come contribuire" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Partecipa alla conversazione →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Collaboratori" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Trova un collaboratore" @@ -15272,14 +15273,14 @@ msgstr "Trova un collaboratore" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" "Dall’{ph0}elenco dei collaboratori su GitHub{ph1} · Aggiornato il {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Nessun collaboratore trovato. Prova un altro nome utente." @@ -15296,12 +15297,12 @@ msgid "" msgstr "" "Scopri chi contribuisce a REA con codice, documentazione, test e idee." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nome utente GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Torna in alto" diff --git a/website/locales/ja/messages.po b/website/locales/ja/messages.po index 1795e59d21e..9d40b02b55a 100644 --- a/website/locales/ja/messages.po +++ b/website/locales/ja/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}ホーム{ph1} /ブログ" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "ブログ。" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "リバースエンジニアリングに関する考え。" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "ゲーム再構築{ph0}小論文" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "リバースエンジニアリングにおける産業革命" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -51,36 +51,36 @@ msgid "" msgstr "" "どのようなマニュアル再とTH08を再構築,TH095とTH04は、エージェントについて教えてくれました,プロジェクト間で化合物の検証と知識." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "記事を読む" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "によってN0zoM1z0•10 10月2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -98,160 +98,160 @@ msgid "" "and AI agents." msgstr "REAとAIエージェントの実践的な経験に基づいて、リバースエンジニアリングに関する考え。" -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "REA—ソフトウェアがどのように動作するかを調べます。 コーディングエージェントとのリバースエンジニアリング。" -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA ホーム" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "メインナビゲーション" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "GitHub で REA を見る" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "REA の Discord に参加" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "X で REA をフォロー" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -260,35 +260,35 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "エッセイ·東方復興" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "リバースエンジニアリングにおける産業革命。" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "によってN0zoM1z0•10 10月2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "要点" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -298,7 +298,7 @@ msgstr "{ph0}エージェントに調査の自律性を与えます。{ph1} 明 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -311,7 +311,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -323,7 +323,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -335,7 +335,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -343,65 +343,65 @@ msgid "" "methods are still taking shape. There is plenty left to explore." msgstr "{ph0}私たちはREの産業革命の初期にいます。{ph1} メソッドはまだ形を取っています。 探索することがたくさん残っています。" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "どのように経験化合物" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "自律性" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "エージェント" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "検証" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "検証基準" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Aに対するテスト{ph0}具体的な参照。" -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "リポジトリ" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "作業の記憶" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -410,7 +410,7 @@ msgstr "コード、証拠,{ph0}チェックとレッスン。" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -419,40 +419,40 @@ msgstr "ミスマッチ{ph0}{ph1}仮説を修正する{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "再利用" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 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:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "この記事の内容" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -460,7 +460,7 @@ msgstr "{ph0}2026年8月{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -468,7 +468,7 @@ msgstr "{ph0} TH08:続き{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -476,7 +476,7 @@ msgstr "{ph0}二つのアプローチ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -484,7 +484,7 @@ msgstr "{ph0} TH095:配合{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -492,7 +492,7 @@ msgstr "{ph0} TH04:アーキテクチャ間{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -500,7 +500,7 @@ msgstr "{ph0}正確なものから読みやすいものへ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -508,18 +508,18 @@ msgstr "{ph0}産業シフト{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "2026年8月に何が変わったのか" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -531,7 +531,7 @@ msgstr "" "この作業の前に、私は多くの手動リバースエンジニアリングを行っていました。 私は説明があるまで関数を検査し、その説明をプログラムに対してテストします。 " "さらに得ることは、次の機能に自分の時間をもっと費やすことを意味しました。 それはまた、私の頭の中でますます大きな絵を保つことを意味しました。" -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -543,7 +543,7 @@ msgstr "" "それがこの記事の背後にある経験です。 " "このメソッドは他の場所でも役立ちますが、各フィールドは信頼できる参照に対してチェックできるものを確立する必要があります。" -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -555,7 +555,7 @@ msgstr "" "私は、エージェントがプログラムや通常の開発ツールにアクセスすることでどこまで得ることができるかを見たかったのです。 " "東方復興は私に見つけるための実質的なプロジェクトを与えました。" -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -570,7 +570,7 @@ msgstr "" "小さな診断を記述し、その結果を使用して次に何を試すかを決定することができます。 " "自由が違いをもたらしたことをそれに与える:私はプロジェクトの方向性とそのチェックが信頼できるかどうかにもっと注意を払うことができ" -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -580,7 +580,7 @@ msgstr "" "ペースは最初に私の注意を得ました。 それから私は現在のプロジェクトを超えて何が生き残るのだろうかと思い始めました。 " "次のゲームは、私たちが学んだすべてのものから利益を得るでしょうか?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08:人間の仕事の上に構築" @@ -589,7 +589,7 @@ msgstr "TH08:人間の仕事の上に構築" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -601,7 +601,7 @@ msgstr "" "{ph0} TH08 {ph1}、不滅の夜は、の続きとして始まった {ph2} GensokyoClubの再構築{ph3}. " "彼らの公的な情報源は私に実質的な基盤を与えました。 それは、ビルドの知識と私が継続して保存した貢献の歴史が付属していました。" -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -611,7 +611,7 @@ msgstr "" "同年10月場所で初土俵を踏んだ。 私の独立した継続は8月13日に始まりました。 " "8月19日までに、台帳は1,107の特定されたゲーム機能すべてのソースを記録しました。" -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -621,7 +621,7 @@ msgstr "" "Linux再構築ポートは、継続が始まった約十一日後の8月24日にコミットされました。 Web版が続いた。 " "ネイティブLinux64ビットリリースは8月30日に到着しました。" -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -634,7 +634,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -650,12 +650,12 @@ msgstr "" "実行時チェックは、実行されたルートが予想される状態に達するかどうかを確認できます。 " "エージェントは説明を提案し、それをテストします;不一致はそれに調査するために特定の何かを与えます。" -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "間違った定数と完全に一致する" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -665,7 +665,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -676,7 +676,7 @@ msgstr "" "9月には、ダウンストリームスイッチポートから報告されたバグがアイテムの自動収集に戻りました。 再構築されたソースは、プレーヤーのパワーをチェックしました" " {ph0}. 使用される原物 {ph1}、最大電力しきい値。" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -690,13 +690,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -710,7 +710,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -725,7 +725,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -737,7 +737,7 @@ msgstr "" "ザ- {ph0}2月の修正{ph1} ソースを修正し、参照された定数の実際のバイトを比較チェックしました。 A {ph2}より広い監査{ph3} " "次に、1,548個の浮動小数点定数参照を調べました。 それは5つの受け入れられた関数間で別の12の誤った参照を見つけました。" -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -749,7 +749,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -758,7 +758,7 @@ msgid "" msgstr "" "{ph0}検証リファレンス(oracle)も再構築する必要がありました。{ph1} それを修復することは、ゲームを修復することの一部でした。" -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -774,7 +774,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -789,7 +789,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -797,7 +797,7 @@ msgid "" " for the next batch.{ph1}" msgstr "{ph0}バッチが成功すると、復元されたコードと次のバッチのためのより良い環境の両方が得られました。{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "再建の2つの異なるアイデア" @@ -806,7 +806,7 @@ msgstr "再建の2つの異なるアイデア" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -817,7 +817,7 @@ msgstr "" "GensokyoClubの {ph0}パブリックREADME{ph1} この種の作業との意見の相違を明示的にします。 " "この通知により、さらなる開発が完了するまで非公開で行われることが発表されました。 一つの通路が読みます:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -825,7 +825,7 @@ msgid "" msgstr "" "私たちの仕事から取って、この空間でのグリフター(AIの逆コンパイルとポート)の台頭は、将来の逆コンパイルの努力のための悪いイメージを描きます…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -839,7 +839,7 @@ msgstr "" "彼らは自分の自由な時間を困難な仕事に入れており、その仕事は私の継続を可能にするのに役立ちました。 私はその背後にある努力を尊重します。 " "私が議論したい意見の相違は、復興をどのように進めるべきか、そして貢献をどのように判断すべきかということです。" -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -850,7 +850,7 @@ msgstr "" "私が知っていた手動ワークフローでは、機能の理解を開発し、それを再構築することは、通常、同じ人に落ちました。 " "プロジェクトはその人の専門知識に大きく依存していました。 彼らが働いている間に推論の多くが起こったので、貢献者への信頼は重要でした。" -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -860,7 +860,7 @@ msgstr "" "既存のプロジェクトは、ソースとビルドツールの知識をすでに保持しています。 " "私にとって変わったのは、エージェントがその知識を使って次の調査を単独で追求できるということでした。" -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -873,7 +873,7 @@ msgstr "" "その提案された再建は、関連するチェックを生き残るために持っています。 " "エージェントがほとんどの作業を行ったとしても、他の人がなぜ実装を選んだのかを調べることができるようにしたいと思います。" -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -884,7 +884,7 @@ msgstr "" "これは難しい移行になる可能性があります。 注意深い仕事の年は大いにより速く動く継続のための基礎になるかもしれない。 " "それは信用についての実質の質問を上げる。 また、コントリビューションを受け入れる前にメンテナが知る必要があることも変更されます。" -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -897,7 +897,7 @@ msgstr "" "機械はその技術が必要とされるところで変わる。 誰かがまだプロセスを設計し、その出力が間違っているときに認識する必要があります。 " "さまざまなコミュニティが、その変更のどれだけを実行したいかを選択できます。" -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -920,7 +920,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -931,14 +931,14 @@ msgstr "" "ソース:GensokyoClubの {ph0}READMEのお知らせ{ph1}、2026年10月10日にチェックされ、その " "{ph2}貢献方針{ph3}. 引用は短縮された抜粋です。 TH08の {ph4}クレジットと出所{ph5} 継続境界を記録します。" -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095:経験は配合を開始します" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -951,7 +951,7 @@ msgstr "" "私たちはまだゲームを学ばなければなりませんでした。 " "しかし、私たちはすでに再建を開始する方法とそれを動かし続ける方法についてはるかに多くを知っていました。" -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -962,7 +962,7 @@ msgstr "" "9月7日までに、特定された697のゲーム機能すべてがソースを持っていました。 8年(696年)までには、正確な比較として受け入れられていた。 " "プログラム全体は9月にリンクされています。 Windows i386は、初期化から約10日後の10月に再構築された。" -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -972,7 +972,7 @@ msgstr "" "私はこれが最初のプロジェクトのスピードよりも刺激的だと感じました。 新しいターゲットは、別のゲームで行われた作業の恩恵を受けることができます。 " "この経験は、ツールとプロジェクトの編成方法にすでに存在していました。" -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -985,7 +985,7 @@ msgstr "" "いくつかの回復された関数が同じ状態に依存している場合、それらの分離された比較は重要な質問を開いたままにします。 " "彼らが一緒に働いているのを見る必要があります。 このレッスンは、TH095のプログラム全体のビルドにどのようにアプローチしたかを形作るのに役立ちました。" -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -996,7 +996,7 @@ msgstr "" "私がそこにいる間、私の頭の中にとどまるレッスンは役に立ちます。 別のセッションが実行できるチェックになると、私が移動した後も助け続けることができます。 " "次のエージェントは、それにつながった調査を繰り返すことなく、結果を使用することができます。" -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1009,7 +1009,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1020,7 +1020,7 @@ msgstr "" "{ph0}この方法は、次のゲームの出発材料の一部になります。{ph1} " "私たちは、次のプロジェクトの努力の多くを、その目標について実際に新しいものに費やすことができます。" -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1031,7 +1031,7 @@ msgstr "" "同じ利点は、後で参加する人々に利用可能です。 彼らは決定を検査し、作業を続行する前にそのチェックを再実行することができます。 " "彼らは、ソースがそれがないように見える理由を見つけるために、プロジェクト全体の履歴を再構築する必要はありません。" -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04:ワークフローは異なるアーキテクチャで存続します" @@ -1040,7 +1040,7 @@ msgstr "TH04:ワークフローは異なるアーキテクチャで存続しま #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1055,7 +1055,7 @@ msgstr "" "そのハードウェアの動作を理解するには、Windowsゲームとは異なる証拠が必要でした。 既存の {ph2}Rec98作品{ph3} " "私たちに貴重な知識とソース材料をここにも与えました。" -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1066,7 +1066,7 @@ msgstr "" "DOSの再構築は現在機能しています。 私の手動テストでは、私は彼らのエンディングを介して完全な通常のルートを再生し、保存を確認しました。 " "現在の作業はネイティブの64ビットポートです。 動作中のDOSバージョンを確立すると、最初にそのポートに参照が与えられます。" -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1077,7 +1077,7 @@ msgstr "" "建築は私達が調査するために必要としたものを変えた。 また、作業をチェックしたコンパイラとランタイムも変更されました。 " "しかし、エージェントはまだ結果に至るまでの質問に従うことができ、その結果は次の実験を導くことができます。" -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1090,7 +1090,7 @@ msgstr "" "私たちは、どの州がその境界を越えて運び、どのプログラムがそれを担当しているかを知る必要があります。 それはDOS製品に対して調査できるものです。 " "証拠とチェックが利用可能になると、エージェントはWindowsタイトルと同じように質問を処理することができます。" -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1100,7 +1100,7 @@ msgstr "" "これが、TH04が引数に重要である理由です。 プラットフォームを大幅に変更しても、新しい作業方法でやり直すことはできませんでした。 " "アーキテクチャは問題を定義しましたが、ワークフローはまだそれを解決する方法を与えてくれました。" -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1116,7 +1116,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1126,19 +1126,19 @@ msgstr "" "2026年10月10日現在のプロジェクト状況: {ph0}DOSの再構成および手動テスト{ph1} · {ph2}64ビットポート{ph3}. " "港は開発中のままです。" -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "正確なコードから読みやすいコードへ" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1151,7 +1151,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1166,7 +1166,7 @@ msgstr "" "その役割を説明できるまで、ゲームがどのようにそれを使用するかに従います。 それから、意味のある名前と証拠に合ったタイプを与えることができます。 " "次の人がその解釈がどこから来たのかを見ることができるように、私たちは推論をソースと一緒に保ちます。" -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1179,14 +1179,14 @@ msgstr "" "これは、どのオブジェクトがその状態を所有すべきかを決定する上で、64ビットの実装にはほとんど助けになりません。 " "動作を安全に移動するには、古いメモリアクセスの背後にある関係を回復する必要があります。" -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "私が今使用している順序は次のとおりです:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1200,7 +1200,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1215,7 +1215,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1230,7 +1230,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1243,7 +1243,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1257,7 +1257,7 @@ msgstr "" "最初の検証リファレンス(oracle)では、変更されたソースが関連する元のコードとデータを再現しているかどうかを確認します。 " "第二は、再構築されたプログラムがまだ構築され、我々が行使するパスに沿って正しく動作することを確認します。" -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1269,7 +1269,7 @@ msgstr "" "所有権の変更は、状態の異なるコピーを使用してゲームの2つの部分を残すことができます。 " "両方のチェックを利用できるようにしておくと、リファクタリングをさらに実行する前にエージェントが具体的に調査できなくなります。" -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1285,7 +1285,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1302,7 +1302,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1312,12 +1312,12 @@ msgstr "" "{ph0}正確な再構成は私たちに参照を与えます。 セマンティック再構成は、回収された知識を使用可能にする。{ph1} " "ポートは、両方の上に構築することができます。" -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "これを産業シフトにするものは何ですか" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1329,7 +1329,7 @@ msgstr "" "エージェントが調査の多くを前進させることができれば、彼らの作業環境を改善することは私ができる最も有用なことの一つになりました。 " "より良いツールは、それを必要とするすべての後の機能を助けることができます。" -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1341,7 +1341,7 @@ msgstr "" "エージェントは、予想外のどこかでその結果に従うのに十分な自由を必要とします。 " "私が各ステップを処方するのを待たなければならない場合、仕事の多くは私の注意に結びついています。" -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1353,7 +1353,7 @@ msgstr "" "失敗したチェックは、それが再試行するのに十分な間違いを理解するのに役立つはずです。 " "私はまだ蓄積された証拠がプロジェクトのマイルストーンをサポートしているかどうかを判断する必要があります。" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1366,7 +1366,7 @@ msgstr "" "Reconstructionプロジェクトは、コンパイラとそれ自身の参照チェックを提供します。 " "エージェントはそれらを使用して、提案するソースをテストし、その説明がどこに保持されているかを確認できます。" -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1382,7 +1382,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1400,7 +1400,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1415,7 +1415,7 @@ msgstr "" "共有ツールに欠陥が見つかった場合は、それを修復し、影響を受けた結果を再検討する必要があります。 " "次のプロジェクトは、より強力なツールを継承することができます。" -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1429,7 +1429,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1440,7 +1440,7 @@ msgstr "" "ザ- {ph0}東方復興工場{ph1} その必要性から成長しました。 それはプロジェクトに彼らの点検およびレッスンを先に運ぶ共有された方法を与える。 " "あるゲームでの作業は、別のゲームの開始条件を改善することができます。" -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1450,12 +1450,12 @@ msgstr "" "それが私にとって産業的な類推を意味のあるものにしているのです。 経験は、他の人が使用できるツールの一部になり始めます。 " "これらのツールを改善することで、次の人、または次のエージェントがどれだけ達成できるかが変わります。" -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "今考えられるプロジェクトは" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1466,7 +1466,7 @@ msgstr "" "ゲームはリバースエンジニアリングにとって魅力的であり、現実的にそれを与えることができるよりも私自身の注意を要求することができます。 " "多くのプロジェクトは、アイデアを滞在します。" -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1482,7 +1482,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1492,7 +1492,7 @@ msgstr "" "私は今、なじみのないプログラムを見て、尋ねる: " "{ph0}どのようなアクセス、フィードバック、蓄積された知識が、エージェントがこれに確実に取り組むことを可能にするでしょうか?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1502,12 +1502,12 @@ msgstr "" "その質問は、私が以前に一人で残していたであろうプロジェクトを考えさせます。 それぞれが私たちが次のアプローチ方法を改善することができます。 " "私はそれが私たちをどこまで連れて行くことができるかを探求し続けたいです。" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "プロジェクトのマイルストーンとソース" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1539,7 +1539,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1573,7 +1573,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1590,7 +1590,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1613,7 +1613,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1634,7 +1634,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1650,7 +1650,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1670,7 +1670,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1684,7 +1684,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1704,27 +1704,27 @@ msgstr "" "N0zoM1z0は、手動リバースエンジニアリング、AIエージェントによる東方再構築、TH08、TH095、PC-98 " "TH04の知識がどのように化合物であるかを反映しています。" -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "プロジェクト間で実施された経験" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "東方復興エッセイ" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -1733,18 +1733,18 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "検査→再構築→変更" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "恐竜のスピードルールを再構築します。" @@ -1753,7 +1753,7 @@ msgstr "恐竜のスピードルールを再構築します。" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1764,15 +1764,15 @@ msgstr "" "ゲームの加速を再現するには、まずその速度を制御するルールを見つけます。 {ph0} REAが実行中のスクリプトを返しました;{ph1} " "私たちは、このミニゲームを構築するために、そのルールを使用しました {ph2}調節可能な速度。{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "このページでは" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1780,7 +1780,7 @@ msgstr "{ph0}再生し、速度を変更します{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1788,7 +1788,7 @@ msgstr "{ph0}回復されたルールを読む{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1796,18 +1796,18 @@ msgstr "{ph0}再構築を確認する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "再生し、速度を変更します" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1817,54 +1817,54 @@ msgstr "" "プレスプレイは、その後、サボテンの上にジャンプします。 速度スライダを動かして、より遅いまたはより速いゲームを試してみてください。 " "回復されたルールを選択して6から開始し、徐々に再び加速します。" -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "再構築したゲームで遊ぶ" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "スタート" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "ジャンプ ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "リスタート" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "速度" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "回復された加速ルールを使用する" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 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:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "返されたスクリプトREAを読みます" @@ -1872,7 +1872,7 @@ msgstr "返されたスクリプトREAを読みます" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1886,7 +1886,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1894,18 +1894,18 @@ msgid "" "update without a collision." msgstr "設定は次のとおりです {ph0}, {ph1} と {ph2}. ゲームは衝突することなく更新時にこのブランチを実行します。" -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "新しいゲームで同じルールを使用します" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "コピー" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -1920,18 +1920,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "再構築を確認する" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -1940,41 +1940,41 @@ msgid "" msgstr "" "私たちは、障害物や自動スケジューリングを無効にして、元のゲームの更新機能と呼びました。 これらの記録された速度を、回復されたルールの再生と比較します。" -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "更新情報" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "オリジナルゲーム" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "再構築されたルール" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "速度チェックを実行する" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " "final increment can take speed just above 13." msgstr "値は小数点以下3桁に丸められます。 分岐は追加する前にチェックするので、最終的な増分は13をちょうど上回る速度を取ることができます。" -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "自分で分析を試してみてください" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -1983,14 +1983,14 @@ msgstr "{ph0}REAのセットアップ {ph1} あなたのコーディングの代 #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2005,7 +2005,7 @@ msgstr "エージェントにページURLとローカルデバッグエンドポ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2017,7 +2017,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディング #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2030,7 +2030,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2045,7 +2045,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2068,64 +2068,64 @@ msgid "" "speed and play." msgstr "REAで恐竜ゲームの速度ルールを読んで、それを再構築し、速度を変更して再生します。" -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "恐竜スピード復元" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 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:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "再構築された速度ルールのコピー" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "コピー恐竜解析プロンプト" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}ホーム{ph1} /よくある質問" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REAよくある質問。" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "セットアップ、更新、分析、トラブルシューティング。" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "トピックス" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2133,7 +2133,7 @@ msgstr "{ph0}セットアップと更新{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2141,7 +2141,7 @@ msgstr "{ph0}分析{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2149,31 +2149,31 @@ msgstr "{ph0}トラブルシューティング{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}データと共有{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "セットアップと更新" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "REA のインストール方法は?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "端末·エージェントの設定" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "コピー" @@ -2181,7 +2181,7 @@ msgstr "コピー" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2193,12 +2193,12 @@ msgstr "" "セットアップは REA の MCP " "接続を登録し、対応する調査スキルをインストールします。完了したらエージェントを再起動し、調べたいファイルのパスと質問を渡してください。必要な環境と最初の分析手順は{ph0}セットアップガイド{ph1}で確認できます。" -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "REAを使用できるコーディングエージェントはどれですか?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2213,31 +2213,31 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}コーディングエージェントを接続する{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "REA の更新方法は?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 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:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "ターミナル*インストールされているCLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2245,14 +2245,14 @@ msgid "" "agent through {ph0}, run:" msgstr "更新によって印刷されたsetup refreshコマンドに従います。 エージェントを設定した場合 {ph0}、走る:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "端末·更新エージェントの設定" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2264,14 +2264,14 @@ msgstr "" "の接続設定にはパッケージのバージョンが指定されているため、セットアップをやり直すと新しいリリースを使えます。単発の CLI 操作では、{ph0} " "の後にコマンドを続けてください。" -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "からスキルをインストールしていますskills.sh もういい?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2282,24 +2282,24 @@ msgstr "" "スキルは、あなたのエージェントの調査の指示を与えます。 走れ。 {ph0} REAセットアップ{ph1} " "MCPサーバーに接続して一致するスキルをインストールするには、エージェントを再起動してツールを呼び出すことができます。" -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "分析" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "REAで何を分析できますか?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "あなたが持っている種類のソフトウェアから始めてください:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2309,7 +2309,7 @@ msgstr "{ph0}ネイティブ実行可能ファイルとライブラリ{ph1}:関 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2319,7 +2319,7 @@ msgstr "{ph0} JavaScriptおよびElectronアプリ{ph1}:モジュール、イ #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2327,7 +2327,7 @@ msgstr "{ph0}ブラウザのページ{ph1}:スクリプト、要求、およ #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2338,12 +2338,12 @@ msgstr "" "REAには、マネージアセンブリ、Android Apk、ファームウェア、パッケージリソースのワークフローもあります。 " "{ph0}ケーススタディを見る{ph1} 働いた調査のために。" -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Hopper、Ghidra、またはIDAが必要ですか?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2354,7 +2354,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2365,26 +2365,26 @@ msgstr "" "既存のGhidraまたはIDAインストールを接続するか、セットアップにHopperを検出させてインストールを提案させます。 " "使用できるプロバイダーは、ホストとターゲットによって決まります。 {ph0}マシンコードプログラムの解析の設定{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "コーディングエージェントなしでREAを使用できますか?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 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:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "端末*静的アプリケーション解析" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2394,13 +2394,13 @@ msgstr "" "パスを抽出したアプリケーションフォルダまたはASARファイルに置き換えます。 {ph0}CLIを使用する {ph1} インストールオプション用。" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2414,7 +2414,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2425,12 +2425,12 @@ msgstr "" "エージェントは、これらの調査結果を使用して、動作を説明したり、実装を記述してテストしたりします。 ザ- {ph0} DX-Ball計算{ph1} と " "{ph2}CTFフラグチェッカー{ph3} そのプロセスがどのように機能するかを示します。" -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "エージェントに何を聞けばいい?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2445,7 +2445,7 @@ msgstr "それにローカルターゲットと調査するための一つの動 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2453,7 +2453,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディング #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2462,18 +2462,18 @@ msgid "" msgstr "" "パスをターゲットに置き換えます。 ザ- {ph0}ガイド{ph1} ネイティブ、Electron、およびブラウザの例のプロンプトを提供します。" -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "トラブルシューティング" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "エージェントにREAツールが表示されないのはなぜですか?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2481,7 +2481,7 @@ msgid "" " {ph0}; for Codex:" msgstr "セットアップ後にエージェントを再起動または再接続します。 でそのREA登録を確認してください {ph0};Codexのため :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "端末·一つのクライアントを確認してください" @@ -2489,7 +2489,7 @@ msgstr "端末·一つのクライアントを確認してください" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2499,14 +2499,14 @@ msgstr "" "置換 {ph0} クライアントIDでは、次のようになります {ph1} または {ph2}. " "レポートに不足している登録または古い登録が表示されている場合は、そのクライアントのセットアップを実行します:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "端末*クライアントのセットアップを修復" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2517,14 +2517,14 @@ msgstr "" "その計画を確認し、クライアントを再起動します。 登録は正常ですが、ツールが存在しない場合は、クライアントのMCP接続エラーを確認してください。 " "{ph0}より多くのセットアップ診断{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "最初にHopperを起動する必要がありますか?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2535,14 +2535,14 @@ msgstr "" "REAは、操作が必要なときにHopperを開始します。 macOSでは、無人分析の前にデモモードまたはライセンス認証の最初の実行選択を完了します。 " "{ph0}ネイティブプロバイダーの設定を参照してください{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "バグが起きたらどうすればいい?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2553,7 +2553,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2565,24 +2565,24 @@ msgstr "" "あなたのREAバージョン、オペレーティングシステム、ターゲットタイプ、再現する手順とエラー出力を使用します。 " "問題がマシンコードプログラムの分析に関係する場合は、プロバイダー名を含めます。" -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "データと共有" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REAは私のアプリをアップロードしますか?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 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:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "例を共有したり、貢献したりするにはどうすればよいですか?" @@ -2591,7 +2591,7 @@ msgstr "例を共有したり、貢献したりするにはどうすればよい #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2605,7 +2605,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2626,91 +2626,91 @@ msgid "" "coding agents, troubleshooting and sharing examples." msgstr "一般的なREAの質問への回答:インストール、更新、分析ツール、コーディングエージェント、トラブルシューティングと共有例。" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "REAに関するよくある質問" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "コピー REAセットアップコマンド" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "COPY REA updateコマンド" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Copy agent setup refreshコマンド" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "コピー REA CLI解析コマンド" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "分析例のコピー" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "クライアント診断コマンドのコピー" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "スコープ設定のコピーコマンド" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}ホーム{ph1} /あなたの最初の調査" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 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:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "この演習では" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2718,7 +2718,7 @@ msgstr "{ph0}1. セットアップ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2726,7 +2726,7 @@ msgstr "{ph0}2. 輸出について尋ねる{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2734,7 +2734,7 @@ msgstr "{ph0}3. 答えに従ってください{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2742,13 +2742,13 @@ msgstr "{ph0}4. 予測を確認する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. エージェントをREAに接続します" @@ -2761,44 +2761,44 @@ msgstr "1. エージェントをREAに接続します" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "コピー" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "または、ターミナルでこのコマンドを実行します:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 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:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. CSVがどこに書かれているかを尋ねる" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2809,7 +2809,7 @@ msgstr "" "この例では、6つのファイルElectronアプリを使用しています。 {ph0}ノートのエクスポート{ph1} ボタン。 " "エージェントは、Electronをインストールまたは起動せずにコードを検査できます。" -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2819,14 +2819,14 @@ msgstr "エージェントはファイルをダウンロードし、検査のた #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ダウンロード例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2836,12 +2836,12 @@ msgstr "" "エージェントがファイルをダウンロードできない場合は、このアーカイブを自分で解凍します。 それへの道を与えてください {ph0} " "フォルダと同じエクスポートの質問。" -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. コードに戻って答えに従ってください" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ファイルと行の参照に関する簡単な説明を探してください:" @@ -2850,7 +2850,7 @@ msgstr "ファイルと行の参照に関する簡単な説明を探してくだ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2860,19 +2860,19 @@ msgid "" msgstr "" "ボタンは{ph0}メッセージを送ります。メインプロセスはメモをCSV形式に変換し、ユーザーのダウンロードフォルダーに{ph1}を保存します。列は{ph2}と{ph3}です。" -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "ボタンからファイルライターへ" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 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:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -2883,54 +2883,54 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. 予測を確認する" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 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:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "自分でチェックを実行します" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. 別の質問をする" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "同じ会話でフォローアップを試してみてください:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -2941,7 +2941,7 @@ msgstr "または、エージェントに独自のアプリを提供し、一つ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2954,7 +2954,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2967,7 +2967,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2990,116 +2990,116 @@ msgstr "" "小さなノートアプリでREAを試してみてください。 " "エージェントを設定し、エクスポートされたノートの場所を尋ね、サンプルタイトル付きのCSVフォーマッタを確認します。" -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "あなたの最初のREA調査" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "コピー REAインストールプロンプト" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Copy setupコマンド" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "コピーノート調査プロンプト" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "コピー CSVチェックプロンプト" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "コピーフォーマッタチェックコマンド" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}ホーム{ph1} /はじめに" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "REAをセットアップします。" -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "ターミナルを開いて確認してください:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "ターミナル" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "コピー" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3109,17 +3109,18 @@ msgstr "条件に同意するように求められた場合は、\"Y\"と入力 #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." -msgstr "お使いのディストリビューションの{ph0}パッケージは22.23.4より古いことが多いので、そちらを使う場合は{ph1}で確認してください。" +msgstr "" +"お使いのディストリビューションの{ph0}パッケージは22.23.4より古いことが多いので、そちらを使う場合は{ph1}で確認してください。" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3129,7 +3130,7 @@ msgstr "通常のインストーラを好みますか? からLTSバージョ #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3137,7 +3138,7 @@ msgstr "{ph0}CLIを使用する {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3151,18 +3152,18 @@ msgstr "{ph0}助けを得る{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "または自分でセットアップを実行します" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "ターミナルを開くにはどうすればよいですか?" @@ -3171,7 +3172,7 @@ msgstr "ターミナルを開くにはどうすればよいですか?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3187,7 +3188,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3199,7 +3200,7 @@ msgstr "{ph0} macOS :{ph1} プレス {ph2} {ph3}、タイプ {ph4}ターミナ #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3212,7 +3213,7 @@ msgstr "{ph0} Linux :{ph1} プレス {ph2} {ph3} {ph4} ほとんどのデスク #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3222,7 +3223,7 @@ msgstr "" "でコマンドを貼り付ける {ph0} {ph1} (macOS : {ph2} {ph3};Linux端子: {ph4} {ph5} " "{ph6})を押し、Enterキーを押します。" -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3232,7 +3233,7 @@ msgstr "" "クライアントを選択し、セットアッププランを確認します。 REAは、MCP接続とマッチング調査スキルを追加し、既存の構成のバックアップを保持します。 " "変更を適用する前に尋ねます。" -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "クライアントを再起動するにはどうすればよいですか?" @@ -3241,7 +3242,7 @@ msgstr "クライアントを再起動するにはどうすればよいですか #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3256,7 +3257,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3265,7 +3266,7 @@ msgid "" msgstr "" "{ph0}ターミナルエージェント{ph1} (Claude Code,Codex,Gemini CLI):セッションを終了し、再度開始します。" -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "フォルダのフルパスを取得するにはどうすればよいですか?" @@ -3274,7 +3275,7 @@ msgstr "フォルダのフルパスを取得するにはどうすればよいで #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3288,7 +3289,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3300,7 +3301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3308,27 +3309,27 @@ msgid "" "appears." msgstr "{ph0}任意のシステム:{ph1} フォルダをターミナルウィンドウにドラッグすると、そのパスが表示されます。" -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 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:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "静的アプリケーション分析" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3336,13 +3337,13 @@ msgid "" "Windows, a path such as {ph1} works here." msgstr "パスを、展開したアプリのディレクトリーまたは{ph0}ファイルに置き換えてください。Windowsでは、{ph1}のようなパスを使えます。" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "どこでアプリを見つけるのですか。asarファイル?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3353,7 +3354,7 @@ msgstr "Electronアプリは、通常、それを維持します {ph0} フォル #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3365,7 +3366,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3376,20 +3377,20 @@ msgstr "{ph0} macOS :{ph1} {ph2} (アプリを右クリックして選択し #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} 多くの場合 {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3398,36 +3399,36 @@ msgid "" msgstr "結果はアプリを識別し、モジュール間の接続を示し、ソースの場所を示します。 REAが解決できない接続は、結果にマークされています。" #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "CLIをインストールする" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Ghidraインストールを接続します" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "GhidraをWindowsに接続する" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3437,13 +3438,13 @@ msgstr "" "Windows x64では、固定ローカルNTFSドライブ上のネイティブx86/x64 " "PEアプリとDLLに実験的な読み取り専用対応があります。既存のGhidra 12.1.xと64ビットのJDK 21以降を使ってください。" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." msgstr "2つのパスをインストールに置き換えてから、セットアップの計画を確認します。" -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3452,18 +3453,18 @@ msgstr "" "HopperをmacOSまたはLinuxに接続します。 " "上記のsetupコマンドを実行します。既存のインストールを検出するか、承認のためのインストール計画を提供します。" -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "助けを得る" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "エージェントにREAが表示されない場合" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3471,22 +3472,22 @@ msgid "" "{ph0}; for Codex:" msgstr "セットアップ後にクライアントを再起動または再接続します。 とのREA接続を確認してください {ph0};Codexのため :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "プロバイダが注意を必要とする場合" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "使用しているプロバイダーを確認してください。 Ghidraのため :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "一つのプロバイダを確認してください" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "レポートには、失敗したチェックと推奨される次のステップが表示されます。" @@ -3495,7 +3496,7 @@ msgstr "レポートには、失敗したチェックと推奨される次のス #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3506,7 +3507,7 @@ msgstr "{ph0} REAよくある質問{ph1}{ph2}更新、エージェント、分 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3518,7 +3519,7 @@ msgstr "{ph0}調査ガイドを選ぶ{ph1}{ph2}バイナリ、Electronアプリ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3530,7 +3531,7 @@ msgstr "{ph0} GitHubの問題{ph1}{ph2}コマンドと診断に関する問題 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3552,68 +3553,68 @@ msgstr "" "REAをコーディングエージェントに接続するか、ターミナルからローカルのJavaScriptまたはElectronアプリを検査します。 " "セットアップ、最初の質問とネイティブプロバイダガイド。" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "コピー Node.jsバージョンチェック" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "コピー Node.js のインストールコマンド Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "コピー Homebrew Node.jsインストールコマンド" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Linuxのfnmインストールコマンドのコピー" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Node.js24コマンドをLinuxにコピーする" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA入門ガイド" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "コピー REAインストールプロンプト" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Copy JavaScript解析コマンド" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Copy CLIインストールコマンド" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "プロバイダ診断コマンドのコピー" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -3622,34 +3623,34 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}ホーム{ph1} / {ph2}ガイド{ph3} /ブラウザ観察" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 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:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "このガイドの内容" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3657,7 +3658,7 @@ msgstr "{ph0}この例は次のとおりです{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3665,7 +3666,7 @@ msgstr "{ph0}ブラウザを開く{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3673,7 +3674,7 @@ msgstr "{ph0}あなたの代理店に尋ねる{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3681,13 +3682,13 @@ msgstr "{ph0}CLIからのキャプチャ {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "[エクスポート]をクリックするとどうなりますか?" @@ -3697,7 +3698,7 @@ msgstr "[エクスポート]をクリックするとどうなりますか?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3708,7 +3709,7 @@ msgstr "" "ザ- {ph0}ノートブラウザの例{ph1} を持っている {ph2}ノートのエクスポート{ph3} ボタン。 それをクリックするとロードされます " "{ph4}、CSVとして二つのノートをフォーマットし、ダウンロードを開始します。" -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "クリックからCSVダウンロードへ" @@ -3719,7 +3720,7 @@ msgstr "クリックからCSVダウンロードへ" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3734,7 +3735,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3752,7 +3753,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3762,38 +3763,38 @@ msgstr "" "{ph0}03*あなたの代理店{ph1}{ph2}エクスポートコードを読む{ph3}{ph4}監視された要求をに接続して下さい {ph5} で " "{ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "[ノートのエクスポート]をクリックする前に、キャプチャを開始します。" -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "リモートデバッグでChromeを開く" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " "debugging port. On Linux:" msgstr "別のブラウザプロファイルとローカルデバッグポートを使用して、ホストされたNotesの例を開きます。 Linuxについて :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "例のブラウザを起動します" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "コピー" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -3802,14 +3803,14 @@ msgstr "" "インストールされているブラウザの実行可能パスをmacOSまたはWindowsに使用します。 " "ページのURLを検査する別のページに置き換えることができます。" -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 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:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "一つのアクションを見るためにあなたのエージェ" @@ -3822,7 +3823,7 @@ msgstr "一つのアクションを見るためにあなたのエージェ" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3834,7 +3835,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディング #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3845,7 +3846,7 @@ msgstr "" "それはどのような要求を行い、CSVはどのように構築されていますか?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3854,7 +3855,7 @@ msgid "" msgstr "" "プロンプトの例。 エージェントにデバッグエンドポイントを与える, {ph0}、およびページのURL。 クリックする前にキャプチャを開始しましょう。" -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -3863,23 +3864,23 @@ msgid "" msgstr "" "エージェントはページターゲットを検出し、観察ウィンドウを開始し、結果の証拠を読み取ります。 その後、エクスポートの背後にあるスクリプトを検査できます。" -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "または端末からキャプチャします" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "ページのターゲットIDを検索する:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "ページを探す" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3887,14 +3888,14 @@ msgid "" "ID, then run:" msgstr "Notesの例のURLでターゲットを選択します。 置換 {ph0} そのIDで以下を実行し、次に実行します:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "次の10秒をキャプチャします" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3904,7 +3905,7 @@ msgstr "" "コマンドを数秒間接続してから、をクリックします {ph0}ノートのエクスポート{ph1} そのブラウザで。 " "結果は、観測ウィンドウが終了した後に到着します。" -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -3914,49 +3915,49 @@ msgstr "" "キャプチャされた結果には、選択されたページ、そのウィンドウ中のネットワークアクティビティ、およびJSON応答の形状が含まれます。 " "以前の要求はこのキャプチャの外にあります。" -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "リクエストとエクスポートスクリプトを読む" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "ローカルノートの例でREA4.1.0で記録されました" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "捕獲された事実" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "値" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "リクエスト" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "応答" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "リクエストイニシエータ" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} •スクリプト" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "応答構造" @@ -3964,19 +3965,19 @@ msgstr "応答構造" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "ロードされたスクリプトを読む" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3987,7 +3988,7 @@ msgstr "" "キャプチャされたスクリプトソースを読んで、データの使用方法を確認します:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3997,7 +3998,7 @@ msgid "" msgstr "ダウンロードは、JSON応答を使用してページで構築されます。 CSV書式設定ステップはスクリプトから取得されます。 {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4007,7 +4008,7 @@ msgstr "要求するスクリプトを見つけます {ph0}. カンマや引用 #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4030,65 +4031,65 @@ msgid "" msgstr "" "REAを使用してノートのエクスポートを観察する:ブラウザページを選択し、クリックをキャプチャし、要求を検査し、エクスポートスクリプトに従います。" -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "ブラウザ観察" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "例のブラウザをコピーして起動します" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "プロンプトの例をコピーする" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "コピーページを探す" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "次の10秒をキャプチャしてコピーします" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "ロードされたスクリプトをコピーして読みます" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}ホーム{ph1} /ガイド" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REAガイド." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4096,59 +4097,59 @@ msgid "" msgstr "" "ネイティブ関数、Electronエクスポート、またはブラウザ要求を分析します。 各ガイドには、プロンプト、コード、および結果が含まれています。" -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "最初の調査" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "REAのセットアップ" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "コーディングエージェントを接続するか、端末からREAを使用します。" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "REAを始める" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "マシンコードプログラム" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "左/右の音の位置の計算を回復します" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 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:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "機械コードの解析プログラムガイド" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "CSVエクスポートに従ってください" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4157,37 +4158,37 @@ msgstr "" "小さなNotesアプリは、レンダラー、プリロード、メインプロセス全体に一つの機能を広げます。 " "REAを使用して、API、IPCチャネル、およびファイルライターを接続します。" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript&Electronガイド" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "ブラウザの動作" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "クリックを観察する" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "ブラウザ観察ガイド" @@ -4204,12 +4205,12 @@ msgid "" "CSV export and a browser request." msgstr "ネイティブ計算、Electron CSVエクスポートとブラウザ要求:短い働いた例を通してREAを学びます。" -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -4218,34 +4219,34 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " "file writer." msgstr "ページAPIからElectron IPCを介して、CSVファイルライターにボタンをクリックします。" -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "このガイドの内容" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4253,7 +4254,7 @@ msgstr "{ph0}この例は次のとおりです{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4261,7 +4262,7 @@ msgstr "{ph0}あなたの代理店に尋ねる{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4269,7 +4270,7 @@ msgstr "{ph0}エクスポートコードのトレース{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4277,20 +4278,20 @@ msgstr "{ph0}例を試してみてください{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"エクスポートノート\"はどこに行くのですか?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4301,7 +4302,7 @@ msgstr "" "このガイドでは、小さなElectronアプリを使用しています。 クリック {ph0}ノートのエクスポート{ph1} " "ページ内のAPIを呼び出し、メインプロセスに交差し、CSVを書き込みます。 動作は複数のファイルに分散されます。" -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "CSVは、Electronプロセス間でエクスポートします" @@ -4315,7 +4316,7 @@ msgstr "CSVは、Electronプロセス間でエクスポートします" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4332,7 +4333,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4348,7 +4349,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4361,13 +4362,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4377,14 +4378,14 @@ msgstr "" "REAは、そのハンドラーへのリテラルIPC呼び出しと一致し、公開されたAPIを識別します。 " "パスはコードから推測され、ランタイムキャプチャは何が実行されるかを確認できます。" -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "CSV輸出について尋ねる" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4400,14 +4401,14 @@ msgstr "{ph0}エージェントをREAに接続します {ph1} そして、それ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "コピー" @@ -4418,7 +4419,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4429,7 +4430,7 @@ msgstr "" "CSVはどこで作成されますか?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4437,7 +4438,7 @@ msgid "" "{ph0}." msgstr "プロンプトの例。 アプリケーションフォルダへの絶対パスを含めるか、 {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4447,17 +4448,17 @@ msgstr "" "REAはアプリケーションファイルを読み取り、エントリポイント、モジュール、およびプロセス境界のマップを構築します。 " "エージェントはそのマップを使用して、調査をエクスポート機能に絞り込みます。" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "エクスポートコードのトレース" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "ページは小さなAPIを呼び出します" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4466,7 +4467,7 @@ msgstr "ページはメソッド名を知っています。 実装はプリロ #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4476,7 +4477,7 @@ msgstr "REAレコード {ph0} とリテラルチャンネル {ph1}. その呼び #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4486,7 +4487,7 @@ msgstr "" "ハンドラーを読むことは元の質問に答えます: {ph0} メモをフォーマットし、メインプロセスは書き込みます {ph1} " "ユーザーのダウンロードフォルダに移動します。" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4494,7 +4495,7 @@ msgid "" msgstr "" "以下のダウンロード可能な例でREA4.1.0によって記録されました。 ソースの場所は、API、チャネル、およびハンドラーの調査結果に伴います。" -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "自分で例を分析してください" @@ -4502,25 +4503,25 @@ msgstr "自分で例を分析してください" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ダウンロード例ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "6つのソースファイルを参照します。" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "静的アプリケーション分析" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4530,7 +4531,7 @@ msgstr "" "パスを解凍したフォルダに置き換えます。 あなたは1つのIPCチャネルと1つの一致するハンドラを見つける必要があります {ph0}. " "ソースの場所は次のとおりです {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4540,13 +4541,13 @@ msgstr "" "独自のアプリの場合は、そのディレクトリまたはASARパスで同じコマンドを使用します。 " "エージェントは、REAの機能トレースツールを使用して、リテラル文字列、API名、またはIPCチャネルを追跡できます。" -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "CSVライターを検査する" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4554,7 +4555,7 @@ msgid "" "happens if writing the file fails?" msgstr "フォロー {ph0} そのハンドラに。 どの入力がCSVライターに到達し、ファイルの書き込みに失敗した場合はどうなりますか?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4566,7 +4567,7 @@ msgstr "これらの詳細を検査するには、ソースの場所を使用し #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4580,7 +4581,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4592,7 +4593,7 @@ msgstr "{ph0}ブラウザのエクスポートを観察する{ph1}{ph2}実際の #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4615,32 +4616,32 @@ msgstr "" "トレースAノートCSVレンダラー API、プリロード、およびREAを使用したIPCハンドラーを介してエクスポートします。 " "ダウンロード可能なサンプルファイルと検証済みの分析結果が含まれています。" -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "プロンプトの例をコピーする" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "静的アプリケーション分析のコピー" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -4649,34 +4650,34 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}ホーム{ph1} / {ph2}ガイド{ph3} /機械コードプログラムの解析" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 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:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "このガイドの内容" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4684,7 +4685,7 @@ msgstr "{ph0}この例は次のとおりです{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4692,7 +4693,7 @@ msgstr "{ph0}あなたの代理店に尋ねる{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4700,7 +4701,7 @@ msgstr "{ph0}REAの結果を読む{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4708,18 +4709,18 @@ msgstr "{ph0}回復とチェック{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "左/右のステレオサウンドの位置を計算する" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4728,7 +4729,7 @@ msgstr "DX-Ballでは、レンガのヒットが水平画面の位置を供給 #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4739,7 +4740,7 @@ msgstr "" "開始機能, {ph0}、短い逆コンパイラの結果を持っています:への呼び出し {ph1}. " "REAはまた、エージェントに不足している算術を調査する方法を与えるその命令と呼び出し元を返します。" -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "これらの条件に新しいですか?" @@ -4748,7 +4749,7 @@ msgstr "これらの条件に新しいですか?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4758,7 +4759,7 @@ msgstr "{ph0}説明書:{ph1} プロセッサが実行する手順は、次のよ #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4770,7 +4771,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4781,7 +4782,7 @@ msgstr "{ph0}発信者:{ph1} これを呼び出す関数。 どの値が渡さ #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4791,7 +4792,7 @@ msgstr "{ph0}住所:{ph1} プログラム内の場所で、次のような16進 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4799,7 +4800,7 @@ msgid "" "and decoded." msgstr "{ph0}定数:{ph1} プログラムに格納されている固定番号は、生のバイトとして読み取られ、デコードされます。" -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "証拠の三つの部分、一つの計算" @@ -4810,7 +4811,7 @@ msgstr "証拠の三つの部分、一つの計算" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4826,7 +4827,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4842,7 +4843,7 @@ msgstr "{ph0}02*発信者{ph1}{ph2}画面座標{ph3}{ph4}ブリックヒット #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4852,14 +4853,14 @@ msgstr "" "{ph0}03*データバイト{ph1}{ph2}数値定数{ph3}{ph4}参照されたバイトはに解読します {ph5}, {ph6} " "とスケール値。{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 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:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "行動について尋ねる" @@ -4868,7 +4869,7 @@ msgstr "行動について尋ねる" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4878,19 +4879,19 @@ msgstr "" "後 {ph0}REAをエージェントに接続する{ph1} と " "{ph2}マシンコードプログラムの解析ツールの設定{ph3}、ローカル実行可能ファイルと質問を提供します:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "どの分析ツールを使うべきですか?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REAは、ネイティブプログラムを読むためにこれらのいずれかが必要です:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4903,7 +4904,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4915,7 +4916,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4924,7 +4925,7 @@ msgstr "{ph0} IDA {ph1} (Windows):MCP登録を持つ既存のIDAセットアッ #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -4938,14 +4939,14 @@ msgstr "見る {ph0}マシンコードプログラムの解析の設定{ph1} ス #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "コピー" @@ -4956,7 +4957,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4966,7 +4967,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用して、DX-Ballがステレオサウンドの位置を計算する方法を見つけます。 " "計算を説明し、コードを表示します。{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -4976,7 +4977,7 @@ msgstr "" "プロンプトの例。 エージェントにローカルのDX-Ball1.07実行可能ファイルへのパスを指定します。 REAにはDX-" "Ballが含まれていないため、独自のコピーを使用するか、持っている別の小さなWindowsプログラムについて同じ種類の質問をしてください。" -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "ファイルのフルパスを取得するにはどうすればよいですか?" @@ -4985,7 +4986,7 @@ msgstr "ファイルのフルパスを取得するにはどうすればよいで #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4999,7 +5000,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5011,7 +5012,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5019,30 +5020,30 @@ msgid "" "appears." msgstr "{ph0}任意のシステム:{ph1} ファイルをターミナルウィンドウにドラッグすると、そのパスが表示されます。" -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "REAの結果を読む" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "入力を読む" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 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:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "発信者に従ってください" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5051,24 +5052,24 @@ msgid "" msgstr "" "REAは、ブリックヒット呼び出し元を識別します。 以前の手順では、タイル座標に30を掛けます。 {ph0} (20)は、レンガの画面位置を与えます。" -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "参照される定数の読み取り" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 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:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "復元された機能の書き込みと確認" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5078,7 +5079,7 @@ msgstr "" "縮尺が1.0の場合、画面の位置0、320、640は整数変換の前に-500、0、500にマップされます。 " "この計算では、画面の中心がステレオフィールドの中心に置かれます。" -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5090,20 +5091,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "独自のバイナリで試してみてください" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5116,20 +5117,20 @@ msgstr "" "次に、エージェントにローカルの実行可能ファイルまたはライブラリと調査する機能を提供します。 " "有用な開始質問には、\"このファイルはどのように解析されますか?\"または\"このメニューアクションを処理する関数はどれですか?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 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:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "関数解析" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5142,7 +5143,7 @@ msgstr "" "各CLI呼び出しは、バイナリをインポートして分析し、そのセッションを閉じます。 " "エージェントのMCPクエリは、セッションが開いている間にインポートされたバイナリを再利用します。" -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5161,50 +5162,50 @@ msgid "" "caller, read constants and check reconstructed C." msgstr "REAでネイティブ計算を復元する:命令を検査し、呼び出し元に従って、定数を読み取り、再構成されたCを確認します。" -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "機械コードプログラムの解析" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "プロンプトの例をコピーする" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "コピー関数解析" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "このページでは" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "REAのセットアップ" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5212,7 +5213,7 @@ msgstr "{ph0}REAのセットアップ {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5220,7 +5221,7 @@ msgstr "{ph0}恐竜ゲーム{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5228,7 +5229,7 @@ msgstr "{ph0}電卓{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5236,25 +5237,25 @@ msgstr "{ph0}REAを試してみてください {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}さらに詳しく{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "コーディングエージェントとのリバースエンジニアリング" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "ソフトウェアの{ph0}仕組みを知ろう。" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "このプロンプトをコーディングエージェントに貼り付けてください:" @@ -5267,33 +5268,33 @@ msgstr "このプロンプトをコーディングエージェントに貼り付 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "コピー" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "ターミナルから実行することもできます:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "設定の変更内容を確認して承認したら、エージェントを再起動します。" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5301,7 +5302,7 @@ msgstr "{ph0}01{ph1} 枝をデコードする" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5309,7 +5310,7 @@ msgstr "{ph0}02{ph1} トレース呼び出し" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5319,20 +5320,20 @@ msgstr "{ph0}03{ph1} ルールを回復する" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01*どの支店?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5340,29 +5341,29 @@ msgid "" "these?”" msgstr "“{ph0}0x5b? 0x5c?{ph1} 同じ場所に2つのジャンプ。 これらはどの演算子ですか?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "コマンドIdを検索し、ブランチにラベルを付けます。" -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "ディバイド÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "乗算×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · 呼び出された関数は何をする?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5370,24 +5371,24 @@ msgid "" "value goes in?{ph1}”" msgstr "「100は明らかです。 呼び出しは単なるアドレスです。 {ph0}どちらが分かれていますか? どの値が入りますか?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "ヘルパー関数を検査し、格納されている値をトレースします。" -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "ディバイド" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03·ルールとは何ですか?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5395,19 +5396,19 @@ msgid "" "after +.”" msgstr "\"このパスは、他の入力によって乗算されます。 だから {ph0}10%は200の10%を意味します{ph1} +の後。”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "オペランドに名前を付け、両方の演算子パスを確認します。" -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "図解専門家の推論" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5423,87 +5424,87 @@ msgstr "{ph0}命令をデコードし、関数呼び出しに従って計算を #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "回答例*調査結果に基づく" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA が提供する情報" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "ハンドラーの命令、逆コンパイルされたコード、および呼び出し。" -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "エージェントが説明すること" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "どのブランチが適用され、何が計算され、どのように再構築するか。" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "例01•Chromeの恐竜ゲーム" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "恐竜はなぜ速くなる?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "スタート" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "ジャンプ ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "リスタート" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "速度" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "回復された加速ルールを使用する" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "元のルール:6から開始し、13に向かって増加します。" -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "スライダーを動かして独自の速度を設定します。 スペースまたはジャンプはサボテンをクリアします。" @@ -5514,7 +5515,7 @@ msgstr "スライダーを動かして独自の速度を設定します。 ス #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5527,18 +5528,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "検査対象: {ph0}wayouのChromium派生ブラウザ版{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "スピードラボを開く→" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "各部分が何をするか" @@ -5549,7 +5550,7 @@ msgstr "各部分が何をするか" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5564,7 +5565,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5579,7 +5580,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5588,13 +5589,13 @@ msgid "" msgstr "" "{ph0}03*あなた{ph1}{ph2}スピードとプレイを変更します{ph3}{ph4}元の加速を試してから、自分のペースを選択してください。{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "スクリプト、チェック、および分析を試す方法を参照してください" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5604,7 +5605,7 @@ msgstr "" "REAは、ローカルデバッグ接続を介してHTTP browser editionを検査し、ロードされたものを返しました " "{ph0}、そのソースとダイジェストを含みます。" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5616,7 +5617,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5631,7 +5632,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5647,41 +5648,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, 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:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "例02•Windows計算機" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "電卓の % ボタンを再現する。" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "リセット" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10%の200=20. 次に、200+20=220。" -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "検査されたパーセンテージルールのインタラクティブなイラスト。" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5693,7 +5694,7 @@ msgstr "この例では, {ph0} と {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5704,7 +5705,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用して、Windows計算機の%ボタンを検査します。 " "+と×の後にルールを回復し、両方を使用する小さな電卓を作成します。{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "と+" @@ -5712,13 +5713,13 @@ msgstr "と+" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "×付き" @@ -5726,13 +5727,13 @@ msgstr "×付き" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "インストールされているアプリから作業中の%ボタンへ" @@ -5744,7 +5745,7 @@ msgstr "インストールされているアプリから作業中の%ボタン #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5761,7 +5762,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5771,12 +5772,12 @@ msgid "" msgstr "" "{ph0}03*あなたのエージェントはそれを解釈します{ph1}{ph2}ルールの説明と再現{ph3}{ph4}ブランチをMicrosoftのソースと照合してから、上記の+と×を試してください。{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "実際のコードと答えがどのようにチェックされたかを参照してください" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -5796,7 +5797,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5804,80 +5805,80 @@ msgid "" "{ph4}Native setup guide{ph5}" msgstr "{ph0}割合の実装{ph1} · {ph2}マイクロソフトのテストケース{ph3} · {ph4}ネイティブセットアップガイド{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "あなたの最初の調査" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "小さなアプリでREAを試してみてください。" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " "input." msgstr "私たちのノートの例をダウンロードし、そのCSVエクスポートをトレースし、一つの変更された入力を確認してください。" -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "ガイド付きの例を試してください" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "マシンコードプログラム" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" " and libraries." msgstr "実行可能ファイルおよびライブラリ内の関数、文字列、参照、および関数呼び出しの関係を検査します。" -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "機械コードの解析プログラムガイド" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "アプリケーションフォルダまたはASARアーカイブからモジュール、ルート、IPCおよびネイティブ依存関係をマップします。" -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "アプリケーションワークフロー" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "ブラウザとランタイムアクティビティ" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " "across runs." msgstr "選択したブラウザまたはプロセスアクティビティをキャプチャし、実行間で結果を比較します。" -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "ブラウザ観察ガイド" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "質問がありますか?" @@ -5896,54 +5897,54 @@ msgstr "" "コーディングエージェントを使用して、アプリ、バイナリ、ブラウザの動作をリバースエンジニアリングします。 " "明確なガイドに従って、REAを使用してインタラクティブな例を試してください。" -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "コピー REAインストールプロンプト" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Copy setupコマンド" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "手動計算機の分析に従ってください" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "コピー電卓パーセントの質問" -#: website/public/index.html:653 +#: website/public/index.html:659 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:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "コピー恐竜解析プロンプト" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "計算を選択する" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "コピー電卓分析プロンプト" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -5952,42 +5953,42 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "ケーススタディ·Aegis認証器" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "オーセンティケータはどのようにしていますか{ph0}ログインコードを生成しますか?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " "in an Android APK, then rebuild it with a clock you can control." msgstr "6桁のコードは30秒ごとに変更されます。 REAを使用してAndroid APKで計算を見つけ、制御できる時計で再構築します。" -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis3.4.3·アンドロイド·公式リリースAPK*6.9MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "AegisをGitHubに表示する" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "APKから再現できるコードへ" @@ -5998,7 +5999,7 @@ msgstr "APKから再現できるコードへ" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6015,7 +6016,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6032,7 +6033,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6043,14 +6044,14 @@ msgstr "" "{ph0}03*再構築とチェック{ph1}{ph2}クロックを変更します。 " "コードを見てください。{ph3}{ph4}新しいブラウザのデモでは、ルールを再現し、公開されている参照ケースと照合します。{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "このケーススタディでは" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6058,7 +6059,7 @@ msgstr "{ph0}あなたの代理店に尋ねる{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6066,7 +6067,7 @@ msgstr "{ph0}コードジェネレータを試してみてください{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6074,7 +6075,7 @@ msgstr "{ph0}REAでコードを見つける {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6082,7 +6083,7 @@ msgstr "{ph0}計算を読む{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6090,20 +6091,20 @@ msgstr "{ph0}再構築を確認する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "あなたの代理店に尋ねる" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6120,21 +6121,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "コピー" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6143,14 +6144,14 @@ msgid "" msgstr "" "ダウンロードしたAPKのプロンプトの例で、REAのAndroid分析が構成されています。 {ph0}APKと解析セットアップを入手↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "コードジェネレータを試してみてください" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6161,33 +6162,33 @@ msgstr "" "アプリは時間を次のようにグループ化します {ph0}30秒のブロック。{ph1} ブロック番号とアカウントキーを組み合わせてコードを生成します。 " "同じキーとブロックは同じコードを生成します。" -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "時計を60秒に移動する" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "時間" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "秒" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "私達の調節可能な例の時計" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30秒ブロック" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "ブロック" @@ -6196,35 +6197,35 @@ msgstr "ブロック" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "生成されたコード" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "アカウントキー+ブロック→6桁" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "時間の例(秒単位)" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59秒" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60秒" @@ -6233,7 +6234,7 @@ msgstr "60秒" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6244,7 +6245,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6253,25 +6254,25 @@ msgid "" msgstr "" "キーは固定されており、公開されています {ph0}RFC6238テストデータ{ph1}. このデモでは、APKから回収された計算を実装しています。" -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 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:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "REAでコードを見つける" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "APKを3つのクラスに絞り込みます" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6280,14 +6281,14 @@ msgid "" msgstr "" "{ph0} 他の2つは、プログレスバーとインポートされたアカウントに関するものです。 TOTPは、時間ベースのワンタイムパスワードを意味します。" -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "ジェネレータをアプリのディスプレイに接続します" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6297,7 +6298,7 @@ msgstr "" "REAはタイムスタンプオーバーロードを識別し、基本メソッドの呼び出し元を検索します。 検査 {ph0} 次に、表示呼び出しを表示します {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6305,14 +6306,14 @@ msgid "" "{ph0} prefix." msgstr "要求には、入力パスが短縮されて表示されます。 結果クラス名は共通を省略します {ph0} プレフィクス..." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "計算を読む" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6325,7 +6326,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6333,7 +6334,7 @@ msgstr "{ph0}01{ph1} タイムブロック" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6341,7 +6342,7 @@ msgstr "{ph0}02{ph1} キー+ブロック" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6349,7 +6350,7 @@ msgstr "{ph0}03{ph1} 六桁" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6359,7 +6360,7 @@ msgstr "{ph0}時間はブロックを選択します。{ph1} 秒30から59まで #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6372,7 +6373,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6386,7 +6387,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6396,7 +6397,7 @@ msgstr "" "いくつかの検査方法からの抜粋、表示のためのラインラッピング。 右のパネルは説明的な要約です。 {ph0} " "AegisコードはGPL-3.0です。{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "発電機の中" @@ -6405,7 +6406,7 @@ msgstr "発電機の中" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6414,7 +6415,7 @@ msgid "" msgstr "" "リリースされたAPKは {ph0} で {ph1}. REAはからの呼び出しに従います {ph2} 元のソースはヘルパーを呼び出します {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6429,20 +6430,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "再構築を確認する" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6453,29 +6454,29 @@ msgstr "" "選択したREA-返されたJavaメソッドを小さなテストプログラムで組み立てました。 彼らの出力は、上の独立した再構成に一致しました " "{ph0}133件のテストケース{ph1}、タイムブロック境界とゼロで始まるコードを含みます。" -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "時間例" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "6桁のコード" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30秒" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109秒" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6485,38 +6486,38 @@ msgstr "" "ジェネレータは、公開されている六つのSHA-1リファレンスケースにも一致します {ph0}6238{ph1}. " "それらに対するブラウザの実装を確認してください:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "参照チェックの実行" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "デモの計算を読む" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" "digit results." msgstr "参照ケースは8桁を使用します。 このチェックでは、6桁の結果も確認されます。" -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " "was inspected statically." msgstr "検証は、抽出されたJavaメソッドと新しいデモを実行します。 Android APKは静的に検査されました。" -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "APKを自分で調べてください" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6528,7 +6529,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6538,18 +6539,18 @@ msgstr "" "Android analysisには完全なJDK17以降が必要です。 で選択します。 {ph0} または {ph1}. " "このケースはJDK21を使用していました。" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS/Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6561,7 +6562,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6569,7 +6570,7 @@ msgid "" "different time interval?{ph1}" msgstr "次の質問: {ph0}アカウントが8桁または異なる時間間隔を使用するとどうなりますか?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "ソース" @@ -6585,7 +6586,7 @@ msgstr "ソース" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6598,13 +6599,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}RFC6238参照ケース{ph1} · {ph2}デモテストデータ{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6626,37 +6627,37 @@ msgid "" "calculation and try a reconstruction with an adjustable clock." msgstr "Aegis Android APKをREAで検査し、その六桁のログインコード計算を回復し、調整可能なクロックで再構築を試してください。" -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APKケーススタディ" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "コピー Aegisプロンプトの例" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "ログインコードの計算に従ってください" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "コピー APK検査コマンド" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -6665,26 +6666,26 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "ケーススタディ·DownUnderCTF2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "で旗を見つける{ph0}CTFバイナリ。" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6692,17 +6693,17 @@ msgid "" "find an input that makes the original program print {ph0}." msgstr "REAを使用して、小さなフラグチェッカーを検査し、そのルールを方程式に変換し、元のプログラムを印刷する入力を見つけます {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 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:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "オリジナルのチャレンジを見る" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "バイナリからチェックされた答えへ" @@ -6713,7 +6714,7 @@ msgstr "バイナリからチェックされた答えへ" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6730,7 +6731,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6747,7 +6748,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6758,20 +6759,20 @@ msgstr "" "{ph0}03*解決して実行する{ph1}{ph2}回収フラグ→正解!{ph3}{ph4}Pythonスクリプトは方程式を解きます。 " "REAは、結果を受け入れる元のプログラムをキャプチャします。{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "課題はjosephによるもので、DownUnderCTFの公式リポジトリに掲載されています。" -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "このケーススタディでは" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -6779,7 +6780,7 @@ msgstr "{ph0}チェックコードを見つける{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -6787,7 +6788,7 @@ msgstr "{ph0}1つのマスクを読む{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -6795,7 +6796,7 @@ msgstr "{ph0}読み取り可能なコードへのアセンブリ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -6803,7 +6804,7 @@ msgstr "{ph0}方程式を解く{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -6811,20 +6812,20 @@ msgstr "{ph0}答えを確認してください{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}自分で試してみてください{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "チェックコードを見つける" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6842,17 +6843,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "コピー" @@ -6863,7 +6864,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6874,33 +6875,33 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用してms_flag_checkerを分析し、フラグを見つけます。 " "チェックがどのように機能するかを説明し、元のプログラムで答えを確認します。{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 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:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "その機能に入力プロンプトに従ってください" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 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:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "チェッカーとその2つのヘルパーを読む" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6911,19 +6912,19 @@ msgstr "" "最初のループは36文字コードをコピーします。 チェックループはマスクをデコードし、選択したコードを合計し、結果を格納された番号と比較します。 その " "{ph0}-バイト-ステップ-アクロス {ph1} バイトは26個のマスクを与えます。" -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 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:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "一つのチェックは、一つの文字を明らかに" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -6935,13 +6936,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "7番目のチェックでは、1つの位置のみが選択されます。 {ph0}オープンフィギュア{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "バイナリからマスクとそのターゲットを読み取ります" @@ -6950,7 +6951,7 @@ msgstr "バイナリからマスクとそのターゲットを読み取ります #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6961,12 +6962,12 @@ msgstr "" "命令 {ph0} マスクバイトを符号付き値として読み取ります。 これが理由です {ph1} -21を意味します。 " "ターゲットはリトルエンディアンの整数です。 一緒に、これらのバイトはエージェントに次のことを伝えます {ph2}、その文字は {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "指示から読み取り可能なチェックまで" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -6975,7 +6976,7 @@ msgstr "加算ヘルパーとその呼び出し元をCの同じルールに接 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -6983,7 +6984,7 @@ msgstr "{ph0}01{ph1} スタート" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -6991,7 +6992,7 @@ msgstr "{ph0}02{ph1} 選択" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -6999,7 +7000,7 @@ msgstr "{ph0}03{ph1} 追加" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7007,18 +7008,18 @@ msgstr "{ph0}04{ph1} アドバンス" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} 比較" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA*選択されたオリジナルの指示" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "読み取り可能なC*ワンチェックの概要" @@ -7026,7 +7027,7 @@ msgstr "読み取り可能なC*ワンチェックの概要" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7034,7 +7035,7 @@ msgstr "{ph0}01*ゼロから開始します。{ph1} {ph2} 実行中の合計を #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7044,7 +7045,7 @@ msgstr "{ph0}02*マスクセルを確認します。{ph1} ゼロ値は文字を #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7054,7 +7055,7 @@ msgstr "{ph0}03*文字コードを追加します。{ph1} 同じオフセット #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7066,7 +7067,7 @@ msgstr "{ph0}04*次のセルに移動します。{ph1} 元のループは整数 #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7075,19 +7076,19 @@ msgid "" msgstr "" "{ph0}05*保存されたターゲットと比較します。{ph1} 呼び出し元は、合計を受信します {ph2}. ミスマッチがジャンプします {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 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:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "26の方程式を解く" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7097,13 +7098,13 @@ msgstr "" "ほとんどのマスクは複数のセルを選択します。 たとえば、最初のチェックでは16個の文字コードが追加され、合計1441個が必要です。 " "重複する選択は、小さなPythonスクリプトが一緒に解くことができる方程式を与えます。" -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python*ソルバーの抜粋" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7115,19 +7116,19 @@ msgstr "" "Z3は、これらの方程式を満たす値を見つけるソルバーです。 この抜粋は、抽出されたチェックを使用し、aを前提としています {ph0} " "文字、数字、アンダースコアと中括弧を持つフラグ。 完全なダウンロードには、26個のマスクとターゲットすべてが含まれています。" -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "完全なソルバーをダウンロードする" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "元のプログラムで答えを確認してください" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7138,59 +7139,59 @@ msgstr "" "REAのプロセスキャプチャは、解決されたフラグを受け入れる元の実行可能ファイルを記録します。 から選択した文字を変更する {ph0} に {ph1} " "最初の合計を1441ではなく1440にし、プログラムはそれを拒否します。" -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "入力" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "観測された出力" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "終了コード" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "ソルバーの旗" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "一つの文字が変更されました" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "回収されたフラグとキャプチャされた出力を表示する" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA•オリジナルプログラム出力" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "フラグのコピー" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 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:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "ソース、ターゲットの識別情報および分析の詳細" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7200,7 +7201,7 @@ msgstr "" "2026年10月8日に、REA4.1.0とGhidra12.1.4をLinux x64で使用して、新鮮な分析と2つのプロセスキャプチャを行いました。 " "バイナリは削除されたx86-64ELF、15,248バイトです。" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7222,7 +7223,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7231,12 +7232,12 @@ msgid "" msgstr "" "{ph0}主催者のソースと比較する{ph1} · {ph2}チャレンジメタデータとフラグ{ph3} · {ph4} REA証拠ノート{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "自分で試してみてください" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7244,13 +7245,13 @@ msgid "" msgstr "" "元のチャレンジとソルバーを1つのフォルダにダウンロードします。 上記のプロンプトを使用してエージェントに調査するか、含まれているスクリプトを実行します。" -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "ターミナル*解決して実行" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7261,7 +7262,7 @@ msgstr "" "スクリプトは候補フラグを出力します。プログラムのプロンプトに貼り付けます。 ニーズを解決するPythonと {ph0}. " "元の実行可能ファイルを実行するには、Linux x86-64が必要です。" -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "コーディングエージェントでREAをセットアップする" @@ -7281,27 +7282,27 @@ msgstr "" "REAを使用して、DownUnderCTFのマスクされた正方形のフラグチェッカーを解決します。 " "チェック機能を見つけ、マスクを抽出し、復元されたフラグを元のプログラムと比較します。" -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTFフラグチェッカーのケーススタディ" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "CTFの例をコピーするプロンプト" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTFマスク方程式;小さな画面で水平にスクロール" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7311,42 +7312,42 @@ msgstr "" "第七のマスクは、21個のセルをスキップし、位置21を選択し、次に14をスキップします。 そのセルだけが合計に貢献します。 " "必要な文字コードは55で、文字が7であることを意味します。" -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "CTFチェックに従ってください" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "CTFアセンブリのコピー" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "読み取り可能なCTFチェックのコピー" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "CTFソルバーの抜粋をコピー" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "回収フラグのコピー" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "CTFソルバーコマンドのコピー" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -7355,39 +7356,39 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "ケーススタディ•DX-Ball1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, 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:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" " agent inspect the original, one function at a time." msgstr "目標は、1996年のWindowsゲームの保守可能なCバージョンです。 REAは、エージェントが元の機能を一度に検査するのに役立ちます。" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386*C·REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7398,14 +7399,14 @@ msgstr "" "実行可能ファイルからチェックされたC.REAまでの一つの関数は、命令、呼び出し元、およびデータ読み取りを提供します。 " "{ph0}オープンフィギュア{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "このケーススタディでは" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7413,7 +7414,7 @@ msgstr "{ph0}プロジェクト{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7421,7 +7422,7 @@ msgstr "{ph0}サウンドパン{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7429,23 +7430,23 @@ msgstr "{ph0}結果の確認{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "維持されたC関数" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "元のコードとの比較" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "コンパイルされたバイトに一致する関数" @@ -7456,7 +7457,7 @@ msgstr "コンパイルされたバイトに一致する関数" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7464,12 +7465,12 @@ msgid "" "coverage{ph3}" msgstr "プロジェクトチェックポイント:2026年10月7日。 {ph0}進捗台帳{ph1} · {ph2}テストカバレッジ{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "これまでのプロジェクト" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7482,12 +7483,12 @@ msgstr "" "現在のビルドには、検査ユーティリティと分析ライブラリが用意されています。 " "プレイ可能なゲームの作業は、ボールとパドルの物理学、パワーアップハンドリングとWindowsの統合を続けています。" -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "左/右の音の位置の計算を見つける" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7504,17 +7505,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "コピー" @@ -7525,7 +7526,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7535,7 +7536,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用して、DX-Ballがステレオサウンドの位置を計算する方法を見つけます。 " "計算を説明し、コードを表示します。{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7545,7 +7546,7 @@ msgstr "" "ローカルの実行可能ファイルを使用して、コーディングエージェントのプロンプトの例を示します。 " "以下の調査は、REAクエリと答えの背後にある証拠を示しています。" -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7558,7 +7559,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7570,30 +7571,30 @@ msgstr "" "の最初の関数の結果 {ph0} 擬似コード宣言が含まれています {ph1} と呼び出し {ph2}. " "その命令ビューは、スタック入力と浮動小数点演算を示しました。 その不一致は、エージェントに調査を続ける具体的な理由を与えました。" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "最初の逆コンパイラビュー" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 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:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "REAを通じて答えた三つの質問" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "不足している入力を回復する" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7602,14 +7603,14 @@ msgid "" msgstr "" "関数の結果には、擬似コードと呼び出し元と一緒に命令が含まれます。 ここに, {ph0} 逆コンパイラビューから欠落している整数入力を公開します。" -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "入力を理解するために発信者に従ってください" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7619,24 +7620,24 @@ msgstr "" "REAは、最初の結果でこの呼び出し元を識別しました。 その前の指示はスケールします {ph0} 30で、20を追加すると、レンガの画面座標が得られます," " {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "メモリアドレスの背後にある値を読み取る" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " "scale. The agent now has the values needed for the C expression." msgstr "返されるバイトは、2つの算術定数と初期パンスケールを確立します。 エージェントは、C式に必要な値を持つようになりました。" -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "REAの調査結果からCへ" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -7645,7 +7646,7 @@ msgstr "以下の5つの手順に従ってください。 各選択は、元の #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -7653,7 +7654,7 @@ msgstr "{ph0}01{ph1} 入力" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -7661,7 +7662,7 @@ msgstr "{ph0}02{ph1} 乗算" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -7669,7 +7670,7 @@ msgstr "{ph0}03{ph1} 減算" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -7677,18 +7678,18 @@ msgstr "{ph0}04{ph1} スケール" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "オリジナルx86*抜粋" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "再構築されたC" @@ -7698,7 +7699,7 @@ msgstr "再構築されたC" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7716,7 +7717,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7732,7 +7733,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7749,7 +7750,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7765,7 +7766,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7776,7 +7777,7 @@ msgstr "" "{ph0}05*整数を返します。{ph1} での呼び出し {ph2} リーチ {ph3}、REAの呼び出し先の結果で識別されます。 " "Cは結果を次のようにキャストします {ph4};original-x86比較は戻り値をチェックします。" -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -7786,23 +7787,23 @@ msgstr "" "アセンブリの抜粋では、入力命令、算術命令、および戻り命令が選択されます。 " "以下の完全なリストには、介入する店舗と機能のセットアップとクリーンアップも含まれています。" -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "完全なアセンブリおよび支持の証拠" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA結果·0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "発信者が供給するもの" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7810,54 +7811,54 @@ msgid "" "then pushes it before the call:" msgstr "でのブリックヒット機能 {ph0} タイル座標を30でスケーリングし、20を加算してから、呼び出しの前にプッシュします:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "データが読み取るものが確立するもの" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "住所" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "値" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "のために使用される" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "最初の乗算" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "引き算" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} 最初は" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "保存されたパンスケール" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -7871,7 +7872,7 @@ msgstr "ハッシュピン付きDX-Ball1.07ターゲット用にREA4.1.0で記 #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7879,24 +7880,24 @@ msgid "" "references{ph3}" msgstr "{ph0}維持されたソース{ph1} · {ph2}調査ノートおよび証拠の参照{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "復元された機能を確認する" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " "original, and its compiled bytes match the executable." msgstr "復元された関数は、戻り値が元のものと一致し、コンパイルされたバイトが実行可能ファイルと一致するという2つのチェックを渡します。" -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205件" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -7905,12 +7906,12 @@ msgid "" msgstr "" "テストでは、元のx86関数を実行し、その戻り値を維持されたCと比較します。0、0.5、1、20、-1の5つのパンスケールで、0から640までのすべての整数位置をカバーします。" -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63一致するバイト" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -7920,7 +7921,7 @@ msgstr "" "C関数は、ピン留めされたVC4.0ツールチェーンでコンパイルされます。 " "コンパイラの再生は、レビューされた再配置を適用し、参照された定数を確認した後、完全な関数と一致します。" -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -7934,18 +7935,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "調査を続ける" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -7954,7 +7955,7 @@ msgid "" msgstr "" "パーティクルの更新、爆発キュー、ボーナスの生成にも同じアプローチが使用されています。関連する関数を検査し、それらの状態と依存関係を回復し、実装を元のものと比較します。" -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -7962,7 +7963,7 @@ msgid "" msgstr "" "サウンドパン機能を自分で検査するには、DX-Ballプロジェクトのセットアップ手順に従って、一致する元のターゲットを指定します。 次に実行します:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "DX-Ballチェックアウトで" @@ -7971,7 +7972,7 @@ msgstr "DX-Ballチェックアウトで" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7983,7 +7984,7 @@ msgstr "{ph0} DX-Ballリポジトリ{ph1}{ph2}現在のソース、進行状況 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7997,7 +7998,7 @@ msgstr "{ph0} REA分析ワークフロー{ph1}{ph2}計算に従ってから、 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8018,13 +8019,13 @@ msgid "" msgstr "" "バイナリ解析からDX-Ball再構成をREAまで、維持されたC、元の-x86テスト、およびコンパイルされた関数バイトのマッチングに従ってください。" -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 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:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8037,87 +8038,87 @@ msgstr "" "命令はxをロードし、1.5625を乗算し、500.0を減算し、pan_scaleを適用して整数を返します。 " "維持されているCは、元のx86に対して3,205ケースで独立してチェックされ、VC4.0コンパイラによって63バイトに一致します。" -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball再構築ケーススタディ" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "プロンプトの例をコピーする" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "左/右の音の位置の計算に従ってください" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "元のアセンブリの抜粋をコピーする" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "コピー音-パン機能" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "完全な音パンアセンブリをコピーします。" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Copy DX-Ball解析コマンド" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}ホーム{ph1} /ショーケース" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REAケーススタディ." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 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:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "アンドロイド*APK分析" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "認証者がログインコードを生成する方法" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8127,22 +8128,22 @@ msgstr "" "リリースされたAPKでAegisの6桁のコード計算を見つけます。 " "REAを使用して生成メソッドをトレースし、デモクロックを移動して、コードが30秒ごとに変更される理由を確認します。" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Androidのケーススタディを読む" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF•マシンコードプログラムの分析" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "CTFフラグチェッカーを解決する" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8152,22 +8153,22 @@ msgstr "" "REAで簡単なダウンアンダーの挑戦を点検します。 " "そのチェック機能を見つけ、マスクと合計を方程式に変換してから、元のプログラムで解決されたフラグを確認します。" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "CTFのケーススタディを読む" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "ネイティブ-リコンストラクション" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballの左/右の音の位置の計算" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8177,22 +8178,22 @@ msgstr "" "1996年のWindowsゲームから左/右の音の位置の計算を回復します。 " "REAの命令、呼び出し元の参照、数値定数は小さなC関数につながり、元の動作と63のコンパイルされたすべてのバイトに対してチェックされます。" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ballのケーススタディを読む" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron•機能トレース" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "NotionがテキストとHTMLをどのようにコピーするか" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8202,22 +8203,22 @@ msgstr "" "Notionのパッケージ化されたJavaScriptを介してページに面したAPIをトレースします。 " "そのIPCラッパーに従ってシステムクリップボードに移動し、小さなHTMLマーカーが豊富なブロックデータをコピーに接続する方法を確認します。" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Notionのケーススタディを読む" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS*再構成" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "どのようにTH04は弾丸のリングを目指していますか" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8227,17 +8228,17 @@ msgstr "" "REAを使用して元の16ビット角度ヘルパーを検査します。 " "その乗算、除算、座標演算を読み取り可能なC++に一致させ、プレイヤーに向けたリングをどのように生成するかを確認します。" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "TH04のケーススタディを読む" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "ステップバイステップガイド" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8246,7 +8247,7 @@ msgstr "" "ガイドは、ネイティブ計算、Electronエクスポート、およびブラウザ要求を順を追って説明します。 " "それぞれがプロンプトと具体的なターゲットで始まります。" -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "ガイドを読む" @@ -8265,12 +8266,12 @@ msgstr "" "コード、数字、デモを通じてREA調査に従ってください:Android認証器、DX-" "Ball、Notion、TH04、およびDownUnderCTFフラグチェッカー。" -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -8279,25 +8280,25 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "ケーススタディ·Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8305,12 +8306,12 @@ msgid "" msgstr "" "NotionのページAPIから、プリロードとメインプロセスを介してElectronのクリップボードライターにクリップボード呼び出しをトレースします。" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Notionのデスクトップパッケージ内のブリッジ" @@ -8322,7 +8323,7 @@ msgstr "Notionのデスクトップパッケージ内のブリッジ" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8338,7 +8339,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8354,7 +8355,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8370,7 +8371,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8381,13 +8382,13 @@ msgstr "" "Electronは、指定されたテキストとHTMLを書き込みます。{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8396,14 +8397,14 @@ msgstr "" "パッケージ化されたコードは、プリロードプロセスとメインプロセスで同じチャネルを使用します。 " "ラッパーを解決すると、これらの名前の背後にあるElectron呼び出しが明らかになります。" -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "このケーススタディでは" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8411,7 +8412,7 @@ msgstr "{ph0}クリップボードブリッジに従ってください{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8419,19 +8420,19 @@ msgstr "{ph0}ブロックの構造を維持する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "コピー操作はどこに行きますか?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8450,17 +8451,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "コピー" @@ -8471,7 +8472,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8481,19 +8482,19 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用して、NotionがテキストとHTMLをシステムクリップボードにコピーする方法を追跡します。 " "各ステップでコードを表示します。{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REAは、読み取りを開始する場所を検索します" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8503,13 +8504,13 @@ msgstr "" "REAを使用してタブプリロードを分析すると、ページに公開されているAPIとIPC要求を送信する呼び出しが検索されます。 " "どちらの調査結果も、縮小されたバンドルのソース範囲が付属しています:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA調査結果→二つの場所を開く" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8522,7 +8523,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8534,25 +8535,25 @@ msgstr "" "エージェントはこれらの場所を開き、組み立てられたAPIでclipboardメンバーを見つけて、次のように {ph0}. そのコールサイトの供給 " "{ph1}. この名前は、エージェントにメインバンドルで探すための正確な何かを与えます。 以下の4つの抜粋は、それが接続するルートを示しています。" -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "コードの4つの短い部分" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 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:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "ページに公開されているAPIから開始します" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8560,13 +8561,13 @@ msgid "" "how the request leaves the page's process." msgstr "このメンバーは、チャネル名を指定します。 の実装 {ph0} リクエストがページのプロセスからどのように離れるかを示します。" -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "プリロードのラッパーを解決する" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8575,14 +8576,14 @@ msgid "" msgstr "" "返された関数は、Electronの要求と応答IPCを介して引数を転送します。 私たちは今、探すことができます {ph0} メインプロセス側。" -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "受信機の登録方法を確認する" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8590,12 +8591,12 @@ msgid "" "receiver for that channel." msgstr "メインプロセスは別のラッパーを使用します。 その {ph0} メソッドを登録します。 {ph1} そのチャンネルの受信機。" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "書き込みとその送信者チェックを見つけます" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -8605,13 +8606,13 @@ msgstr "" "これが目的地です。 送信者を確認した後、ハンドラーは提供されたデータをElectronのクリップボードAPIに渡します。 " "チャネルと2つの解決されたラッパーは、公開されたメソッドをこの呼び出しに接続します。" -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "コピーされたブロックはどのようにその構造を保持しますか?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8621,81 +8622,81 @@ msgstr "" "Notionのwebエディタは、テキストとHTMLを介して送信します {ph0}. " "ブロックデータをローカルに保持し、コピーされたHTMLにIDを入れて接続します。" -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "保存されたブロックデータへのHTMLリンク" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "HTML IDを読み取る" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "同じローカルIDを検索する" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Notionブロックデータの復元" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " "when IDs match; a stale entry returns only text and HTML." msgstr "例示的なテキストとID。 記録されたモジュールテストでは、Idが一致するとブロックデータが復元されます。" -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." " Matching IDs restore the block data." msgstr "貼り付け時に、NotionはHTML IDを探し、保存されたコピーと照合します。 一致するIdは、ブロックデータを復元します。" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "2026年7月13日にキャッシュされたwebアセットから記録されたクリップボード形式。" -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "より多くの例とソース" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "別の例:Markdownテーブル" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 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:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "NotionのMarkdownパーサーを介したテーブル" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 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:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "別のパス:オフラインSQLite接続" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8708,7 +8709,7 @@ msgstr "" "メインプロセスはメッセージチャネルを作成し、1つのポートをレンダラーに、もう1つのポートをSQLiteユーティリティプロセスに提供します。 " "後続のステートメントのバッチと結果は、そのポート上を移動します。" -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -8716,7 +8717,7 @@ msgid "" msgstr "" "このハンドオフに続いて、データベース作業がどこで実行されるか、および最初のIPC要求のみをトレースすると後の会話が失敗する理由を説明します。" -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "出典と抜粋の読み方" @@ -8724,7 +8725,7 @@ msgstr "出典と抜粋の読み方" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8741,7 +8742,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8755,7 +8756,7 @@ msgstr "" "{ph1}, {ph2} と {ph3}. これらのアセットには独自のバージョンがあります。 " "保存されたプローブは、抽出されたモジュールと小さなハーネスを実行しました。" -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -8767,7 +8768,7 @@ msgstr "" "これは、APIを検索し、操作を呼び出します。 クリップボードメンバーと一致する受信機は、パッケージ内のラッパー実装を読み取ることによって接続されます。" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8784,7 +8785,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8798,7 +8799,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8820,52 +8821,52 @@ msgid "" msgstr "" "短いコードの抜粋とその豊富なクリップボード形式を見て、Electronのプリロード、IPCラッパーとメインプロセスを通じてNotionのクリップボードAPIに従ってください。" -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electronケーススタディ" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Notion分析プロンプトのコピー" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "コピー Notionプリロード抜粋" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "コピー Notion呼び出しラッパーの抜粋" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Notionハンドラーラッパーの抜粋をコピーする" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "コピー Notionクリップボードレシーバー抜粋" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "貼り付け時に豊富なクリップボードデータを復元する" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "ページ上部へ" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -8874,42 +8875,42 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "ケーススタディ*東方4:蓮の国物語" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " "the original DOS function, then follow its instructions into readable C++." msgstr "弾丸のリングは、短い角度の計算で始まります。 REAを使用して元のDOS関数を検査し、その指示に従って読み取り可能なC++に従います。" -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "TH04再構成を見る" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "元の指示からチェックされたソースへ" @@ -8920,7 +8921,7 @@ msgstr "元の指示からチェックされたソースへ" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8936,7 +8937,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8953,7 +8954,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8967,7 +8968,7 @@ msgstr "{ph0}03*C++を読む{ph1}{ph2}スペース→狙い→回転{ph3}{ph4} #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8977,21 +8978,21 @@ msgid "" msgstr "" "{ph0}04*ソースを確認する{ph1}{ph2}一致するバイト数2,139件{ph3}{ph4}記録されたコンパイラチェックは、このヘルパーを含む箇条書き生成コードをカバーします。{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 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:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "このケーススタディでは" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -8999,7 +9000,7 @@ msgstr "{ph0}弾丸のリング{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9007,7 +9008,7 @@ msgstr "{ph0}REAが返すもの{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9015,7 +9016,7 @@ msgstr "{ph0}C++へのアセンブリ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9023,18 +9024,18 @@ msgstr "{ph0}ソースの確認{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}完全なプロジェクト{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "リングがプレーヤーをどのように狙うか" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9052,16 +9053,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "コピー" @@ -9072,7 +9073,7 @@ msgstr "コピー" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9082,7 +9083,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REAを使用して、TH04が弾丸のリングを作成し、プレイヤーにそれを向ける方法を見つけます。 " "計算を説明し、コードを表示します。{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9090,7 +9091,7 @@ msgid "" msgstr "元の実行可能ファイルと再構築チェックアウトがローカルで利用可能なプロンプトの例。" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9103,7 +9104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9111,12 +9112,12 @@ msgid "" "40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "カウント16、プレイヤーの方向40、およびテンプレートの回転0のための回収された角度の数学の図。 {ph0}オープンフィギュア{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "回収されたソース内の発射テンプレート" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "エリーのリングアタック·ソース抜粋" @@ -9125,7 +9126,7 @@ msgstr "エリーのリングアタック·ソース抜粋" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9133,13 +9134,13 @@ msgid "" "{ph0}Read the attack's source{ph1}." msgstr "これらの行は、難易度とパフォーマンスチューニングの前にパターンを選択します。 {ph0}攻撃のソースを読む{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REAが返すもの" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9150,19 +9151,19 @@ msgstr "" "私達は点検します {ph0}、各弾丸の速度と角度を設定する関数。 REAは、その命令、擬似コード、および参照を返します。 " "その結果の3つの部分がパターンを説明しています。" -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "コードを読む前にDOSイメージを確認してください" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 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:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "リングの乗算と除算を読む" @@ -9170,7 +9171,7 @@ msgstr "リングの乗算と除算を読む" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9181,12 +9182,12 @@ msgstr "" "{ph0} 箇条書きのインデックスを保持します。 シフトはそれに256を乗算し、除算はから読み取られたカウントを使用します {ph1}. " "そのフィールドに保持されているソース名 {ph2}. 完全なシーケンスが以下に表示されます。" -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "パターンがプレイヤーに向かって回転する場所を見つける" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9197,12 +9198,12 @@ msgstr "" "命令オペランドは、2つの座標差と方向ヘルパーを公開します。 その戻り値は相対的なリング角度に追加されます。 " "REAは、エージェントがそれらの背後にある元の操作をチェックすることができます。" -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "アセンブリから読み取り可能なC++へ" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9212,7 +9213,7 @@ msgstr "元の指示と角度の計算に一致するステップを選択しま #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9220,7 +9221,7 @@ msgstr "{ph0}01{ph1} インデックス" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9228,7 +9229,7 @@ msgstr "{ph0}02{ph1} スペース" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9236,7 +9237,7 @@ msgstr "{ph0}03{ph1} Aim" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9244,18 +9245,18 @@ msgstr "{ph0}04{ph1} 回転" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} 店舗" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA•オリジナルの16ビット命令" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "-----------" @@ -9263,7 +9264,7 @@ msgstr "-----------" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9277,7 +9278,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9291,7 +9292,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9305,7 +9306,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9319,7 +9320,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9331,7 +9332,7 @@ msgstr "" "{ph0}05*最終的な角度を1バイトに保ちます。{ph1} 店は書いています {ph2} spawn-angleフィールドに移動します。 " "値は、符号なしバイトのキャストと同じように、255の後に折り返します。 周囲のソースもこの角度と速度を速度に変換します。" -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9341,7 +9342,7 @@ msgstr "" "アセンブリは目的とされたリング枝、目的の計算および最終的な店を選ぶ。 上記のC++は読みやすい要約です。 " "以下のコンパイラチェックは、リンクされたプロジェクトの保守されたソースに適用されます。" -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "リングを読み、ソースを目指してください。" @@ -9358,7 +9359,7 @@ msgstr "リングを読み、ソースを目指してください。" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9366,12 +9367,12 @@ msgid "" "representation{ph5}" msgstr "{ph0}リングマクロ{ph1} · {ph2}目的および速度の源{ph3} · {ph4}角度表現{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "保守されたソースの確認" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -9380,24 +9381,24 @@ msgstr "" "TH04プロジェクトの記録されたチェックは、このヘルパーを含む箇条書き生成コードを、固定されたTurbo " "C++4.0Jツールチェーンでコンパイルします。" -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "一致するバイト数2,139件" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "コンパイルされた箇条書き生成コードは、元の実行可能ファイルの2,139バイトのセクションに一致します。" -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "二つのクリーンビルド" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9408,65 +9409,65 @@ msgstr "2つの別々のビルドでは、同じ一致するバイトが生成 #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "2026年10月3日に録音されました。 {ph0}コンパイラチェックを読む{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "ターゲットidと分析範囲" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "元のターゲット" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "ヘルパーエントリー" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} REAのロードされたイメージで" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "元のファイルオフセット" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}、によって返される {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "記録されたコード検査" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA4.1.0•2026年10月7日" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9476,7 +9477,7 @@ msgstr "" "彼らはまた、そのマップの貢献と重複した再配置を比較します。" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9489,7 +9490,7 @@ msgstr "" "関数の結果は、517バイトのスパンにわたって2つの範囲で503のボディバイトを報告します。上記の選択された命令は、それらの報告された範囲にあります。" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9502,7 +9503,7 @@ msgstr "" "ソース名とコンパイラチェックはTH04チェックポイントから来ています {ph0}. このページでは、同じ元のターゲットの新しいREA検査を追加します。 " "提供されたゲームのアイデンティティは、リポジトリマニフェストによって固定されており、独立した原始的なダンプの出所はまだ開いています。" -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9512,12 +9513,12 @@ msgstr "" "図は角度の計算を示しています。 " "完全なゲームコントロール、タイミング、およびPC-98ハードウェアの動作には、再構築プロジェクトで別々のランタイムチェックがあります。" -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "フルTH04の再構成" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9529,7 +9530,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9541,7 +9542,7 @@ msgstr "{ph0}TH04リポジトリを探索する{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9555,7 +9556,7 @@ msgstr "{ph0}箇条書き生成ソース{ph1}{ph2}完全なヘルパー、他の #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9570,7 +9571,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9593,28 +9594,28 @@ msgstr "" "TH04のREAの元の16ビットDOSコードを点検して下さい。 " "アセンブリと回収されたC++に従って、弾丸のリングがどのように間隔をあけてプレイヤーに向けられているかを確認します。" -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04弾丸パターンのケーススタディ" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "コピー TH04プロンプトの例" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 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:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -9626,27 +9627,27 @@ msgstr "" "40のプレイヤーの方向を追加すると、すべての方向が同じ量だけ回転します。強調表示された最初の箇条書きは、プレイヤーに向かって指します。 " "どちらも16角度単位、つまり22.5度の間隔を保ちます。" -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "コピー TH04発射テンプレート" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "TH04の目的としたリング計算に従ってください" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "コピー TH04アセンブリの抜粋" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "コピー読み取り可能な目的のリング計算" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "ページ上部へ" @@ -10114,597 +10115,597 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "事例" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "ブログ" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "はじめる" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "ガイド" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "ソースコード" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT ライセンス" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "コミュニティに参加" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "X でフォロー" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA*選択したスクリプトソース" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "ソースコード" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "期待されるフォーマッタ出力" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "説明書" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "発信者" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "定数" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C関数" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "ボタン" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "プリロードAPI" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSVファイル" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "あなたのかちりと言う音" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "キャプチャリクエスト" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "エクスポートスクリプト" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA結果·概要。ipc抜粋" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA命令の抜粋·0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA発信者の抜粋*0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REAバイトの結果·リトルエンディアンの倍精度として解釈されます" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "回収されたC*抜粋" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "ショーケース→" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "検査されたスクリプトから選択された設定" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "%ハンドラーの読み取り可能な要約" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA*選択されたオリジナルの指示" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "オペレーター Id·Microsoftのソース" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "エージェント→REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA→エージェント*選択された結果" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA→エージェント*メソッドと呼び出し元" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA*選択された逆コンパイルされたJava" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "読みやすい要約*エージェントの解釈" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA*generateOTP、完全なボディ" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "ダウンロードAegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Android分析プロバイダーをダウンロード" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "エージェント→REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA→エージェント*選択された結果" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA→エージェント*選択された指示" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "エージェント→REA*read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA→エージェント·セブンスエントリ" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "オリジナルの実行可能ファイル·SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "オリジナルの挑戦をダウンロード" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "ソルバーをダウンロード" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA結果*擬似コードの抜粋" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "エージェント→REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA→エージェント*命令抜粋" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA→エージェント*発信者の抜粋" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "エージェント→REA·2 {ph0} ご要望-ご要望" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REAバイト結果*ダブルとしてデコード" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "あなた自身のターゲットから始めて下さい" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "コードの生成" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "回復されたルール" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "調節可能な時計" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "バイナリ" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "コードの確認" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "方程式" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "正解!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "実行可能ファイル" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA調査結果" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "回収されたC" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "検証" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "パッケージ化されたアプリ" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "公開されたAPI" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPCラッパー" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "クリップボード" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "元のDOSコード" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA命令" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "角度計算" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "弾丸リング" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "公開されたページAPI" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "レンダラIPCコール" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "システムのクリップボードに送信されます" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Notionによってローカルに保存されます" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "マークダウン入力" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "構造化パーサー出力*抜粋" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "独自のアプリを分析する" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "エージェント→REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA→エージェント·選択されたフィールド" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "エージェント→REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA→エージェント*命令抜粋" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "同じ機能結果-目安抜粋" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "対応c++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "リングマクロ·TH04ブランチ、抜粋" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "角度と速度·ソース抜粋" @@ -10736,7 +10737,7 @@ msgstr "翻訳が更新されています。 今のところ英語でこのペ #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10753,7 +10754,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10773,7 +10774,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10793,7 +10794,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -10811,7 +10812,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10823,14 +10824,14 @@ msgstr "" "をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "復興 · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10839,7 +10840,7 @@ msgid "" msgstr "と {ph0} と npm 利用可能で、セットアップを実行し、コーディングエージェントを選択し、提案された変更を確認します。" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -10848,7 +10849,7 @@ msgstr "提供された例*{ph0}とnpm*コーディングエージェント" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10866,7 +10867,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -10880,7 +10881,7 @@ msgstr "{ph0}ページ · {ph1}{ph2}{ph3}ノートのエクスポート{ph4}{ph5 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10897,7 +10898,7 @@ msgstr "{ph0}橋 · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}名前付きメッセージを #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10908,7 +10909,7 @@ msgstr "" "そして、ファイルを書き込みます。{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -10923,7 +10924,7 @@ msgstr "{ph0} *8-12行目" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10935,7 +10936,7 @@ msgstr "" "{ph5} それを確認する。 予測と実際の出力を表示します。{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10945,15 +10946,18 @@ msgstr "タイトルは引用符で囲まれた1つのフィールドにとど #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." -msgstr "あなたが必要になります {ph0} 22 (22.23.4+), 24 (24.22.1+) または26+ (>=26.12.1)。 npmはと来ます {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"あなたが必要になります {ph0} 22 (22.23.4+), 24 (24.22.1+) または26+ (>=26.12.1)。 npmはと来ます" +" {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -10961,19 +10965,19 @@ msgstr "持っていない {ph0}、またはわからない?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" "もし {ph0} 印刷v22.23.4+、v24.22.1+またはv26.12.1+、準備が整いました。 " "古いバージョンまたは\"認識されません\"/\"コマンドが見つかりません\"を印刷する場合は、インストールします {ph1} 24LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -10987,7 +10991,7 @@ msgstr "{ph0} ·ソースの抜粋の例" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -10996,9 +11000,9 @@ msgid "" msgstr "{ph0}例を開きます{ph1} · {ph2}ダウンロード {ph3}{ph4} · {ph5}ダウンロード {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11006,7 +11010,7 @@ msgstr "{ph0} ·ソースの例" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11020,7 +11024,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11036,7 +11040,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11047,7 +11051,7 @@ msgstr "" "220を与えますか?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11061,7 +11065,7 @@ msgstr "REA·ロード {ph0} *選択した行" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11079,7 +11083,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11091,28 +11095,28 @@ msgstr "" "秒ごとに変わる理由を説明し、時刻を変更できる小さなデモを作ってください。{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0}-APIメンバー" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0}*IPCヘルパー" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "メイン/{ph0} *ハンドラーヘルパー" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11131,7 +11135,7 @@ msgstr "ダークモードに切り替える" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11145,30 +11149,30 @@ msgstr "" "Evidence を取得できます。また、Everywhere の MCP サーバーを接続して、エージェントと一緒に記録済みの通信を調べることもできます。" #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "モデルの特化{ph0}エッセイ" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "リバースエンジニアリングに、より大きなモデルは必要か?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " "and learning from compiler feedback." msgstr "Touhou の再構築を通じて考える、汎用モデル、特化モデル、そしてコンパイラのフィードバックから学ぶ方法。" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "N0zoM1z0 著 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" @@ -11177,37 +11181,37 @@ msgstr "コンテンツにスキップ" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}ホーム{ph1} / {ph2}ブログ{ph3} / モデルとリバース エンジニアリング" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "エッセイ" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "リバースエンジニアリングに、より大きなモデルは必要か?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "N0zoM1z0 著 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "要点" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11218,7 +11222,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11230,7 +11234,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11241,7 +11245,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11252,7 +11256,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11261,14 +11265,14 @@ msgid "" msgstr "" "{ph0}検証を通った再構築の成果を、時間とコストと合わせて評価する。{ph1} エージェントのワークフロー全体で測りたいのは、その結果だ。" -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "この記事の内容" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11276,7 +11280,7 @@ msgstr "{ph0}強いモデルで何が変わったか{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11284,7 +11288,7 @@ msgstr "{ph0}なぜ特化を考えるのか{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11292,7 +11296,7 @@ msgstr "{ph0}その経験はどこに蓄積すべきか?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11300,7 +11304,7 @@ msgstr "{ph0}次の有用な実験を選ぶ力を学ぶ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11308,7 +11312,7 @@ msgstr "{ph0}リバース エンジニアリングと強化学習{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11316,7 +11320,7 @@ msgstr "{ph0}検証器が間違っていたら{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11324,18 +11328,18 @@ msgstr "{ph0}実行する価値のある比較{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}どんなエージェントが必要なのか?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "強いモデルで何が変わったか" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11347,7 +11351,7 @@ msgstr "" "2026年8月から、プログラムにアクセスし、自分の作業を検証できるエージェントが、どこまでリバースエンジニアリングを進められるかを探ってきた。私の経験は主にゲーム、特に" " Touhou(東方)の再構築から得たものだ。モデルを変えるたびに、各セッションで何を復元できたかがリポジトリに残った。" -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11357,12 +11361,12 @@ msgid "" msgstr "" "その多くは完全一致を目指す再構築だ。バージョンを固定した当時のツールチェーンで、保守しているソースをコンパイルし、対象の関数を再現できるか確かめる。後のモデルが以前の行き詰まりを解消したとき、ソースの変更を見ると、何が進歩を可能にしたかがわかる。" -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "一時的な値を同時に有効にしておく必要があった" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11381,7 +11385,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11393,7 +11397,7 @@ msgstr "" "いくつかの通常のソースコード配置をテストした後、{ph0}GPT-6-Sol セッション レコード{ph1} でこの不一致が報告されました。 " "{ph2}GPT-6.1-Sol がこの問題を再度調査したとき{ph3}、これらの一時変数の存続期間に関する有用な仮説が提案されました。" -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11407,7 +11411,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11418,7 +11422,7 @@ msgid "" msgstr "" "一つの結果だけは、後の衝突判定に使う値と領域を共有していた。その値に独立した生存期間を与えると、最後の重なりも解消された。いくつかの絞り込んだ実験の後、{ph0}クリーンビルドで関数全体の一致が確認された{ph1}。" -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11428,7 +11432,7 @@ msgstr "" "発見とテストがどのように相互にサポートし合っていたのかに興味があります。一時オブジェクトの存続期間に関する仮説は、AI " "エージェントに新しい方向性を与えました。コンパイラーからのフィードバックにより、その仮説を改良して、一致するソースコードの配置を実現することができました。" -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "別の制御フロー グラフ" @@ -11437,7 +11441,7 @@ msgstr "別の制御フロー グラフ" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11458,7 +11462,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11474,7 +11478,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11486,7 +11490,7 @@ msgstr "" "{ph0}表現を変えたことで、より有望な探索空間が開けた。{ph1} " "この二つの例から、汎用モデルの能力は重要だと感じる。エージェントは局所的な変更を長く試した末に、周囲の処理を表すもっとよい方法を見つけることがある。" -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -11497,7 +11501,7 @@ msgid "" msgstr "" "ただし、後のセッションは、それまでのソースと失敗の記録を引き継いでいる。その蓄積も有利に働いた。履歴から発見と検証の過程は調べられるが、モデルの効果と引き継いだ経験の効果を分けるには、条件をそろえた比較が必要だ。" -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -11510,12 +11514,12 @@ msgstr "" " " "コードの配置をテストすることが含まれていました。このうちどの程度の範囲で幅広い推論能力が必要でしょうか?モデルはそのコンパイラーとコードを繰り返し操作することでどれだけ学習できるでしょうか?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "特化モデルがうまく働く可能性は?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -11527,7 +11531,7 @@ msgstr "" "Touhou には、経験の蓄積が役立つと考える具体的な理由がある。多くのゲームコードを ZUN " "一人が書いているため、繰り返し現れる書き方を最初の仮説にできる。実際、リポジトリには、似たループや補助関数の構成が別のゲームの仮説につながった例がある。" -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -11545,7 +11549,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11560,14 +11564,14 @@ msgstr "" "レイアウトは解決されませんでした。ただし、以前のバックグラウンド関数では、コンパイラの選択に影響を与える名前付けパターンが明らかになっていました。これは、{ph2}{ph3}{ph4}" " を再構築するためのより有望な仮説を示唆しました。" -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" " without adding storage. The full function then matched." msgstr "そのパターンをファイルサイズの変数に使うと、格納領域を増やさずに必要な配置が得られた。続いて関数全体が一致した。" -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -11578,7 +11582,7 @@ msgstr "" "モデルが最初に問題に遭遇したときには認識できない可能性があります。このコンパイラに特化したモデルは、そのようなケースを多数確認し、どのソース " "コードのバリエーションが最初にテストする価値があるかを学習できます。" -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -11593,7 +11597,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11608,14 +11612,14 @@ msgstr "" "ただし、パターンには適用条件を残す必要がある。TH08 は TH095 や TH09 より古い Visual C++ を使う。TH04 は DOS " "時代の別のコンパイラを使い、{ph0}プレイヤーのコードの再構築{ph1}では、書き方や実行ファイルへのリンク順序について別の仮説が必要だった。同じ作者であることは手がかりになるが、適用できるかは各対象で確かめる。その区別も特化モデルが学ぶべきことだ。" -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "その経験はどこに蓄積すべきか?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11627,7 +11631,7 @@ msgid "" msgstr "" "モデルの学習でこうしたパターンを覚えさせる前に、まずリポジトリに保存している知識を見たい。{ph0}前のエッセイ{ph1}では、リポジトリがプロジェクトの作業記憶になっていると書いた。そこにはコンパイラから学んだことと、それを裏付けるソースや失敗した実験が残っている。" -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -11641,7 +11645,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11657,7 +11661,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11670,7 +11674,7 @@ msgstr "" "{ph0}「モデルがそのコンパイラの癖を知らない」と「知っていても使えない」は別の問題だ。{ph1} " "検索で前者を解決できても、知識を有用な候補にするには能力がいる。候補が失敗すれば、その結果が次の試みに何を意味するかも判断しなければならない。関連するパターンを知るのは、出発点にすぎない。" -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -11680,12 +11684,12 @@ msgid "" msgstr "" "だから比較には、知識を適切に検索できる小さな汎用モデルも加えたい。同じ経験のライブラリを与えれば、学習が何を加えるかを調べられる。候補を作る力なのか、フィードバック後の判断なのか、それとも両方なのか。" -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "次の有用な実験を選ぶ力を学ぶ" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -11695,7 +11699,7 @@ msgid "" msgstr "" "私が最も研究したいのは、フィードバック後の判断だ。エージェントによる再構築では、モデルが説明を提案し、プログラムに照らして検証する。候補が失敗しても、可能性を絞り、次の有用な実験を考える材料になる。" -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -11705,67 +11709,67 @@ msgid "" msgstr "" "一時的な結果の例をもう一度考えてみましょう。最終的なソースには、機能した配置が示されていますが、そのソースへのルートにはさらに多くの情報が含まれています。以下の各実験は、まだ変更する必要があるものを特定するのに役立ちました。" -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "実験" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "その結果が私たちに教えてくれたこと" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "別の方法で結果をコピーしてみてください" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "コピーのコードは変わったが、関数にはまだ差分がある。" -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "戻り値を直接使用する" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "コピーは元のパターンに従いますが、一時ストレージは依然として異なります。" -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "一時的な結果を同時に有効にしておく" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " "collision checks." msgstr "これらは別々のストレージを取得しますが、1 つは、後で衝突チェックに使用される値と依然として重複します。" -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "衝突判定の値を独立させる" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "ソースからクリーンに再コンパイルすると、完全に一致していることが確認されます。" -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " "by what they taught us." msgstr "上記の攻撃関数の再構築から選択した実験を、教えられた内容ごとにグループ化しました。" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -11777,7 +11781,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11789,7 +11793,7 @@ msgstr "" "{ph0}モデルにはフィードバックの使い方を学んでほしい。{ph1} " "結果が変わらなければ、その変更を考え直す理由になる。差分が変われば、別の原因が見えてくるかもしれない。局所的な編集から情報が得られなくなったら、全体の書き方を見直したり、証拠を再確認したりできるべきだ。" -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -11799,12 +11803,12 @@ msgid "" msgstr "" "これらの選択を行うことを学ぶには自主性が必要です。場合によっては、別の編集をコンパイルするのではなく、別の呼び出し元を検査することが次のステップとして役立つ場合があります。必要な書き換えを厳密に繰り返すと、モデルに学習させたい動作の一部とともに、その選択肢が削除されてしまいます。" -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "リバースエンジニアリングが強化学習にとって興味深い理由" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -11814,7 +11818,7 @@ msgid "" msgstr "" "範囲を定めた再構築は、こうした判断を研究するための実用的な環境になる。対象とコンパイラのバージョンを固定すれば、多くのソースの実験で素早く再現可能なフィードバックを得られる。エージェントは候補をコンパイルし、差分を調べ、次の行動を選べる。" -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -11828,7 +11832,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11845,7 +11849,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11859,7 +11863,7 @@ msgstr "" " " "では、{ph0}衝突の違いにより、元のプログラムでの浮動小数点計算の処理方法が問題になりました{ph1}。エージェントが有用な補正をテストする前に、何を測定するかを決定する必要がありました。" -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -11868,12 +11872,12 @@ msgid "" msgstr "" "ここから、幅広い能力を持つモデルのもう一つの役割が見える。まず問題を検証可能にすることだ。検証方法ができて初めて、学習した探索方針がどこまで進めるかを調べられる。" -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "検証器が間違っていたら" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -11883,7 +11887,7 @@ msgstr "" "その検証を使って学習すると、検証範囲も学習環境の一部になる。私はこうした参照基準や検証器を oracle " "と呼んでいる。答えが再現可能でも、それが何を確認した答えなのかを理解する必要がある。" -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -11902,7 +11906,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11915,7 +11919,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11929,7 +11933,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11942,7 +11946,7 @@ msgstr "" "機能テストにも同様の盲点がある可能性があります。 {ph0}LLM " "デコンパイラで差分ファジングを使用した研究{ph1}では、提供されたテスト以外の動作の違いが見つかりました。したがって、合格したテストを、実行されるケースの観点から理解する必要があります。同様に、命令の一致は、検証されるバイトとデータの観点から理解する必要があります。" -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -11957,7 +11961,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11968,12 +11972,12 @@ msgstr "" "{ph0}学習するモデルの改善と、その検証器の改善は同じ研究課題だ。{ph1} " "モデルが与えられたフィードバックを上手に最適化するほど、そのフィードバックを理解することも重要になる。" -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "実行する価値のある比較" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -11986,7 +11990,7 @@ msgstr "" "モデルのベースラインを確立します。リポジトリの知識をより小さなモデルに追加すると、取得によってどのような変化が生じるのかがわかります。そこから、教師付き特殊化と" " RL でトレーニングされたバージョンを使用して、トレーニングによって追加される内容を検証できるようになります。" -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -11996,7 +12000,7 @@ msgid "" msgstr "" "これらの比較を有益なものにするために、各モデルは同じターゲットの証拠とツールを受け取ります。トレーニング固有の比較の場合、基本モデルと利用可能な知識も固定したままにします。試行を繰り返すことは、信頼できる検索戦略と偶然成功した候補ソリューションを区別するのに役立ちます。" -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12007,7 +12011,7 @@ msgid "" msgstr "" "二つの出発点も分けたい。命令から関数を再構築する場合と、保守しているソースの最後の差分を詰める場合だ。特化モデルが後者に優れていても、そこまでの作業の多くは汎用モデルが担っているかもしれない。別々に測れば、その分担が見える。" -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12019,7 +12023,7 @@ msgstr "" " つのゲームを除外しても、トレーニング セットにほぼ同じ機能が残る可能性があります。代わりに、関連するソース " "コードのグループ全体を除外し、検証済みの回答をトレーニング データと検索ライブラリの両方から除外します。" -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12030,7 +12034,7 @@ msgid "" msgstr "" "測る成果は、関数全体が独立した検証を通って一致したことだ。候補数やコンパイル回数の予算をそろえれば探索の質を比べられる。コンパイルを含む総時間と総費用を測れば、それが効率的なワークフローにつながるかがわかる。学習費用は別に計上したい。" -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12044,7 +12048,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12060,7 +12064,7 @@ msgstr "" "受け入れられた結果をカウントすることで、中間の進捗状況も把握できます。 1 つの TH09 " "{ph0}再生保存候補{ph1}は、コンパイルされた関数が予想どおりのサイズを持っていたため有望に見えましたが、完全な比較では依然として大きな違いが見つかりました。コンパイラが命令を配置する方法を変更すると、根本的な問題が解決されずに、候補がより近くに見える可能性もあります。このような診断は次の実験を導くことができますが、私は「近づく」ことに対する報酬を完全な受け入れチェックと照らし合わせて検証します。" -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12071,12 +12075,12 @@ msgid "" msgstr "" "結果全体にどんな傾向があるかを知りたい。特化モデルが使い慣れたコンパイラで優れていても、ツールチェーンを変えた後にその強みは残るだろうか。両方が十分に知識を検索できるとき、学習はどれだけ価値を加えるのか。答えは、各モデルをどこで使うべきかを考える助けになる。" -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "どんなエージェントが必要なのか?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12087,7 +12091,7 @@ msgid "" msgstr "" "モデルが段階ごとに違う強みを持つなら、汎用エージェントが特化モデルを呼び出せる構成が役立つかもしれない。問題が慣れたコンパイラでの探索になったら、特化モデルに候補を求める。結果が納得できなくなったら、汎用エージェントが対象の証拠や測定そのものを調べ直す。" -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12095,7 +12099,7 @@ msgid "" "that made the earlier breakthroughs possible." msgstr "この構成では、特化モデルは調査の進み方に応じて選べる道具になる。エージェントには、以前の突破口を可能にした方向転換の自由が残る。" -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12105,7 +12109,7 @@ msgid "" msgstr "" "これは、前回のエッセイで説明した産業の変化から自然に生じます。さらに多くの実験を実行できるようになると、作業の組織化の方法が変わります。また、どの決定には広範な判断が必要なのか、どの決定は特定の技術での繰り返しの経験によって改善されるのかを尋ねる理由も得られます。" -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12119,7 +12123,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12127,12 +12131,12 @@ msgid "" "to use that record to build the comparison and see what we learn." msgstr "{ph0}リポジトリは、質問をテストする方法を提供します。{ph1}その記録を使用して比較を構築し、何が分かるかを確認したいと思います。" -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "証拠とモデルの帰属" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -12144,7 +12148,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12167,7 +12171,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12191,7 +12195,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12215,7 +12219,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12240,7 +12244,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12251,7 +12255,7 @@ msgstr "" "{ph0}チェックと診断:{ph1} {ph2}TH08 浮動小数点定数監査{ph3}、{ph4}TH08 数値調査{ph5}、および " "{ph6}TH09 リプレイ保存再構築{ph7}。" -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -12273,22 +12277,22 @@ msgid "" " and learning to propose better hypotheses from compiler feedback." msgstr "Touhou の再構築から考える、汎用モデルと特化モデル、そしてコンパイラのフィードバックからよりよい仮説を学ぶ可能性。" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "このページでは" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "モデルとリバース エンジニアリングのエッセイ" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "厳選された復元実験" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "ページ上部へ" @@ -12297,7 +12301,7 @@ msgstr "ページ上部へ" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12307,68 +12311,68 @@ msgstr "{ph0}詳しい証拠の記録{ph1}には、比較結果と実験の背 #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}事例{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REAケーススタディ." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "アンドロイド*APK分析" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "認証者がログインコードを生成する方法" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Androidのケーススタディを読む" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron•機能トレース" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "NotionがテキストとHTMLをどのようにコピーするか" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Notionのケーススタディを読む" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "ネイティブ-リコンストラクション" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballの左/右の音の位置の計算" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ballのケーススタディを読む" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "セットアップオプション" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -12377,7 +12381,7 @@ msgstr "コンピューターとコーディングエージェントを準備し #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12387,7 +12391,7 @@ msgstr "初めての方は、以下の4つの手順を進めてください。 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -12395,7 +12399,7 @@ msgstr "{ph0}1. コンピューターを準備する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -12403,7 +12407,7 @@ msgstr "{ph0}2. エージェントを選ぶ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -12411,7 +12415,7 @@ msgstr "{ph0}3. REAを接続する{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -12419,18 +12423,18 @@ msgstr "{ph0}4. 調査を試す{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}その他の対象と分析プロバイダー{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. コンピューターを準備する" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -12438,7 +12442,7 @@ msgid "" msgstr "" "調べたいファイルが保存されているコンピューターを使ってください。ローカルで動くコーディングエージェントは、そのファイルを読み、ツールを実行できます。" -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -12447,7 +12451,7 @@ msgstr "コマンドはターミナルに入力します。「あなたのコー #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -12458,7 +12462,7 @@ msgstr "wingetが使えない場合は、{ph0}Node.jsのインストーラーを #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12467,29 +12471,29 @@ msgid "" msgstr "" "後で{ph2}を実行した際に、PowerShellが{ph0}「このシステムではスクリプトの実行が無効になっています」{ph1}と表示したら、代わりに{ph3}を使ってください。npmには{ph4}を使います。" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "エージェント用の作業フォルダーを作る" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "ターミナルで練習用のフォルダーを作り、そのフォルダーに移動します。" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " "folder, open it instead." msgstr "次の手順でも使うので、このターミナルは開いたままにしてください。すでに作業フォルダーがある場合は、そちらを開いてください。" -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. コーディングエージェントを選ぶ" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -12497,12 +12501,12 @@ msgid "" msgstr "" "エージェントは、あなたが会話するAIです。REAは、そのAIが使う調査ツールを提供します。以下からクライアントを1つ選び、初めて使う場合は説明を開いてください。" -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · ChatGPTアカウントで使う" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -12513,39 +12517,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codexのインストールとログイン{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor、Windsurf、VS Code · エディターで使う" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "お使いのOS用のエディターをインストールして、ログインします。" -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "手順1で作ったrea-workフォルダーを開きます。" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · Claudeアカウントで使う" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "お使いのOSに対応するコマンドでインストールします。" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12557,13 +12561,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Codeのインストールとアカウントの選択肢{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · デスクトップのチャットで使う" @@ -12573,7 +12577,7 @@ msgstr "Claude Desktop · デスクトップのチャットで使う" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12583,7 +12587,7 @@ msgstr "{ph0}Claude Desktopをダウンロード{ph1} · {ph2}Claude Desktopの #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12593,19 +12597,19 @@ msgstr "作業フォルダーで{ph0}を実行します。チャットで{ph1} #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCodeのインストールとモデル設定{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "対応クライアントとセットアップIDの一覧" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12613,12 +12617,12 @@ msgid "" " choosing a client explicitly." msgstr "npmの6.4.0リリースは、以下のクライアントに対応しています。クライアントを指定する場合は、{ph0}にこのIDを渡してください。" -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "クライアント" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "セットアップID" @@ -12628,7 +12632,7 @@ msgstr "セットアップID" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12646,7 +12650,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12654,13 +12658,13 @@ msgid "" "availability{ph3}" msgstr "{ph0}クライアントの設定とトラブル対処{ph1} · {ph2}リリースでの提供状況{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · Botが動くコンピューターで接続する" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12673,29 +12677,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Grok Botのコネクター設定手順{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. REAを接続する" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "このプロンプトをコーディングエージェントに貼り付けてください:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "特定のクライアントに接続する場合は、そのセットアップIDを追加します。" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12705,14 +12709,14 @@ msgid "" msgstr "" "npmがパッケージのダウンロードを確認したら、{ph0}を入力してEnterを押します。REAのクライアント一覧では、矢印キーで移動し、Spaceでクライアントを選び、Enterで次に進みます。" -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " "workflow for investigating software." msgstr "MCPは、エージェントがREAを呼び出すための接続です。スキルは、ソフトウェアを調べる手順をエージェントに伝えます。" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -12721,7 +12725,7 @@ msgstr "最初の練習では、任意のHopperインストールは省略でき #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12730,19 +12734,19 @@ msgid "" msgstr "" "{ph0}を、お使いのクライアントのセットアップIDに置き換えてください。チェックが成功すると{ph1}が表示されます。その後、エージェントに次のように頼んでください。" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "REAが接続されているか確認し、使えるREAツールを教えてください。" -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. 初めての調査を試す" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12753,7 +12757,7 @@ msgstr "" "この例では、6つのファイルElectronアプリを使用しています。 {ph0}ノートのエクスポート{ph1} ボタン。 " "エージェントは、Electronをインストールまたは起動せずにコードを検査できます。" -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "あなたのコーディングエージェント" @@ -12767,7 +12771,7 @@ msgstr "あなたのコーディングエージェント" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12780,7 +12784,7 @@ msgstr "" "notesをクリックすると何が起きるかを調べてください。{ph4} " "がどこに書き込まれ、どのフィールドを含むか、関連するファイルと行を示してください。{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ファイルと行の参照に関する簡単な説明を探してください:" @@ -12789,7 +12793,7 @@ msgstr "ファイルと行の参照に関する簡単な説明を探してくだ #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12801,13 +12805,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}ガイド付きの練習で予測を確かめる →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "サンプルを自分でダウンロードする、または自分のアプリを使う" @@ -12815,14 +12819,14 @@ msgstr "サンプルを自分でダウンロードする、または自分のア #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ダウンロード例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12833,7 +12837,7 @@ msgstr "" "フォルダと同じエクスポートの質問。" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12841,71 +12845,71 @@ msgid "" "relevant files and lines." msgstr "REAで{ph0}にあるアプリを調べてください。データをどうエクスポートするかを探し、関連するファイルと行を示してください。" -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "別の種類のソフトウェアを分析する" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " "REA uses for that kind of software." msgstr "調べたい対象の項目を選んでください。分析プロバイダーとは、その種類のソフトウェアを調べるためにREAが使うローカルの分析ツールです。" -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "ネイティブ実行ファイルとライブラリー · Hopper、Ghidra、IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " "operating system; the target is the program you want to inspect." msgstr "REAを実行するコンピューターに、分析ツールを1つインストールしてください。ホストはお使いのOS、対象は調べたいプログラムです。" -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "分析プロバイダー" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "利用不可" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "対応ディストリビューション" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · 実験的対応" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "検証済みの構成" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "検証済みのヘッドレス構成" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "プロバイダーガイドを参照" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · セットアップでインストールまたは接続する" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -12914,7 +12918,7 @@ msgid "" msgstr "" "セットアップでHopperを選び、別途提示されるインストール計画を確認してください。macOSでは、Hopperを初めて開いたときにデモモードを選ぶか、ライセンスを有効化します。Linuxでは、セットアップが対応するデモと専用のディスプレイを準備します。" -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -12923,7 +12927,7 @@ msgstr "" "Linuxホスト:Ubuntu 24.04+、Fedora 41+、Nobara 44+、Arch " "Linux、CachyOS、Omarchy。Hopperは商用ソフトウェアで、デモには提供元が定めた制限があります。" -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -12936,18 +12940,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopperの設定とトラブル対処{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · 無料の分析ツールとJavaをインストールする" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -12956,7 +12960,7 @@ msgstr "" "Javaコンパイラーを含む64ビットのJDK 21以降をインストールしてください。コンピューターのアーキテクチャに合うパッケージを選びます。" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12969,7 +12973,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12983,7 +12987,7 @@ msgstr "展開したフォルダーのうち、{ph0}または{ph1}が入って #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -12991,7 +12995,7 @@ msgstr "{ph0}JDKをダウンロード{ph1} · {ph2}Ghidra 12.1.4をダウンロ #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13000,7 +13004,7 @@ msgid "" msgstr "" "Javaを確認します。最初のコマンドに表示される{ph0}のフォルダーを{ph1}に指定してください。2つ目のコマンドで、コンパイラーがインストールされているか確認します。" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13016,7 +13020,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13024,12 +13028,12 @@ msgid "" "guide{ph3}" msgstr "{ph0}Ghidraの設定とアーキテクチャ要件{ph1} · {ph2}Windows向けGhidraガイド{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · 既存のインストールを接続する" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13038,7 +13042,7 @@ msgid "" msgstr "" "IDAプロバイダーガイドに従い、接続先MCPサーバーの登録設定を用意してください。元のバイナリーを開いたGUIに接続するか、専用のデータベースを開くヘッドレススーパーバイザーを選びます。" -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13048,7 +13052,7 @@ msgstr "" "検証済みの構成には、Windowsの従来型GUIとヘッドレススーパーバイザー、およびIDA Professional 9.1を使うmacOS " "arm64のヘッドレススーパーバイザーがあります。任意のネイティブGUIブリッジには、独自のバージョンとプラットフォーム要件があります。" -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13058,13 +13062,13 @@ msgstr "プロバイダーガイドで用意したJSON登録ファイルを使 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}IDAの構成、登録例、検証済みプラットフォーム{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -13073,128 +13077,128 @@ msgstr "接続したら、元の実行ファイルのフルパスと、使う分 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}ネイティブ分析の例を進める{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Webサイト、Android、.NET、ファームウェアなど" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " "tools, supported hosts and first command." msgstr "お持ちの対象に対応するガイドを開いてください。各ガイドで、追加のツール、対応ホスト、最初のコマンドを説明しています。" -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "対象" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "準備するツール" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "ガイド" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}ガイドを開く{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Webサイト" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / パッケージ" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android端末" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Androidリソース" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEBプロジェクト" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "ファームウェア" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linuxクラッシュ" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "ロジック信号" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "プロセスの動作" @@ -13210,7 +13214,7 @@ msgstr "プロセスの動作" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13220,18 +13224,18 @@ msgstr "" "{ph0}Flutterガイド{ph1} · {ph2}パッケージとリソース{ph3} · {ph4}EVMバイトコード{ph5} · " "{ph6}すべての調査ガイド{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "ターミナルからREAを使う" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLIコマンド、グローバルインストール、curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13239,14 +13243,14 @@ msgid "" "list. Ghidra must be configured first." msgstr "{ph0}を、対象の関数一覧にある関数名またはアドレスに置き換えてください。先にGhidraの設定が必要です。" -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " "Node.js:" msgstr "macOSまたはLinuxでは、Node.jsを準備した後にcurlインストーラーも使えます。" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -13254,12 +13258,12 @@ msgid "" msgstr "" "手順3のクライアントチェックに、お使いのセットアップIDを指定してください。エディター型のクライアントでは、MCP設定でREAを有効にし、エージェントのチャットでツールの使用を許可します。" -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows、WSL、スペースを含むパス" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -13269,17 +13273,17 @@ msgstr "" "Windowsのクライアントや分析ツールにはWindows " "PowerShellを使ってください。エージェントがWSL内で動く場合は、そのLinux環境内にNode.jsとREAをインストールし、Linuxのパスを使います。ヘッドレスプロバイダーはREAと同じホストで動作します。" -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Windows用のセットアップコマンド:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "REAを更新または削除する" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -13288,7 +13292,7 @@ msgstr "エージェントの接続を更新するには、最新のセットア #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13301,52 +13305,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}更新とアンインストールの詳細{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Windows用REAセットアップコマンドをコピー" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "コマンドをコピー" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "コピーノート調査プロンプト" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13355,12 +13359,12 @@ msgid "" msgstr "" "curlとunzipがない場合は、先にインストールしてください。DebianまたはUbuntuでは{ph0}を実行し、他のディストリビューションではそのパッケージマネージャーを使います。" -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "ターミナルを閉じて開き直し、次を実行します。" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -13375,7 +13379,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13385,19 +13389,19 @@ msgstr "" "{ph0}Cursorの設定{ph1} · {ph2}Windsurf / Devin Desktopの設定{ph3} · {ph4}VS " "CodeとCopilotの設定{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · AIモデルを選ぶ" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "IDAの登録ファイルを用意する" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13410,7 +13414,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13421,7 +13425,7 @@ msgstr "{ph0}、{ph1}、{ph2}を提供するヘッドレススーパーバイザ #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13432,22 +13436,22 @@ msgstr "" "接続済みの従来型1.4.0 " "GUIサーバーでは、動作確認済みの{ph0}、{ph1}、任意の{ph2}をファイルにコピーしてください。REAに調査を頼む前に、IDAで元のバイナリーを開き、接続先のプラグインを起動します。" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLiteデータベース" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVMバイトコード" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "お使いのOSに対応するコマンドでCodexをインストールします。" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -13456,7 +13460,7 @@ msgstr "インストール後、ターミナルを開き直して作業フォル #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13466,12 +13470,12 @@ msgstr "" "初めてインストールする場合は、{ph0}Node.js 24 " "LTSのmacOSインストーラー(.pkg){ph1}をダウンロードし、開いて案内に従ってください。その後、ターミナルを開き直します。" -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "すでにHomebrewを使っていますか?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -13482,7 +13486,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13490,7 +13494,7 @@ msgid "" "in step 3{ph1}." msgstr "計画を確認して承認し、Claudeを開き直したら、{ph0}手順3で接続を確認{ph1}してください。" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -13500,12 +13504,12 @@ msgstr "" "両方のパスを、既存のインストール先に置き換えてください。macOSまたはLinux " "arm64に新しくインストールした場合は、先にそのコンピューター用のネイティブデコンパイラーをビルドします。" -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Ghidraのネイティブデコンパイラーをビルドする" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -13518,7 +13522,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -13528,7 +13532,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -13538,19 +13542,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · ネイティブビルドの手順{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "その後、Ghidraをチェックし、クライアント用にパスを保存します。" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -13558,13 +13562,13 @@ msgstr "電卓で {ph0} が 220 になるのはなぜでしょうか?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}仕組み{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -13572,22 +13576,22 @@ msgid "" msgstr "" "アプリ、ゲーム、ウェブサイトについてコーディングエージェントに質問してみましょう。REA は、答えの根拠となるコードを調べるためのツールを提供します。" -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "はじめる" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "例を見る ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "仕組み" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -13597,67 +13601,67 @@ msgstr "" "リバースエンジニアリングとは、プログラムそのものを調べてソフトウェアの仕組みを理解することです。REA " "を使えば、エージェントがコードをたどり、機能を説明し、その再実装を手伝えます。" -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "一つの機能について質問する" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "エージェントにプログラムやページを渡し、質問します。" -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "プログラムを調べる" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA はコード、参照関係、実行時の観測結果を返します。" -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "理解してから変更を試す" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "エージェントは調査結果をもとに機能を説明したり、再実装したりします。" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "命令を一つずつたどる" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "エージェントに同じ質問をする" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "6時からスタート。 追加 0.001 速度は以下のとおりですが、衝突のない各更新 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "公開済みのアプリやゲームの機能を、コードと検証結果とともに紹介します。" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " "demo clock to see why it changes every 30 seconds." msgstr "Aegis の公開 APK で 6 桁のログインコードを追い、デモの時計を動かして 30 秒ごとに変わる理由を確かめます。" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -13665,19 +13669,19 @@ msgid "" msgstr "" "Notion に同梱された JavaScript からシステムのクリップボードまでたどり、コピーがリッチなブロックデータを保持する仕組みを調べます。" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " "game." msgstr "1996 年の Windows ゲームで、ボールの位置が左右の音に変わる仕組みを復元します。" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "調査対象を選ぶ。" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -13686,7 +13690,7 @@ msgstr "対象の種類ごとに、セットアップと最初の調査を案内 #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13703,13 +13707,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}プロンプトの例·ウェブサイト" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "はい、これ。" @@ -13722,7 +13726,7 @@ msgstr "はい、これ。" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13735,7 +13739,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}例プロンプト·ゲームの #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13748,18 +13752,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "ウェブサイトプロジェクトプロンプトをコピーする" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "コピーゲーム再構築プロンプト" @@ -13771,7 +13775,7 @@ msgstr "コピーゲーム再構築プロンプト" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13782,7 +13786,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -13790,37 +13794,37 @@ msgstr "{ph0}事例 →{ph1} — 調査とインタラクティブなデモ。" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}ブログ →{ph1} — 手法とソフトウェア再実装の記録。" -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "電卓の調査全体を見る" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "より大きなプロジェクトを試す" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "二つの例を試しましょう。ゲームの速度を変えてから、電卓の % ボタンを再実装します。" -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " "first need to find out how the speed changes." msgstr "走り続けるとゲームの速度が上がります。速度を調節できる形で再実装するには、まず速度が変わる仕組みを調べます。" -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. 速度について質問する" @@ -13833,52 +13837,52 @@ msgstr "1. 速度について質問する" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}質問の例 · 恐竜ゲーム" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. 速度のルールを見つける" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " "increases a little each update while it is below 13." msgstr "REA を使うと、エージェントが実行中のゲームのコードを読めます。速度は 6 から始まり、13 未満の間は更新ごとに少しずつ上がります。" -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. 作ったゲームで遊ぶ" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " "Play, then choose your own speed." msgstr "下のミニゲームにこのルールを再現し、速度スライダーを加えました。スタートを押して、自分の速度を選んでみましょう。" -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "遊ぶには JavaScript を有効にしてください。ルールを読んだり、下のソースコードを開いたりすることはできます。" -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " "try them in a small calculator." msgstr "% ボタンは + の後と × の後で動作が異なります。二つのルールを調べ、小さな電卓で試しましょう。" -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. % ボタンについて質問する" @@ -13891,37 +13895,37 @@ msgstr "1. % ボタンについて質問する" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}質問の例 · 電卓" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. 二つのルールを見つける" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "REA は、エージェントが % ボタンのコードを読むのを助けます。このコードは二つのルールを使います。" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. % ボタンを試す" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "下に二つのルールを再現しました。+ または × を選び、% を押してから = を押します。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -13929,7 +13933,7 @@ msgstr "{ph0}FAQ を読む{ph1} — セットアップとよくある質問。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -13937,13 +13941,13 @@ msgstr "{ph0}Discord に参加{ph1} — 助けを求めたり、調査につい #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — 不具合の報告や機能のリクエスト。" -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "お使いの環境のセットアップ:" @@ -13951,14 +13955,14 @@ msgstr "お使いの環境のセットアップ:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "その他のインストール方法:{ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13971,7 +13975,7 @@ msgstr "セットアップの案内に従ってエージェントを接続して #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13984,7 +13988,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13994,7 +13998,7 @@ msgstr "ビルド済みのソースディレクトリで、下の{ph2}コマン #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14004,7 +14008,7 @@ msgstr "" "シェルが{ph0}を見つけられない場合は、インストーラーが表示した実行ファイルのパスを使ってください。Linuxでの標準のセットアップコマンドは{ph1}です。" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14014,89 +14018,89 @@ msgid "" msgstr "" "REAと設定済みの解析ツールで{ph0}を調べてください。関数と文字列を一覧にし、ユーザー入力を処理する部分をコードの参照付きで説明してください。" -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "貢献者" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "コンテンツにスキップ" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}ホーム{ph1} / 貢献者" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "みんなで作る。" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "REA をより良くしてくれる皆さん、ありがとうございます。" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "コード、ドキュメント、テスト、翻訳、アイデアなど、さまざまな形で参加できます。" -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "貢献の方法" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "会話に参加する →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "貢献者" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "貢献者を探す" @@ -14104,13 +14108,13 @@ msgstr "貢献者を探す" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "{ph0}GitHub の貢献者一覧{ph1}より · 更新日:{ph2}。" -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "該当する貢献者が見つかりません。別のユーザー名で検索してください。" @@ -14126,12 +14130,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "REA にコード、ドキュメント、テスト、アイデアを提供している人たちを紹介します。" -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub ユーザー名" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "ページ上部へ" diff --git a/website/locales/ko/messages.po b/website/locales/ko/messages.po index d0045156884..f47dd476075 100644 --- a/website/locales/ko/messages.po +++ b/website/locales/ko/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}홈{ph1} / 블로그" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "블로그" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "리버스 엔지니어링에 대한 생각." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "게임 재구성{ph0}에세이" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "리버스 엔지니어링의 산업 혁명" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "수동 리버스 엔지니어링과 TH08, TH095, TH04 재구성 경험을 바탕으로, 에이전트와 검증, 프로젝트를 거치며 축적되는 지식을 " "살펴봅니다." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "글 읽기" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "작성자: N0zoM1z0 · 2026년 10월 10일" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -99,160 +99,160 @@ msgid "" "and AI agents." msgstr "REA와 AI 에이전트를 활용한 실제 경험을 바탕으로 리버스 엔지니어링에 대해 생각해 봅니다." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "REA — 소프트웨어의 작동 원리를 알아보세요. 코딩 에이전트와 함께하는 리버스 엔지니어링." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA 홈" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "주 메뉴" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "GitHub에서 REA 보기" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "REA Discord 참여" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "X에서 REA 팔로우" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -261,35 +261,35 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "에세이 · 동방 재건" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "리버스 엔지니어링의 산업 혁명" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "작성자: N0zoM1z0 · 2026년 10월 10일" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "핵심 요점" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -301,7 +301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -314,7 +314,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -326,7 +326,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -338,7 +338,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -347,65 +347,65 @@ msgid "" msgstr "" "{ph0}우리는 리버스 엔지니어링 산업 혁명의 초입에 있습니다.{ph1} 방법론은 아직 정립 중이며, 탐구할 여지도 많습니다." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "경험이 축적되는 방식" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "자율성" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "에이전트" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "검증" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "검증 기준" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "저장소" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "작업 기억" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -414,7 +414,7 @@ msgstr "코드, 증거,{ph0}검사와 교훈." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -423,40 +423,40 @@ msgstr "불일치{ph0}{ph1}가설 수정{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "재사용" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 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:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "이 글의 내용" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -464,7 +464,7 @@ msgstr "{ph0}2026년 8월{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -472,7 +472,7 @@ msgstr "{ph0}TH08: 작업 이어받기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -480,7 +480,7 @@ msgstr "{ph0}두 가지 접근법{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -488,7 +488,7 @@ msgstr "{ph0}TH095: 경험의 축적{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -496,7 +496,7 @@ msgstr "{ph0}TH04: 다른 아키텍처로{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -504,7 +504,7 @@ msgstr "{ph0}정확한 코드에서 읽기 쉬운 코드로{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -512,18 +512,18 @@ msgstr "{ph0}산업적 전환{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "2026년 8월에 달라진 것" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -535,7 +535,7 @@ msgstr "" "이 작업 전에는 수동 리버스 엔지니어링을 많이 했습니다. 함수를 살펴 설명을 도출하고, 실제 프로그램으로 그 설명을 검증하곤 했습니다. " "더 나아가려면 다음 함수에도 제 시간을 들여야 했습니다. 머릿속에 담아 두어야 할 전체 구조도 점점 커졌습니다." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -547,7 +547,7 @@ msgstr "" " 있도록 게임을 재구성합니다. 이 글은 그런 경험을 바탕으로 합니다. 이 방법은 다른 분야에도 유용할 수 있지만, 각 분야에서 신뢰할 수" " 있는 기준과 대조해 무엇을 검증할 수 있는지 정립해야 합니다." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -558,7 +558,7 @@ msgstr "" "2026년 8월, 에이전트 중심의 리버스 엔지니어링을 본격적으로 탐구하기 시작했습니다. 프로그램과 일반 개발 도구를 제공하면 에이전트가 " "어디까지 해낼 수 있는지 궁금했습니다. 동방 재구성은 이를 알아볼 만한 규모의 프로젝트였습니다." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -572,7 +572,7 @@ msgstr "" " 호출 함수를 조사할 수 있었습니다. 작은 진단 코드를 작성하고 그 결과를 바탕으로 다음에 무엇을 시도할지 결정할 수도 있었습니다. 이런" " 자율성이 차이를 만들었습니다. 저는 프로젝트의 방향과 검사의 신뢰성에 더 집중할 수 있었습니다." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -582,7 +582,7 @@ msgstr "" "처음에는 속도에 눈길이 갔습니다. 그러다 이번 프로젝트가 끝난 뒤에도 무엇이 남을지 궁금해졌습니다. 방금 배운 것들이 다음 게임에도 " "도움이 될까요?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: 사람의 작업을 바탕으로" @@ -591,7 +591,7 @@ msgstr "TH08: 사람의 작업을 바탕으로" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -603,7 +603,7 @@ msgstr "" "{ph0}TH08{ph1}, 동방영야초는 {ph2}GensokyoClub의 재구성 작업{ph3}을 이어받아 시작했습니다. 공개된 소스는 " "탄탄한 토대가 됐습니다. 빌드에 관한 지식과 기여 이력도 함께 있었고, 작업을 이어가며 그 이력을 보존했습니다." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -613,7 +613,7 @@ msgstr "" "가져온 이력은 공개된 8월 10일 체크포인트까지입니다. 독립적인 후속 작업은 8월 13일에 시작했습니다. 8월 19일에는 식별된 게임 " "함수 1,107개 모두의 소스가 작업 기록에 남았습니다." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -623,7 +623,7 @@ msgstr "" "플레이 가능한 Linux 재구성 이식판은 작업을 이어가기 시작한 지 약 11일 뒤인 8월 24일에 커밋되었습니다. 이어서 웹 버전이 " "나왔습니다. 네이티브 Linux 64비트 버전은 8월 30일에 출시되었습니다." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -636,7 +636,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -651,12 +651,12 @@ msgstr "" "함수가 원래 명령어를 재현하는지 알려줍니다. 런타임 검증은 실행한 경로가 예상 상태에 도달하는지 알려줍니다. 에이전트는 설명을 제안하고 " "검증하며, 불일치가 나오면 구체적인 조사 대상으로 삼습니다." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "잘못된 상수로도 완전 일치 판정" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -665,7 +665,7 @@ msgstr "오라클 역시 누군가 작성한 소프트웨어입니다. TH08은 #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -676,7 +676,7 @@ msgstr "" "9월에 후속 Switch 이식판에서 보고된 버그를 추적하다가 아이템 자동 수집 기능에 도달했습니다. 재구성된 소스는 플레이어의 파워를 " "{ph0}과 비교했습니다. 원본은 최대 파워 임계값인 {ph1}을 사용했습니다." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -689,13 +689,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -708,7 +708,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -723,7 +723,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -735,7 +735,7 @@ msgstr "" "{ph0}9월 2일 수정{ph1}에서는 소스를 고치고 참조 상수의 실제 바이트까지 비교하도록 했습니다. 이어진 {ph2}확대 " "점검{ph3}에서는 부동소수점 리터럴 참조 1,548개를 조사했습니다. 통과했던 함수 5개에서 잘못된 참조 12개를 추가로 발견했습니다." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -747,7 +747,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -755,7 +755,7 @@ msgid "" "repairing the game." msgstr "{ph0}오라클 자체도 재구성이 필요했습니다.{ph1} 검증 도구를 고치는 일도 게임을 고치는 과정의 일부였습니다." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -770,7 +770,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -784,7 +784,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -792,7 +792,7 @@ msgid "" " for the next batch.{ph1}" msgstr "{ph0}한 묶음의 작업이 성공할 때마다 복구된 코드와 함께 다음 작업을 위한 더 나은 환경이 남았습니다.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "재구성을 바라보는 두 가지 관점" @@ -801,7 +801,7 @@ msgstr "재구성을 바라보는 두 가지 관점" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -812,14 +812,14 @@ msgstr "" "GensokyoClub의 {ph0}공개 README{ph1}는 이런 작업 방식에 반대한다는 입장을 명시합니다. 해당 공지는 작업이 완성될" " 때까지 추가 개발을 비공개로 진행한다고 알립니다. 한 구절은 다음과 같습니다:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" " our work paints a bad image for future decompilation efforts…" msgstr "우리 작업을 가져다 쓰는 편승자들(AI 디컴파일 및 이식)의 등장은 앞으로의 디컴파일 노력에 부정적인 이미지를 씌웁니다…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -833,7 +833,7 @@ msgstr "" "여가를 들여 어려운 작업을 했고, 그 작업 덕분에 저도 후속 작업을 시작할 수 있었습니다. 저는 그 노력을 존중합니다. 여기서 논의하려는" " 차이는 재구성을 어떻게 진행하고 기여를 어떻게 평가할지에 관한 것입니다." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -844,7 +844,7 @@ msgstr "" "제가 알던 수동 작업 방식에서는 함수를 이해하고 재구성하는 일을 보통 한 사람이 맡았습니다. 프로젝트는 그 사람의 전문성에 크게 " "의존했습니다. 많은 추론이 작업 중에 이루어졌기 때문에 기여자에 대한 신뢰가 중요했습니다." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -854,7 +854,7 @@ msgstr "" "기존 프로젝트도 소스와 빌드 도구에 지식을 보존합니다. 제게 달라진 점은 에이전트가 그 지식을 활용해 다음 조사를 스스로 진행할 수 " "있다는 것이었습니다." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -866,7 +866,7 @@ msgstr "" "제가 이어가는 작업에서는 목표와 결과의 수용 기준을 제가 정합니다. 에이전트는 폭넓은 자유를 갖고 조사합니다. 제안한 재구성은 관련 " "검사를 통과해야 합니다. 대부분을 에이전트가 수행했더라도, 다른 사람이 왜 그 구현을 선택했는지 검토할 수 있기를 바랍니다." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -877,7 +877,7 @@ msgstr "" "이런 전환은 어려울 수 있습니다. 수년간의 세심한 작업이 훨씬 빠르게 진행되는 후속 작업의 기반이 될 수 있습니다. 이는 공로를 어떻게 " "인정할 것인가라는 실제 문제를 제기합니다. 또한 유지 관리자가 기여를 받아들이기 전에 알아야 할 사항도 달라집니다." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -890,7 +890,7 @@ msgstr "" "숙련도가 필요한 지점이 달라집니다. 여전히 누군가는 공정을 설계하고 결과가 잘못됐을 때 알아봐야 합니다. 각 커뮤니티는 이 변화를 어느 " "정도 받아들일지 선택할 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -913,7 +913,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -924,14 +924,14 @@ msgstr "" "출처: 2026년 10월 10일에 확인한 GensokyoClub의 {ph0}README 공지{ph1}와 {ph2}기여 정책{ph3}. " "인용문은 일부를 줄여 발췌했습니다. TH08의 {ph4}공로 및 출처 기록{ph5}에는 후속 작업이 시작된 경계가 기록되어 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: 경험의 축적이 효과를 내기 시작하다" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -944,7 +944,7 @@ msgstr "" "29일에 시작되었고, 당시 기록 대장에는 확인된 게임 함수가 하나도 없었습니다. 게임 자체는 여전히 배워야 했습니다. 하지만 재구성을 " "어떻게 시작하고 계속 진행할지에 대해서는 이미 훨씬 많은 것을 알고 있었습니다." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -956,7 +956,7 @@ msgstr "" "프로그램은 9월 9일에 링크되었습니다. Windows i386 재구성판은 초기화 후 약 12일이 지난 9월 10일에 플레이 가능한 것으로" " 기록되었습니다." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -966,7 +966,7 @@ msgstr "" "저는 첫 프로젝트의 속도보다 이 점이 더 흥미로웠습니다. 새로운 대상이 다른 게임에서 한 작업의 도움을 받을 수 있었습니다. 그 경험은 " "이미 도구와 프로젝트 구성 방식에 녹아 있었습니다." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -979,7 +979,7 @@ msgstr "" "비교만으로는 중요한 의문이 남습니다. 함께 작동하는 모습을 확인해야 합니다. 이 교훈은 TH095의 전체 프로그램 빌드에 접근하는 방식을" " 정하는 데 도움이 됐습니다." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -991,7 +991,7 @@ msgstr "" "다음 작업으로 넘어간 뒤에도 계속 도움이 됩니다. 다음 에이전트는 그 결과에 이르게 한 조사를 반복하지 않고도 결과를 활용할 수 " "있습니다." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1004,7 +1004,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1015,7 +1015,7 @@ msgstr "" "{ph0}방법론 자체가 다음 게임을 시작하는 토대가 됩니다.{ph1} 다음 프로젝트에서는 새 대상만의 특성에 더 많은 노력을 쏟을 수 " "있습니다." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1026,7 +1026,7 @@ msgstr "" "나중에 합류하는 사람도 같은 도움을 받습니다. 작업을 이어가기 전에 결정을 살펴보고 검증을 다시 실행할 수 있습니다. 소스가 왜 그렇게 " "작성됐는지 알기 위해 프로젝트의 전체 이력을 되짚을 필요는 없습니다." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: 다른 아키텍처에서도 이어지는 작업 방식" @@ -1035,7 +1035,7 @@ msgstr "TH04: 다른 아키텍처에서도 이어지는 작업 방식" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1049,7 +1049,7 @@ msgstr "" " 프로그램이 협력하는 16비트 환경이었습니다. 하드웨어 동작을 이해하려면 Windows 게임과는 다른 증거가 필요했습니다. 기존의 " "{ph2}ReC98 작업{ph3}도 여기서 귀중한 지식과 소스 자료를 제공했습니다." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1060,7 +1060,7 @@ msgstr "" "DOS 재구성판은 이제 작동합니다. 수동 테스트에서는 Normal 난이도의 경로를 엔딩까지 플레이하고 저장 기능도 확인했습니다. 현재는 " "네이티브 64비트 이식판을 작업하고 있습니다. 작동하는 DOS 버전을 먼저 확보해 두면 이식판을 검증할 기준으로 삼을 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1071,7 +1071,7 @@ msgstr "" "아키텍처가 달라지자 조사할 내용도 달라졌습니다. 결과를 검증하는 컴파일러와 실행 환경도 바뀌었습니다. 그래도 에이전트는 질문을 따라 " "결과에 도달하고, 그 결과로 다음 실험의 방향을 정할 수 있었습니다." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1084,7 +1084,7 @@ msgstr "" "합니다. 이는 DOS 제품과 대조하여 조사할 수 있습니다. 증거와 검사가 준비되면 에이전트는 Windows 게임에서와 비슷하게 이 질문을" " 해결해 나갈 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1094,7 +1094,7 @@ msgstr "" "이것이 이 논의에서 TH04가 중요한 이유입니다. 플랫폼이 크게 바뀌어도 새로운 작업 방식을 처음부터 마련할 필요는 없었습니다. " "아키텍처가 문제를 정했다면, 기존 작업 흐름은 여전히 해결 방법을 제공했습니다." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1110,7 +1110,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1120,19 +1120,19 @@ msgstr "" "2026년 10월 10일 기준 프로젝트 상태: {ph0}DOS 재구성과 수동 테스트{ph1} · {ph2}64비트 이식판{ph3}. " "이식판은 아직 개발 중입니다." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "정확한 코드에서 읽기 쉬운 코드로" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1145,7 +1145,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1159,7 +1159,7 @@ msgstr "" "방식을 추적해 역할을 설명할 수 있게 합니다. 그런 다음 증거에 맞는 이름과 타입을 붙입니다. 다음 사람이 해석의 근거를 알 수 있도록 " "판단 과정도 소스와 함께 남깁니다." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1172,14 +1172,14 @@ msgstr "" "구현에서 어떤 객체가 해당 상태를 소유해야 하는지 결정하는 데 거의 도움이 되지 않습니다. 동작을 안전하게 옮기려면 기존 메모리 접근 " "뒤에 있는 관계를 복원해야 합니다." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "지금은 다음 순서로 작업합니다." #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1193,7 +1193,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1207,7 +1207,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1221,7 +1221,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1234,7 +1234,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1248,7 +1248,7 @@ msgstr "" "원본의 관련 코드와 데이터를 여전히 재현하는지 확인합니다. 두 번째 오라클은 재구성판이 계속 빌드되고, 실행한 경로에서 올바르게 " "동작하는지 확인합니다." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1260,7 +1260,7 @@ msgstr "" "다른 상태 복사본을 사용하게 될 수 있습니다. 두 검사를 모두 유지하면 에이전트가 리팩터링을 더 진행하기 전에 조사할 구체적인 실패 " "사례를 얻을 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1275,7 +1275,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1291,7 +1291,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1301,12 +1301,12 @@ msgstr "" "{ph0}정확한 재구성은 비교 기준을 제공합니다. 의미 재구성은 복구한 지식을 활용할 수 있게 합니다.{ph1} 이식은 그 두 가지를 " "토대로 진행할 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "산업적 전환이라 부르는 이유" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1317,7 +1317,7 @@ msgstr "" "이 프로젝트들은 제가 집중하는 지점을 바꿨습니다. 에이전트가 조사의 많은 부분을 진행할 수 있게 되자, 작업 환경을 개선하는 일이 제가 " "할 수 있는 가장 유용한 일 중 하나가 됐습니다. 도구 하나를 개선하면 이후 그 도구가 필요한 모든 함수의 작업에 도움이 됩니다." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1328,7 +1328,7 @@ msgstr "" "여기서 자율성이 중요합니다. 다음에 무엇을 해야 할지는 실험이 실패한 뒤에야 분명해지곤 합니다. 에이전트에게는 예상 밖의 방향으로 결과를" " 추적할 자유가 필요합니다. 매번 제 지시를 기다려야 한다면 많은 작업이 여전히 제 관심과 시간에 묶입니다." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1339,7 +1339,7 @@ msgstr "" "에이전트가 틀린 가설을 세우리라는 건 예상합니다. 중요한 것은 그 가설을 검증하고 결과에서 배울 수 있느냐입니다. 검증 실패는 실수를 " "이해하고 다시 시도하는 데 도움이 되어야 합니다. 쌓인 증거가 프로젝트의 이정표를 뒷받침하는지는 여전히 제가 판단해야 합니다." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1351,7 +1351,7 @@ msgstr "" "REA는 에이전트에게 분석 도구를 제공합니다. 어떤 함수를 누가 호출하는지 묻다가 곧바로 그 호출 함수를 살펴볼 수 있습니다. 재구성 " "프로젝트는 컴파일러와 자체 대조 검사를 제공합니다. 에이전트는 이를 이용해 제안한 소스를 테스트하고 설명이 어디까지 맞는지 확인합니다." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1366,7 +1366,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1383,7 +1383,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1398,7 +1398,7 @@ msgstr "" "발견하면 도구를 고치고 그 결함의 영향을 받은 결과도 다시 검토해야 합니다. 그러면 다음 프로젝트는 더 강력한 도구를 물려받을 수 " "있습니다." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1412,7 +1412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1423,7 +1423,7 @@ msgstr "" "{ph0}Touhou Reconstruction Factory{ph1}는 이런 필요에서 출발했습니다. 검증과 교훈을 다음 작업으로 " "전달하는 공통 방식을 제공합니다. 한 게임에서 한 작업이 다른 게임의 출발점을 개선할 수 있습니다." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1433,12 +1433,12 @@ msgstr "" "제게 산업 비유가 의미 있는 이유입니다. 경험이 다른 사람도 쓸 수 있는 도구에 담기기 시작합니다. 도구가 나아지면 다음 사람이나 다음 " "에이전트가 해낼 수 있는 일도 늘어납니다." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "이제 시도할 수 있는 프로젝트" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1448,7 +1448,7 @@ msgstr "" "속도는 시작 여부를 바꾸기에 중요합니다. 분석하고 싶은 게임이라도 현실적으로 제가 들일 수 있는 것보다 더 많은 시간을 요구할 수 " "있었습니다. 많은 프로젝트는 구상으로만 남곤 했습니다." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1463,7 +1463,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1473,7 +1473,7 @@ msgstr "" "이제 낯선 프로그램을 보면 이렇게 묻습니다. {ph0}에이전트가 이 작업을 믿고 맡길 만하게 수행하려면 어떤 접근 수단, 피드백, 축적된" " 지식이 필요할까?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1483,12 +1483,12 @@ msgstr "" "이 질문 덕분에 예전에는 손대지 않았을 프로젝트도 생각하게 됩니다. 각 프로젝트는 다음 작업에 접근하는 방식을 개선할 수 있습니다. 이 " "방식으로 어디까지 갈 수 있을지 계속 탐구하고 싶습니다." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "프로젝트 이정표 및 출처" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1520,7 +1520,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1554,7 +1554,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1571,7 +1571,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1594,7 +1594,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1615,7 +1615,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1630,7 +1630,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1651,7 +1651,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1665,7 +1665,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1685,27 +1685,27 @@ msgstr "" "N0zoM1z0가 수동 리버스 엔지니어링, AI 에이전트와 함께한 동방 재구성, 그리고 TH08, TH095, PC-98 TH04를 " "거치며 지식이 축적되는 과정을 돌아봅니다." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "프로젝트 간 경험" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "동방 재구성 에세이" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -1714,18 +1714,18 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "분석 → 재구현 → 변경" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "공룡 게임의 속도 규칙을 재현해 보세요" @@ -1734,7 +1734,7 @@ msgstr "공룡 게임의 속도 규칙을 재현해 보세요" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1745,15 +1745,15 @@ msgstr "" "게임의 가속을 재현하려면 먼저 속도를 제어하는 규칙을 찾아야 합니다. {ph0}REA로 실행 중인 스크립트를 얻고,{ph1} 그 규칙으로" " {ph2}속도를 조절할 수 있는{ph3} 미니 게임을 만들었습니다." -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "이 페이지 목차" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1761,7 +1761,7 @@ msgstr "{ph0}플레이하며 속도 바꾸기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1769,7 +1769,7 @@ msgstr "{ph0}복구한 규칙 읽기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1777,18 +1777,18 @@ msgstr "{ph0}재구성 결과 검증{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "플레이하며 속도 바꾸기" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1798,54 +1798,54 @@ msgstr "" "시작을 누르고 선인장을 뛰어넘으세요. 속도 슬라이더를 움직이면 선택한 고정 속도로 플레이할 수 있습니다. 복구된 규칙을 선택하면 다시 " "6에서 시작해 서서히 가속합니다." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "재구성한 게임 플레이" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "시작" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "점프 ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "다시 시작" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "속도" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "복구된 가속 규칙 사용" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "슬라이더를 움직여 원하는 속도를 설정하세요. Space 키나 점프 버튼을 누르면 선인장을 뛰어넘습니다." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 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:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "REA가 반환한 스크립트 읽기" @@ -1853,7 +1853,7 @@ msgstr "REA가 반환한 스크립트 읽기" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1867,7 +1867,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1875,18 +1875,18 @@ msgid "" "update without a collision." msgstr "설정값은 {ph0}, {ph1}, {ph2}입니다. 게임은 충돌이 없는 업데이트에서 이 분기를 실행합니다." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "새 게임에 같은 규칙 적용하기" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "복사" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -1901,18 +1901,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "재구성 결과 검증" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -1922,27 +1922,27 @@ msgstr "" "장애물과 자동 실행 예약을 끈 상태에서 원본 게임의 업데이트 함수를 호출했습니다. 기록된 속도를 복구한 규칙의 재실행 결과와 비교해 " "보세요." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "업데이트" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "원래 게임" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "재구성된 규칙" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "속도 검사 실행" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -1951,14 +1951,14 @@ msgstr "" "값은 소수점 이하 셋째 자리까지 반올림했습니다. 이 분기는 값을 더하기 전에 조건을 검사하므로 마지막 증가로 속도가 13을 조금 넘을 수" " 있습니다." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "직접 분석해 보세요" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -1967,14 +1967,14 @@ msgstr "코딩 에이전트와 함께 {ph0}REA를 설정하세요{ph1}." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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 "{ph2}를 페이지 URL로 사용해 {ph0}브라우저 연결 절차{ph1}를 따르세요." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -1989,7 +1989,7 @@ msgstr "에이전트에게 페이지 URL과 로컬 디버깅 엔드포인트를 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2001,7 +2001,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}코딩 에이전트" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2014,7 +2014,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2027,7 +2027,7 @@ msgstr "추가로 물어보세요: {ph0}“점프 높이는 어디서 계산해? #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2050,64 +2050,64 @@ msgid "" "speed and play." msgstr "REA로 공룡 게임의 속도 규칙을 읽고 재현한 다음, 속도를 바꿔 플레이해 보세요." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "공룡 속도 재구성" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " "focused." msgstr "공룡 미니 게임. 게임에 포커스가 있을 때 점프 버튼을 사용하거나 Space 키를 누르세요." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "재구성된 속도 규칙 복사" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "공룡 분석 프롬프트 복사" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}홈{ph1} / 자주 묻는 질문" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA 자주 묻는 질문" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "설정, 업데이트, 분석, 문제 해결." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "주제" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2115,7 +2115,7 @@ msgstr "{ph0}설정 및 업데이트{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2123,7 +2123,7 @@ msgstr "{ph0}분석{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2131,31 +2131,31 @@ msgstr "{ph0}문제 해결{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}데이터 및 공유{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "설정 및 업데이트" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "REA는 어떻게 설치하나요?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "터미널 · 에이전트 설정" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "복사" @@ -2163,7 +2163,7 @@ msgstr "복사" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2175,13 +2175,13 @@ msgstr "" "설정 명령은 REA의 MCP 연결을 등록하고 분석 스킬을 설치합니다. 완료되면 에이전트를 다시 시작한 뒤 분석할 파일 경로와 질문을 " "전달하세요. 필요한 환경과 첫 분석 방법은 {ph0}설정 가이드{ph1}에서 확인할 수 있습니다." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "어떤 코딩 에이전트에서 REA를 사용할 수 있나요?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2196,32 +2196,32 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}코딩 에이전트 연결{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "REA는 어떻게 업데이트하나요?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " "npm:" msgstr "REA는 버그 수정을 포함해 자주 릴리스됩니다. npm으로 CLI를 설치했다면 다음 명령을 실행하세요:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "터미널 · 설치된 CLI" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2229,14 +2229,14 @@ msgid "" "agent through {ph0}, run:" msgstr "업데이트가 출력하는 설정 갱신 명령을 실행하세요. {ph0}로 에이전트를 설정했다면 다음 명령을 사용하세요:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "터미널 · 에이전트 설정 갱신" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2247,7 +2247,7 @@ msgstr "" "변경 내용을 확인하고 에이전트를 다시 시작하세요. REA 연결 설정은 특정 패키지 버전을 사용하므로 설정 명령을 다시 실행해야 새 버전이" " 적용됩니다. CLI를 한 번 실행할 때는 {ph0} 뒤에 원하는 명령을 붙이세요." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "skills.sh에서 스킬만 설치하면 되나요?" @@ -2255,7 +2255,7 @@ msgstr "skills.sh에서 스킬만 설치하면 되나요?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2266,17 +2266,17 @@ msgstr "" "스킬은 에이전트에게 분석 방법을 알려줍니다. {ph0}REA 설정{ph1}을 실행해 MCP 서버를 연결하고 스킬을 설치하세요. 도구를 " "사용하려면 에이전트를 다시 시작해야 합니다." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "분석" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "REA로 무엇을 분석할 수 있나요?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "가지고 있는 소프트웨어 종류에 맞춰 시작하세요:" @@ -2284,7 +2284,7 @@ msgstr "가지고 있는 소프트웨어 종류에 맞춰 시작하세요:" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2294,7 +2294,7 @@ msgstr "{ph0}네이티브 실행 파일과 라이브러리{ph1}: 함수, 어셈 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2304,7 +2304,7 @@ msgstr "{ph0}JavaScript와 Electron 앱{ph1}: 모듈, 임포트, IPC, 소스 위 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2313,7 +2313,7 @@ msgstr "{ph0}브라우저 페이지{ph1}: 스크립트, 요청, 런타임 관찰 # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2324,13 +2324,13 @@ msgstr "" "REA는 .NET 등의 관리형 어셈블리, Android APK, 펌웨어, 패키지 리소스도 분석합니다. 실제 분석 과정은 {ph0}사례 " "소개{ph1}에서 확인하세요." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Hopper, Ghidra 또는 IDA가 필요한가요?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2342,7 +2342,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2353,20 +2353,20 @@ msgstr "" "기존 Ghidra나 IDA를 연결하세요. 또는 설정 명령으로 Hopper를 찾아 설치 계획을 확인할 수 있습니다. 사용할 수 있는 분석 " "도구는 운영체제와 대상에 따라 달라집니다. {ph0}네이티브 분석 설정{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "코딩 에이전트 없이도 REA를 사용할 수 있나요?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 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:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "터미널 · 정적 애플리케이션 분석" @@ -2374,7 +2374,7 @@ msgstr "터미널 · 정적 애플리케이션 분석" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2383,13 +2383,13 @@ msgid "" msgstr "경로를 압축 해제한 앱 폴더나 ASAR 파일로 바꾸세요. 설치 방법은 {ph0}CLI 사용 안내{ph1}를 참고하세요." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2404,7 +2404,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2415,13 +2415,13 @@ msgstr "" "에이전트는 분석 결과로 동작을 설명하거나 구현을 작성하고 테스트합니다. {ph0}DX-Ball 계산{ph1}과 {ph2}CTF flag " "검사기{ph3}에서 그 과정을 볼 수 있습니다." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "에이전트에게 무엇을 물어보면 되나요?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2436,7 +2436,7 @@ msgstr "로컬 대상과 조사할 동작 하나를 알려주세요. JavaScript #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2445,7 +2445,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}코딩 에이전트" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2454,19 +2454,19 @@ msgid "" msgstr "" "경로를 분석할 대상으로 바꾸세요. {ph0}가이드{ph1}에는 네이티브 프로그램, Electron, 브라우저용 예시 프롬프트가 있습니다." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "문제 해결" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "왜 에이전트에서 REA 도구가 보이지 않나요?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2474,7 +2474,7 @@ msgid "" " {ph0}; for Codex:" msgstr "설정 후 에이전트를 다시 시작하거나 다시 연결하세요. {ph0}로 REA 등록 상태를 확인할 수 있습니다. Codex의 예:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "터미널 · 특정 클라이언트 확인" @@ -2483,7 +2483,7 @@ msgstr "터미널 · 특정 클라이언트 확인" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2493,7 +2493,7 @@ msgstr "" "{ph0}를 {ph1} 또는 {ph2} 같은 클라이언트 ID로 바꾸세요. 등록이 없거나 오래되었다고 나오면 해당 클라이언트의 설정을 다시" " 실행하세요:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "터미널 · 특정 클라이언트 설정 복구" @@ -2501,7 +2501,7 @@ msgstr "터미널 · 특정 클라이언트 설정 복구" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2512,7 +2512,7 @@ msgstr "" "변경 계획을 확인하고 클라이언트를 다시 시작하세요. 등록은 정상이지만 도구가 보이지 않으면 클라이언트의 MCP 연결 오류를 확인하세요. " "{ph0}추가 설정 진단{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Hopper를 먼저 실행해야 하나요?" @@ -2520,7 +2520,7 @@ msgstr "Hopper를 먼저 실행해야 하나요?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2531,7 +2531,7 @@ msgstr "" "REA는 작업에 필요할 때 Hopper를 실행합니다. macOS에서는 자동 분석 전에 첫 실행 화면에서 데모 모드나 라이선스 활성화를 " "선택해야 합니다. {ph0}네이티브 분석 도구 설정{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "버그가 발생하면 어떻게 하나요?" @@ -2539,7 +2539,7 @@ msgstr "버그가 발생하면 어떻게 하나요?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2552,7 +2552,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2563,25 +2563,25 @@ msgstr "" "문제가 계속되면 REA 버전, 운영체제, 대상 종류, 재현 방법, 오류 출력을 포함해 {ph0}이슈를 등록하세요{ph1}. 네이티브 분석" " 문제라면 분석 도구 이름도 알려주세요." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "데이터 및 공유" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA가 내 앱을 업로드하나요?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 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:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "사례를 공유하거나 기여하려면 어떻게 하나요?" @@ -2591,7 +2591,7 @@ msgstr "사례를 공유하거나 기여하려면 어떻게 하나요?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2606,7 +2606,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2627,91 +2627,91 @@ msgid "" "coding agents, troubleshooting and sharing examples." msgstr "REA의 설치, 업데이트, 분석 도구, 코딩 에이전트, 문제 해결, 사례 공유에 관한 자주 묻는 질문." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "REA에 관한 자주 묻는 질문" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "REA 설정 명령 복사" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "REA 업데이트 명령 복사" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "에이전트 설정 갱신 명령 복사" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "REA CLI 분석 명령 복사" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "예제 분석 프롬프트 복사" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "클라이언트 진단 명령 복사" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "특정 클라이언트 설정 명령 복사" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}홈{ph1} / 첫 번째 조사" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 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:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "이번 실습" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2719,7 +2719,7 @@ msgstr "{ph0}1. 설정{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2727,7 +2727,7 @@ msgstr "{ph0}2. 내보내기 질문하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2735,7 +2735,7 @@ msgstr "{ph0}3. 답변 따라가기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2743,13 +2743,13 @@ msgstr "{ph0}4. 예측 확인{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. 에이전트에 REA 연결하기" @@ -2762,44 +2762,44 @@ msgstr "1. 에이전트에 REA 연결하기" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "복사" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "또는 터미널에서 이 명령을 실행하세요:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 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:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. CSV 저장 위치 묻기" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2810,7 +2810,7 @@ msgstr "" "예제는 {ph0}메모 내보내기{ph1} 버튼이 있는 6개 파일로 구성된 Electron 앱입니다. Electron을 설치하거나 실행하지 " "않아도 에이전트가 코드를 분석할 수 있습니다." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2820,14 +2820,14 @@ msgstr "에이전트가 파일을 다운로드하고 압축을 푼 폴더를 REA #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}예제 ZIP 다운로드{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2835,12 +2835,12 @@ msgid "" " path to the {ph0} folder and the same export question." msgstr "에이전트가 다운로드할 수 없다면 직접 압축을 푸세요. {ph0} 폴더의 경로와 같은 내보내기 질문을 에이전트에게 전달하세요." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. 답변의 근거를 코드에서 확인하기" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "파일과 줄 번호를 포함한 짧은 설명을 확인하세요:" @@ -2849,7 +2849,7 @@ msgstr "파일과 줄 번호를 포함한 짧은 설명을 확인하세요:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2860,19 +2860,19 @@ msgstr "" "버튼은 {ph0} 메시지를 보냅니다. 메인 프로세스는 메모를 CSV로 변환한 뒤 사용자의 다운로드 폴더에 {ph1} 파일을 저장합니다. " "열은 {ph2}와 {ph3}입니다." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "버튼에서 파일 저장 코드까지" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 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:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -2882,54 +2882,54 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. 예측 확인" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 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:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "직접 검증하기" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. 추가 질문하기" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "같은 대화에서 다음 질문을 해보세요:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -2940,7 +2940,7 @@ msgstr "또는 직접 고른 앱을 에이전트에게 주고 버튼, 파일, #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2954,7 +2954,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2967,7 +2967,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2989,116 +2989,116 @@ msgstr "" "작은 메모 앱으로 REA를 사용해 보세요. 에이전트를 설정하고 내보낸 메모의 저장 위치를 물어본 뒤, 예제 제목으로 CSV 포맷터를 " "검증합니다." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "첫 번째 REA 조사" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "REA 설치 프롬프트 복사" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "설치 명령 복사" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "메모 분석 프롬프트 복사" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "CSV 검증 프롬프트 복사" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "포맷터 검증 명령 복사" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}홈{ph1} / 시작하기" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "REA 설정" -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "터미널을 열고 확인하세요:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "터미널" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "복사" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3108,7 +3108,7 @@ msgstr "약관 동의를 요청하면 Y를 입력하세요. PowerShell을 닫았 #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3118,7 +3118,7 @@ msgstr "배포판에서 제공하는 {ph0} 패키지는 22.23.4보다 오래된 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3128,7 +3128,7 @@ msgstr "일반 설치 프로그램을 원하나요? {ph0}nodejs.org{ph1}에서 L #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3136,7 +3136,7 @@ msgstr "{ph0}CLI 사용하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3150,18 +3150,18 @@ msgstr "{ph0}도움 받기{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "직접 설정 명령 실행하기" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "터미널은 어떻게 열 수 있나요?" @@ -3170,7 +3170,7 @@ msgstr "터미널은 어떻게 열 수 있나요?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3184,7 +3184,7 @@ msgstr "{ph0}Windows:{ph1} 시작 메뉴를 열고 {ph2}PowerShell{ph3}을 입 #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3196,7 +3196,7 @@ msgstr "{ph0}macOS:{ph1} {ph2} {ph3}를 누르고 {ph4}터미널{ph5}을 입력 #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3209,7 +3209,7 @@ msgstr "{ph0}Linux:{ph1} 대부분의 데스크톱에서 {ph2} {ph3} {ph4}를 #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3219,7 +3219,7 @@ msgstr "" "{ph0} {ph1}(macOS: {ph2} {ph3}, Linux 터미널: {ph4} {ph5} {ph6})로 명령을 붙여넣고 " "Enter를 누르세요." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3229,7 +3229,7 @@ msgstr "" "클라이언트를 선택하고 설정 계획을 검토하세요. REA는 기존 설정을 백업한 뒤 MCP 연결과 맞는 분석 스킬을 추가합니다. 변경 사항을 " "적용하기 전에 승인을 요청합니다." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "클라이언트를 어떻게 다시 시작하나요?" @@ -3238,7 +3238,7 @@ msgstr "클라이언트를 어떻게 다시 시작하나요?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3253,7 +3253,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3262,7 +3262,7 @@ msgid "" msgstr "" "{ph0}터미널 에이전트{ph1}(Claude Code, Codex, Gemini CLI): 세션을 종료한 뒤 다시 시작하세요." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "폴더의 전체 경로는 어떻게 얻나요?" @@ -3271,7 +3271,7 @@ msgstr "폴더의 전체 경로는 어떻게 얻나요?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3285,7 +3285,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3297,7 +3297,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3305,27 +3305,27 @@ msgid "" "appears." msgstr "{ph0}모든 시스템:{ph1} 폴더를 터미널 창으로 드래그하면 해당 경로가 나타납니다." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 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:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "정적 애플리케이션 분석" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3333,13 +3333,13 @@ msgid "" "Windows, a path such as {ph1} works here." msgstr "경로를 압축을 푼 앱 폴더나 {ph0} 파일로 바꾸세요. Windows에서는 {ph1} 같은 경로를 사용할 수 있습니다." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "앱의 .asar 파일은 어디에 있나요?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3350,7 +3350,7 @@ msgstr "Electron 앱은 보통 {ph0} 폴더에 이 파일을 둡니다:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3362,7 +3362,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3373,20 +3373,20 @@ msgstr "{ph0}macOS:{ph1} {ph2}(앱을 마우스 오른쪽 버튼으로 클릭한 #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} 대개 {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3395,36 +3395,36 @@ msgid "" msgstr "결과에는 앱의 식별 정보, 모듈 간 연결과 소스 위치가 나옵니다. REA가 연결을 확인하지 못한 부분도 표시됩니다." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "CLI 설치" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "기존 Ghidra 설치 연결" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Windows에서 Ghidra 연결" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3434,13 +3434,13 @@ msgstr "" "Windows x64에서는 고정 로컬 NTFS 드라이브의 네이티브 x86 및 x64 PE 앱과 DLL을 실험적으로 읽기 전용 분석할 수 " "있습니다. 기존 Ghidra 12.1.x 설치와 64비트 JDK 21 이상을 사용하세요." -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 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:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3448,18 +3448,18 @@ msgid "" msgstr "" "macOS 또는 Linux에서 Hopper를 연결하세요. 위 설정 명령은 기존 설치를 찾거나, 승인할 수 있는 설치 계획을 제안합니다." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "도움 받기" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "에이전트에서 REA가 보이지 않을 때" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3467,22 +3467,22 @@ msgid "" "{ph0}; for Codex:" msgstr "설정 후 클라이언트를 다시 시작하거나 연결하세요. {ph0}로 REA 연결을 확인할 수 있습니다. Codex의 예:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "분석 도구에 문제가 있을 때" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "사용 중인 분석 도구를 확인하세요. Ghidra의 예:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "분석 도구 하나 진단" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "보고서에 실패한 검사와 권장 후속 조치가 나옵니다." @@ -3491,7 +3491,7 @@ msgstr "보고서에 실패한 검사와 권장 후속 조치가 나옵니다." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3502,7 +3502,7 @@ msgstr "{ph0}REA FAQ{ph1}{ph2}업데이트, 에이전트, 분석에 관한 자 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3514,7 +3514,7 @@ msgstr "{ph0}분석 가이드 선택{ph1}{ph2}바이너리, Electron 앱, 브라 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3526,7 +3526,7 @@ msgstr "{ph0}GitHub 이슈{ph1}{ph2}실행한 명령과 진단 결과를 첨부 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3548,68 +3548,68 @@ msgstr "" "REA를 코딩 에이전트에 연결하거나 터미널에서 로컬 JavaScript·Electron 앱을 분석하세요. 설정, 첫 질문, 네이티브 분석" " 도구 안내입니다." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Node.js 버전 확인 명령 복사" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Windows용 Node.js 설치 명령 복사" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Homebrew Node.js 설치 명령 복사" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Linux용 fnm 설치 명령 복사" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Linux용 Node.js 24 명령 복사" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA 시작 가이드" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "REA 설치 프롬프트 복사" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "JavaScript 분석 명령 복사" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "CLI 설치 명령 복사" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "분석 도구 진단 명령 복사" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -3618,34 +3618,34 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}홈{ph1} / {ph2}가이드{ph3} / 브라우저 관찰" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 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:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "가이드 목차" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3653,7 +3653,7 @@ msgstr "{ph0}예제 소개{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3661,7 +3661,7 @@ msgstr "{ph0}브라우저 열기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3669,7 +3669,7 @@ msgstr "{ph0}에이전트에게 질문하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3677,13 +3677,13 @@ msgstr "{ph0}CLI에서 캡처하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "내보내기를 클릭하면 어떻게 되나요?" @@ -3693,7 +3693,7 @@ msgstr "내보내기를 클릭하면 어떻게 되나요?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3704,7 +3704,7 @@ msgstr "" "{ph0}Notes 브라우저 예제{ph1}에는 {ph2}메모 내보내기{ph3} 버튼이 있습니다. 클릭하면 {ph4}를 불러와 메모 두 " "개를 CSV로 변환하고 다운로드를 시작합니다." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "클릭에서 CSV 다운로드까지" @@ -3715,7 +3715,7 @@ msgstr "클릭에서 CSV 다운로드까지" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3731,7 +3731,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3749,7 +3749,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3759,38 +3759,38 @@ msgstr "" "{ph0}03 · 코딩 에이전트{ph1}{ph2}내보내기 코드 읽기{ph3}{ph4}관찰된 요청을 {ph6}의 {ph5} 호출과 " "연결합니다.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "메모 내보내기를 클릭하기 전에 캡처를 시작합니다." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "원격 디버깅을 켜고 Chrome 열기" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " "debugging port. On Linux:" msgstr "별도 브라우저 프로필과 로컬 디버깅 포트로 호스팅된 Notes 예제를 여세요. Linux의 예:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "예제 브라우저 시작" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "복사" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -3798,7 +3798,7 @@ msgid "" msgstr "" "macOS나 Windows에서는 설치된 브라우저의 실행 파일 경로를 사용하세요. URL은 분석하려는 다른 페이지로 바꿀 수 있습니다." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -3806,7 +3806,7 @@ msgid "" msgstr "" "REA는 이미 실행 중인 브라우저에 연결합니다. 사용자가 직접 페이지를 조작하고 필요한 동작을 수행하며, 끝나면 브라우저를 닫습니다." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "에이전트에게 동작 하나 관찰시키기" @@ -3819,7 +3819,7 @@ msgstr "에이전트에게 동작 하나 관찰시키기" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3831,7 +3831,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}코딩 에이전트" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3842,7 +3842,7 @@ msgstr "" "만들어지는지 알려줘.{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3851,7 +3851,7 @@ msgid "" msgstr "" "예제 프롬프트입니다. 에이전트에게 디버깅 엔드포인트 {ph0}과 페이지 URL을 알려주세요. 클릭하기 전에 캡처가 시작되도록 하세요." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -3860,23 +3860,23 @@ msgid "" msgstr "" "에이전트가 페이지 대상을 찾고 일정 시간 관찰한 뒤, 수집한 증거를 읽습니다. 이어서 내보내기에 사용된 스크립트를 살펴볼 수 있습니다." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "또는 터미널에서 캡처" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "페이지의 대상 ID를 찾으세요:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "페이지 찾기" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3884,14 +3884,14 @@ msgid "" "ID, then run:" msgstr "Notes 예제 URL의 대상을 고르세요. 아래 {ph0}를 해당 ID로 바꾸고 실행하세요:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "다음 10초 캡처" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3901,7 +3901,7 @@ msgstr "" "명령을 실행하고 연결될 때까지 몇 초 기다린 뒤, 해당 브라우저에서 {ph0}메모 내보내기{ph1}를 클릭하세요. 관찰 시간이 끝나면 " "결과가 나옵니다." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -3911,49 +3911,49 @@ msgstr "" "결과에는 선택한 페이지, 관찰 시간 동안의 네트워크 활동, JSON 응답 구조가 포함됩니다. 그 이전 요청은 이 캡처에 포함되지 " "않습니다." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "요청 및 내보내기 스크립트 읽기" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "로컬 Notes 예제에서 REA 4.1.0으로 기록" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "캡처한 사실" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "값" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "요청" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "응답" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "요청 시작자" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · 스크립트" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "응답 구조" @@ -3961,19 +3961,19 @@ msgstr "응답 구조" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph1}과 {ph2} 필드가 있는 {ph0}" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "로드된 스크립트 읽기" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3984,7 +3984,7 @@ msgstr "" "확인하세요:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3996,7 +3996,7 @@ msgstr "" "캡처는 이 클릭이 {ph0}을 요청했다는 사실을 입증합니다." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4006,7 +4006,7 @@ msgstr "{ph0}을 요청하는 스크립트를 찾아줘. 쉼표나 따옴표가 #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4027,102 +4027,102 @@ msgid "" "inspect the request and follow the export script." msgstr "REA로 메모 내보내기를 관찰하세요. 브라우저 페이지를 선택하고 클릭을 캡처한 뒤 요청과 내보내기 스크립트를 살펴봅니다." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "브라우저 관찰" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "예제 브라우저 시작 명령 복사" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "예제 프롬프트 복사" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "페이지 찾기 명령 복사" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "다음 10초 캡처 명령 복사" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "로드된 스크립트 읽기 명령 복사" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}홈{ph1} / 가이드" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA 가이드" -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 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:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "첫 번째 조사" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "REA 설정" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "코딩 에이전트를 연결하거나 터미널에서 REA를 사용하세요." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "REA 시작하기" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "기계 코드 프로그램" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "왼쪽/오른쪽 사운드 위치 계산 복구" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4130,22 +4130,22 @@ msgid "" msgstr "" "Windows 게임 실행 파일로 시작합니다. 명령어와 호출 함수를 추적하고 숫자 상수를 읽은 뒤, 복구한 C 코드를 검증합니다." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "기계 코드 프로그램 분석 가이드" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "CSV 내보내기 추적" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4154,37 +4154,37 @@ msgstr "" "작은 Notes 앱의 한 기능이 렌더러, 프리로드, 메인 프로세스에 걸쳐 구현돼 있습니다. REA로 API, IPC 채널, 파일 저장 " "코드를 연결해 보세요." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & Electron 가이드" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "브라우저 동작" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "클릭 관찰" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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 "작동하는 Notes 예제를 열어 내보내기 요청을 캡처하고, 응답으로 다운로드를 만드는 코드를 찾아봅니다." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "브라우저 관찰 가이드" @@ -4201,12 +4201,12 @@ msgid "" "CSV export and a browser request." msgstr "네이티브 코드의 계산, Electron CSV 내보내기, 브라우저 요청 등 짧은 실습 예제로 REA를 익혀보세요." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -4215,34 +4215,34 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Electron의 CSV{ph0}내보내기를 추적하세요" -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " "file writer." msgstr "버튼 클릭부터 페이지 API, Electron IPC를 거쳐 CSV 파일 저장까지 추적합니다." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "가이드 목차" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4250,7 +4250,7 @@ msgstr "{ph0}예제 소개{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4258,7 +4258,7 @@ msgstr "{ph0}에이전트에게 질문하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4266,7 +4266,7 @@ msgstr "{ph0}내보내기 코드 추적{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4274,20 +4274,20 @@ msgstr "{ph0}예제 실행하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "“메모 내보내기”는 어디로 이어질까요?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4298,7 +4298,7 @@ msgstr "" "이 가이드는 작은 Electron 앱을 사용합니다. {ph0}노트 내보내기{ph1}를 클릭하면 페이지의 API가 호출되고, 메인 " "프로세스를 거쳐 CSV 파일이 기록됩니다. 이 동작은 여러 파일에 걸쳐 구현되어 있습니다." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Electron 프로세스를 넘나드는 CSV 내보내기" @@ -4312,7 +4312,7 @@ msgstr "Electron 프로세스를 넘나드는 CSV 내보내기" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4328,7 +4328,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4345,7 +4345,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4358,13 +4358,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4374,14 +4374,14 @@ msgstr "" "REA는 리터럴 IPC 호출을 핸들러와 연결하고 노출된 API를 식별합니다. 이 경로는 코드에서 추론한 것이며, 런타임 캡처로 실제 " "실행을 확인할 수 있습니다." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "CSV 내보내기 질문하기" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4397,14 +4397,14 @@ msgstr "{ph0}에이전트에 REA를 연결{ph1}하고 앱 폴더나 ASAR 파일 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "복사" @@ -4415,7 +4415,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4426,7 +4426,7 @@ msgstr "" "만들어져?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4434,7 +4434,7 @@ msgid "" "{ph0}." msgstr "예제 프롬프트입니다. 앱 폴더 또는 {ph0}의 절대 경로를 포함하세요." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4444,17 +4444,17 @@ msgstr "" "REA가 앱 파일을 읽어 진입점, 모듈, 프로세스 경계의 연결 지도를 만듭니다. 에이전트는 이를 바탕으로 조사 범위를 내보내기 기능으로 " "좁힙니다." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "내보내기 코드 추적" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "페이지에서 작은 API를 호출합니다" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4463,7 +4463,7 @@ msgstr "페이지는 메서드 이름을 알고 있습니다. 실제 구현은 #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4474,7 +4474,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4484,14 +4484,14 @@ msgstr "" "핸들러를 읽으면 처음 질문의 답이 나옵니다. {ph0}이 메모를 변환하고, 메인 프로세스가 사용자의 다운로드 폴더에 {ph1}을 " "저장합니다." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 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:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "예제를 직접 분석해 보세요" @@ -4499,25 +4499,25 @@ msgstr "예제를 직접 분석해 보세요" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}예제 ZIP 다운로드{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "소스 파일 6개 살펴보기" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "정적 애플리케이션 분석" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4527,7 +4527,7 @@ msgstr "" "경로를 압축을 푼 폴더로 바꾸세요. {ph0}에서 IPC 채널 하나와 일치하는 핸들러 하나가 나와야 합니다. 소스 위치는 {ph1}에 " "있습니다." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4537,13 +4537,13 @@ msgstr "" "직접 고른 앱도 폴더나 ASAR 경로로 같은 명령을 실행하세요. 에이전트는 REA의 기능 추적 도구로 리터럴 문자열, API 이름, " "IPC 채널을 추적할 수 있습니다." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "CSV 저장 코드 살펴보기" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4551,7 +4551,7 @@ msgid "" "happens if writing the file fails?" msgstr "{ph0}에서 핸들러까지 추적해 줘. CSV 저장 함수에 어떤 입력이 전달되고, 파일 저장에 실패하면 어떻게 돼?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4565,7 +4565,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4578,7 +4578,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4590,7 +4590,7 @@ msgstr "{ph0}브라우저 내보내기 관찰{ph1}{ph2}실제 클릭을 캡처 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4613,32 +4613,32 @@ msgstr "" "REA로 렌더러 API, 프리로드, IPC 핸들러를 거쳐 Notes의 CSV 내보내기를 추적합니다. 다운로드 예제와 검증된 분석 결과를 " "제공합니다." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "예제 프롬프트 복사" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "정적 애플리케이션 분석 명령 복사" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -4647,34 +4647,34 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}홈{ph1} / {ph2}가이드{ph3} / 네이티브 분석" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 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:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "가이드 목차" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4682,7 +4682,7 @@ msgstr "{ph0}예제 소개{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4690,7 +4690,7 @@ msgstr "{ph0}에이전트에게 질문하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4698,7 +4698,7 @@ msgstr "{ph0}REA 결과 읽기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4706,18 +4706,18 @@ msgstr "{ph0}복구하고 검증하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "왼쪽/오른쪽 스테레오 사운드 위치 계산" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4726,7 +4726,7 @@ msgstr "DX-Ball에서는 벽돌에 맞으면 화면의 가로 위치를 전달 #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4737,7 +4737,7 @@ msgstr "" "시작 함수 {ph0}의 디컴파일 결과는 {ph1} 호출 하나로 짧습니다. REA는 명령어와 호출 함수도 반환하므로, 에이전트가 빠진 " "연산을 추적할 수 있습니다." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "이 용어들이 낯선가요?" @@ -4746,7 +4746,7 @@ msgstr "이 용어들이 낯선가요?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4756,7 +4756,7 @@ msgstr "{ph0}명령어:{ph1} 프로세서가 실행하는 단계로, {ph2}나 {p #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4768,7 +4768,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4779,7 +4779,7 @@ msgstr "{ph0}호출자:{ph1} 이 함수를 호출하는 함수입니다. 어떤 #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4789,7 +4789,7 @@ msgstr "{ph0}주소:{ph1} 프로그램 안의 위치로, {ph2}처럼 16진수로 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4797,7 +4797,7 @@ msgid "" "and decoded." msgstr "{ph0}상수:{ph1} 프로그램에 저장된 고정 숫자입니다. 원시 바이트를 읽어 값으로 해석합니다." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "세 가지 증거, 하나의 계산" @@ -4808,7 +4808,7 @@ msgstr "세 가지 증거, 하나의 계산" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4824,7 +4824,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4842,7 +4842,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4852,14 +4852,14 @@ msgstr "" "{ph0}03 · 데이터 바이트{ph1}{ph2}수치 상수{ph3}{ph4}참조된 바이트를 해석하면 {ph5}, {ph6}, 배율 값이 " "나옵니다.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 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:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "동작 질문하기" @@ -4868,7 +4868,7 @@ msgstr "동작 질문하기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4877,19 +4877,19 @@ msgid "" msgstr "" "{ph0}에이전트에 REA를 연결{ph1}하고 {ph2}네이티브 분석 도구를 설정{ph3}한 뒤, 로컬 실행 파일과 질문을 전달하세요:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "어떤 분석 도구를 쓰면 되나요?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA로 네이티브 프로그램을 읽으려면 다음 중 하나가 필요합니다:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4902,7 +4902,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4914,7 +4914,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4923,7 +4923,7 @@ msgstr "{ph0}IDA{ph1}(Windows): MCP가 등록된 기존 IDA 환경에서 사용 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -4937,14 +4937,14 @@ msgstr "절차는 {ph0}네이티브 분석 설정{ph1}을 참고하세요." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "복사" @@ -4955,7 +4955,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4965,7 +4965,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REA로 DX-Ball의 사운드 패닝 계산 방식을 찾아줘. 계산을 설명하고 코드도 " "보여줘.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -4975,7 +4975,7 @@ msgstr "" "예제 프롬프트입니다. 에이전트에게 로컬 DX-Ball 1.07 실행 파일의 경로를 알려주세요. REA에는 DX-Ball이 포함되어 있지 " "않으므로 보유한 복사본을 사용하거나, 가지고 있는 다른 작은 Windows 프로그램에 같은 종류의 질문을 해 보세요." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "파일의 전체 경로는 어떻게 얻나요?" @@ -4984,7 +4984,7 @@ msgstr "파일의 전체 경로는 어떻게 얻나요?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4998,7 +4998,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5010,7 +5010,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5018,30 +5018,30 @@ msgid "" "appears." msgstr "{ph0}모든 시스템:{ph1} 파일을 터미널 창으로 드래그하면 해당 경로가 나타납니다." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "REA 결과 읽기" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "입력 읽기" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 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:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "호출 함수 추적" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5051,12 +5051,12 @@ msgstr "" "REA가 벽돌 충돌을 처리하는 호출 함수를 식별합니다. 앞선 명령어에서 타일 좌표에 30을 곱하고 {ph0}(20)을 더해 벽돌의 화면 " "위치를 구합니다." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "참조된 상수 읽기" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5064,12 +5064,12 @@ msgid "" msgstr "" "연산은 이 주소들을 참조합니다. 바이트를 읽으면 실제 값을 알 수 있고, 명령어 순서는 그 값을 어떻게 사용하는지 알려줍니다." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "복구한 함수 작성 및 검증" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5079,7 +5079,7 @@ msgstr "" "배율이 1.0이면 화면 위치 0, 320, 640은 정수 변환 전에 각각 −500, 0, 500이 됩니다. 화면 중앙이 스테레오 음장의 " "중앙에 대응하는 계산입니다." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5091,20 +5091,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "직접 고른 바이너리로 시도하기" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5116,20 +5116,20 @@ msgstr "" "{ph0}네이티브 분석 도구를 연결{ph1}한 뒤, 로컬 실행 파일이나 라이브러리와 조사할 기능을 에이전트에게 전달하세요. “이 파일은 " "어떻게 파싱해?” 또는 “이 메뉴 동작은 어떤 함수가 처리해?” 같은 질문으로 시작할 수 있습니다." -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 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:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "함수 분석" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5141,7 +5141,7 @@ msgstr "" "대상 경로와 {ph0}를 실제 함수 이름이나 주소로 바꾸세요. CLI는 호출할 때마다 바이너리를 가져와 분석한 뒤 세션을 닫습니다. " "에이전트의 MCP 질의는 세션이 열려 있는 동안 가져온 바이너리를 재사용합니다." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5160,50 +5160,50 @@ msgid "" "caller, read constants and check reconstructed C." msgstr "REA로 네이티브 코드의 계산을 복구하세요. 명령어와 호출 함수를 추적하고 상수를 읽은 뒤 재구성한 C 코드를 검증합니다." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "기계 코드 프로그램 분석" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "예제 프롬프트 복사" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "함수 분석 명령 복사" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "REA 설정" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5211,7 +5211,7 @@ msgstr "{ph0}REA 설정{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5219,7 +5219,7 @@ msgstr "{ph0}공룡 게임{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5227,7 +5227,7 @@ msgstr "{ph0}계산기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5235,25 +5235,25 @@ msgstr "{ph0}REA 사용해 보기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}더 깊이 알아보기{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "코딩 에이전트와 함께하는 리버스 엔지니어링" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "소프트웨어가{ph0}어떻게 작동하는지 알아보세요" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "이 프롬프트를 코딩 에이전트에 붙여 넣으세요:" @@ -5266,33 +5266,33 @@ msgstr "이 프롬프트를 코딩 에이전트에 붙여 넣으세요:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "복사" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "터미널에서 직접 실행할 수도 있습니다:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "설정 변경 계획을 확인하고 승인한 뒤 에이전트를 다시 시작하세요." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5300,7 +5300,7 @@ msgstr "{ph0}01{ph1} 분기 해석" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5308,7 +5308,7 @@ msgstr "{ph0}02{ph1} 호출 추적" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5318,20 +5318,20 @@ msgstr "{ph0}03{ph1} 규칙 복구" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 · 어떤 분기인가요?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5339,29 +5339,29 @@ msgid "" "these?”" msgstr "“{ph0}0x5b? 0x5c?{ph1} 두 점프가 같은 위치로 향합니다. 이들은 어떤 연산자일까요?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "명령 ID를 찾아 분기가 뜻하는 연산을 표시합니다." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "나누기 ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "곱하기 ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · 호출된 함수는 무엇을 하나요?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5370,24 +5370,24 @@ msgid "" msgstr "" "“100은 분명합니다. 호출은 주소로만 표시되어 있습니다. {ph0}어느 함수가 나눗셈을 할까요? 어떤 값이 입력될까요?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "보조 함수를 살펴보고 저장된 값을 추적합니다." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "나누기" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · 규칙은 무엇입니까?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5395,19 +5395,19 @@ msgid "" "after +.”" msgstr "“이 경로는 다른 입력값을 곱하네. 그러니 + 다음의 {ph0}10%는 200의 10%를 뜻하는구나.{ph1}”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "피연산자에 이름을 붙이고 두 연산자의 경로를 모두 확인합니다." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "전문가의 추론 예시" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5423,87 +5423,87 @@ msgstr "{ph0}직접 명령어를 해석하고 호출을 추적해 계산을 재 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "분석 결과에 근거한 답변 예시" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA가 제공하는 정보" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "핸들러의 명령어, 디컴파일 코드, 호출 정보." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "에이전트가 설명하는 내용" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "어느 분기를 타는지, 무엇을 계산하며 어떻게 재현하는지." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "예제 01 · Chrome 공룡 게임" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "공룡은 왜 점점 빨라질까요?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "시작" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "점프 ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "다시 시작" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "속도" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "복구된 가속 규칙 사용" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "원래 규칙: 6에서 시작해 13을 향해 가속합니다." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "슬라이더를 움직여 원하는 속도를 설정하세요. 스페이스 바나 점프 버튼을 누르면 선인장을 뛰어넘습니다." @@ -5514,7 +5514,7 @@ msgstr "슬라이더를 움직여 원하는 속도를 설정하세요. 스페이 #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5527,18 +5527,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "분석 대상: {ph0}wayou의 Chromium 기반 브라우저 버전{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "속도 실험실 열기 →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "각 부분이 하는 일" @@ -5549,7 +5549,7 @@ msgstr "각 부분이 하는 일" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5565,7 +5565,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5581,7 +5581,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5591,13 +5591,13 @@ msgstr "" "{ph0}03 · 사용자{ph1}{ph2}속도를 바꾸고 플레이하기{ph3}{ph4}원래의 가속을 시험한 뒤 원하는 속도를 " "선택하세요.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "스크립트, 검증, 직접 분석하는 방법 보기" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5606,7 +5606,7 @@ msgid "" msgstr "" "REA는 로컬 디버깅 연결을 통해 HTTP 브라우저 버전을 검사하고, 소스와 다이제스트를 포함한 로드된 {ph0}를 반환했습니다." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5618,7 +5618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5633,7 +5633,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5649,41 +5649,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "{ph0}분석한 속도 코드{ph1} · {ph2}Chromium Authors · BSD 라이선스{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "예제 02 · Windows 계산기" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "계산기의 % 버튼을 재현해 봅니다" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "초기화" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "200의 10% = 20. 따라서 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "분석에서 확인한 백분율 규칙을 직접 조작해 보는 예제입니다." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5695,7 +5695,7 @@ msgstr "이 예제에서는 {ph0}이며 {ph1}입니다." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5706,7 +5706,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REA로 Windows 계산기의 % 버튼을 분석하세요. +와 × 연산 뒤에 적용되는 규칙을 복구하고, 두 " "규칙을 모두 사용하는 작은 계산기를 만드세요.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "+ 다음에는" @@ -5714,13 +5714,13 @@ msgstr "+ 다음에는" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "× 다음에는" @@ -5728,13 +5728,13 @@ msgstr "× 다음에는" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "설치된 앱에서 작동하는 % 버튼까지" @@ -5746,7 +5746,7 @@ msgstr "설치된 앱에서 작동하는 % 버튼까지" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5763,7 +5763,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5774,12 +5774,12 @@ msgstr "" "{ph0}03 · 코딩 에이전트의 해석{ph1}{ph2}규칙 설명과 재현{ph3}{ph4}분기를 Microsoft 소스 코드와 대조한 " "뒤, 위에서 +와 ×를 시험해 보세요.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "실제 코드 및 답변 확인 방법 보기" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -5799,7 +5799,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5808,80 +5808,80 @@ msgid "" msgstr "" "{ph0}백분율 구현{ph1} · {ph2}Microsoft 테스트 사례{ph3} · {ph4}네이티브 분석 설정 가이드{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "첫 번째 조사" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "작은 앱으로 REA를 써보세요" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " "input." msgstr "Notes 예제를 내려받아 CSV 내보내기를 추적하고, 입력 하나를 바꿔 검증해 보세요." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "안내에 따라 예제 실행하기" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "기계 코드 프로그램" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" " and libraries." msgstr "실행 파일과 라이브러리의 함수, 문자열, 참조, 호출 관계를 살펴봅니다." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "기계 코드 프로그램 분석 가이드" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "애플리케이션 폴더나 ASAR 아카이브에서 모듈, 라우트, IPC 및 네이티브 종속성의 구조를 파악합니다." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "애플리케이션 워크플로" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "브라우저 및 런타임 활동" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " "across runs." msgstr "선택한 브라우저나 프로세스의 활동을 캡처하고 실행별 결과를 비교합니다." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "브라우저 관찰 가이드" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "궁금한 점이 있나요?" @@ -5899,54 +5899,54 @@ msgid "" msgstr "" "코딩 에이전트와 함께 앱, 바이너리, 브라우저 동작을 분석하세요. REA 가이드를 따라 직접 조작할 수 있는 예제를 실행해 보세요." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "REA 설치 프롬프트 복사" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "설치 명령 복사" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "계산기 수동 분석 따라가기" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "계산기 백분율 질문 복사" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " "focused." msgstr "공룡 미니 게임. 게임에 포커스가 있을 때 점프 버튼을 사용하거나 Space 키를 누르세요." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "공룡 분석 프롬프트 복사" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "계산 선택" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "계산기 분석 프롬프트 복사" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -5955,25 +5955,25 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}홈{ph1} / {ph2}사례 소개{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "사례 연구 · Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "인증 앱은 로그인 코드를{ph0}어떻게 만들까요?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -5981,17 +5981,17 @@ msgid "" msgstr "" "6자리 코드는 30초마다 바뀝니다. REA로 Android APK에서 계산을 찾고, 시간을 조절할 수 있는 시계로 재현해 보세요." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android · 공식 릴리스 APK · 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "GitHub에서 Aegis 보기" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "APK에서 재현 가능한 코드까지" @@ -6002,7 +6002,7 @@ msgstr "APK에서 재현 가능한 코드까지" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6019,7 +6019,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6036,7 +6036,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6047,14 +6047,14 @@ msgstr "" "{ph0}03 · 재구축 및 확인{ph1}{ph2}시계를 변경하십시오. 코드를 보세요.{ph3}{ph4}새로운 브라우저 데모는 규칙을 " "재현하고 공개 참조 사례에 대해 확인합니다.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "사례 목차" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6062,7 +6062,7 @@ msgstr "{ph0}에이전트에게 질문하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6070,7 +6070,7 @@ msgstr "{ph0}코드 생성기 사용해보기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6078,7 +6078,7 @@ msgstr "{ph0}REA로 코드 찾기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6086,7 +6086,7 @@ msgstr "{ph0}계산 읽기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6094,20 +6094,20 @@ msgstr "{ph0}재구성 결과 검증{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "에이전트에게 질문하기" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6123,14 +6123,14 @@ msgstr "앱에 표시되는 로그인 코드는 계속 바뀝니다. {ph0}무엇 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "복사" @@ -6138,7 +6138,7 @@ msgstr "복사" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6148,7 +6148,7 @@ msgstr "" "다운로드한 APK를 분석하는 예시 프롬프트입니다. 먼저 REA의 Android 분석 환경을 설정하세요. {ph0}APK와 분석 설정 받기" " ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "코드 생성기 사용해보기" @@ -6156,7 +6156,7 @@ msgstr "코드 생성기 사용해보기" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6167,33 +6167,33 @@ msgstr "" "앱은 시간을 {ph0}30초 단위로 나눕니다.{ph1} 시간 구간 번호와 계정 키를 결합해 코드를 생성합니다. 같은 키와 같은 시간 " "구간이면 같은 코드가 나옵니다." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "60초 구간에서 시간 바꾸기" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "시간" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "초" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "시간을 조절할 수 있는 예제 시계" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30초 구간" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "구간" @@ -6202,35 +6202,35 @@ msgstr "구간" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "생성된 코드" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "계정 키 + 시간 구간 → 여섯 자리 숫자" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "예제 시간(초)" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59초" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60초" @@ -6239,7 +6239,7 @@ msgstr "60초" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6250,7 +6250,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6258,25 +6258,25 @@ msgid "" "the calculation recovered from the APK." msgstr "키는 공개된 {ph0}RFC 6238 테스트 데이터{ph1}로 고정돼 있습니다. 데모는 APK에서 복구한 계산을 구현합니다." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 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:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "REA로 코드 찾기" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "APK에서 클래스 3개로 좁히기" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6285,14 +6285,14 @@ msgid "" msgstr "" "{ph0}은 계산 코드의 후보이며, 나머지 둘은 진행률 표시줄과 가져온 계정에 관련됩니다. TOTP는 시간 기반 일회용 비밀번호입니다." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "코드 생성기와 앱 화면 연결" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6303,7 +6303,7 @@ msgstr "" " 확인할 수 있습니다." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6311,14 +6311,14 @@ msgid "" "{ph0} prefix." msgstr "요청의 입력 경로는 줄여 표시했습니다. 결과의 클래스 이름에서는 공통 접두사 {ph0}을 생략했습니다." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "계산 읽기" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6331,7 +6331,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6339,7 +6339,7 @@ msgstr "{ph0}01{ph1} 시간 구간" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6347,7 +6347,7 @@ msgstr "{ph0}02{ph1} 키 + 구간" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6355,7 +6355,7 @@ msgstr "{ph0}03{ph1} 여섯 자리" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6365,7 +6365,7 @@ msgstr "{ph0}시간으로 구간을 정합니다.{ph1} 30~59초는 모두 구간 #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6378,7 +6378,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6392,7 +6392,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6402,7 +6402,7 @@ msgstr "" "분석한 여러 메서드에서 발췌한 코드이며, 보기 편하도록 줄바꿈을 넣었습니다. 오른쪽 패널은 동작을 설명한 요약입니다. {ph0}Aegis" " 코드는 GPL-3.0 라이선스를 따릅니다.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "코드 생성기 내부" @@ -6411,7 +6411,7 @@ msgstr "코드 생성기 내부" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6421,7 +6421,7 @@ msgstr "" "배포된 APK에서는 {ph0}가 {ph1}에 들어 있습니다. REA는 {ph2}에서 이어지는 호출을 따라가 이 메서드 본문을 반환합니다." " 원본 소스에서 이 도우미의 이름은 {ph3}입니다." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6436,20 +6436,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "재구성 결과 검증" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6460,29 +6460,29 @@ msgstr "" "REA가 반환한 Java 메서드 중 필요한 것들을 작은 테스트 프로그램으로 묶었습니다. 시간 구간의 경계와 0으로 시작하는 코드를 포함한" " {ph0}테스트 133개{ph1}에서 출력이 독립적으로 재구현한 프로그램과 일치했습니다." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "예제 시간" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "6자리 코드" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30초" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109초" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6492,38 +6492,38 @@ msgstr "" "코드 생성기는 {ph0}RFC 6238{ph1}에 공개된 SHA-1 기준 사례 6개와도 일치합니다. 브라우저 구현도 이 사례로 확인해 " "보세요:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "기준 사례 검증 실행" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "데모 계산 읽기" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" "digit results." msgstr "기준 사례는 8자리를 사용합니다. 검사에서는 이에 대응하는 6자리 결과도 검증합니다." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " "was inspected statically." msgstr "검증할 때는 추출한 Java 메서드와 새 데모를 실행합니다. Android APK는 정적으로 분석했습니다." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "APK 직접 살펴보기" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6535,7 +6535,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6545,18 +6545,18 @@ msgstr "" "Android 분석에는 전체 JDK 17 이상이 필요합니다. {ph0}이나 {ph1}로 사용할 JDK를 지정하세요. 이 사례에서는 JDK" " 21을 사용했습니다." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6568,7 +6568,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6576,7 +6576,7 @@ msgid "" "different time interval?{ph1}" msgstr "다음 질문: {ph0}계정이 8자리 코드나 다른 시간 간격을 사용하면 어떻게 될까요?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "출처" @@ -6592,7 +6592,7 @@ msgstr "출처" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6606,13 +6606,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, 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:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6635,37 +6635,37 @@ msgid "" msgstr "" "REA로 Aegis Android APK를 분석해 6자리 로그인 코드의 계산을 복구하고, 시간을 조절할 수 있는 재구현을 실행해 보세요." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK 사례 연구" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Aegis 예제 프롬프트 복사" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "로그인 코드 계산 따라가기" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "APK 분석 명령 복사" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -6674,26 +6674,26 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "사례 연구 · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "CTF 바이너리에서{ph0}플래그를 찾으세요" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6701,17 +6701,17 @@ msgid "" "find an input that makes the original program print {ph0}." msgstr "REA로 작은 플래그 검사기를 분석하고 규칙을 방정식으로 바꿔, 원본 프로그램이 {ph0}을 출력하는 입력을 찾아봅니다." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "masked squares 플래그 검사기 · 쉬움 · Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "원본 문제 보기" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "바이너리에서 검증된 답까지" @@ -6722,7 +6722,7 @@ msgstr "바이너리에서 검증된 답까지" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6739,7 +6739,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6756,7 +6756,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6767,20 +6767,20 @@ msgstr "" "{ph0}03 · 풀이와 실행{ph1}{ph2}복원한 플래그 → Correct!{ph3}{ph4}Python 스크립트가 방정식을 풉니다." " REA는 원본 프로그램이 결과를 받아들이는 모습을 캡처합니다.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "joseph가 만든 문제이며 DownUnderCTF 공식 저장소에 공개돼 있습니다." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "사례 목차" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -6788,7 +6788,7 @@ msgstr "{ph0}검사 코드 찾기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -6796,7 +6796,7 @@ msgstr "{ph0}하나의 마스크 읽기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -6804,7 +6804,7 @@ msgstr "{ph0}어셈블리에서 읽기 쉬운 코드로{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -6812,7 +6812,7 @@ msgstr "{ph0}방정식 풀기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -6820,20 +6820,20 @@ msgstr "{ph0}정답 검증{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}직접 해보기{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "검사 코드 찾기" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6850,17 +6850,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "복사" @@ -6871,7 +6871,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6882,33 +6882,33 @@ msgstr "" "{ph0}›{ph1}{ph2}REA로 ms_flag_checker를 분석하고 플래그를 찾으세요. 검사 동작을 설명한 뒤 원래 프로그램으로" " 답을 검증하세요.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 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:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "입력 프롬프트에서 해당 함수로 추적" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 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:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "검사기와 보조 함수 두 개 읽기" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6919,7 +6919,7 @@ msgstr "" "첫 루프는 문자 코드 36개를 복사합니다. 검사 루프는 마스크를 해석해 선택한 코드를 더하고 저장된 수와 비교합니다. {ph1}바이트 " "범위를 {ph0}바이트씩 이동하므로 마스크는 26개입니다." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -6928,12 +6928,12 @@ msgstr "" "새로 수행한 REA 분석에서 일부 결과를 골랐습니다. 로컬 대상 경로는 표시용으로 줄였고, 주소는 REA가 가져온 이미지를 기준으로 " "합니다." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "하나의 검사로 문자 하나를 알아냅니다" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -6945,13 +6945,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "바이너리에서 마스크와 목표값 읽기" @@ -6960,7 +6960,7 @@ msgstr "바이너리에서 마스크와 목표값 읽기" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6971,12 +6971,12 @@ msgstr "" "명령어 {ph0}은 마스크 바이트를 부호 있는 값으로 읽습니다. 그래서 {ph1}은 −21을 뜻합니다. 목표값은 리틀 엔디언 정수입니다." " 이 바이트들로 {ph2}임을 알 수 있으므로 해당 문자는 {ph3}입니다." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "명령어에서 읽기 쉬운 검사 코드로" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -6985,7 +6985,7 @@ msgstr "단계를 선택해 합산 보조 함수와 호출 함수가 C 코드의 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -6993,7 +6993,7 @@ msgstr "{ph0}01{ph1} 시작" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7001,7 +7001,7 @@ msgstr "{ph0}02{ph1} 선택" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7009,7 +7009,7 @@ msgstr "{ph0}03{ph1} 더하기" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7017,18 +7017,18 @@ msgstr "{ph0}04{ph1} 다음 칸으로 이동" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} 비교" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA · 원본 명령어 발췌" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "읽기 쉬운 C 코드 · 검사 하나의 요약" @@ -7036,7 +7036,7 @@ msgstr "읽기 쉬운 C 코드 · 검사 하나의 요약" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7044,7 +7044,7 @@ msgstr "{ph0}01 · 0에서 시작합니다.{ph1} {ph2}에는 누적 합이 저 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7054,7 +7054,7 @@ msgstr "{ph0}02 · 마스크 셀을 확인합니다.{ph1} 0 값은 문자를 건 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7064,7 +7064,7 @@ msgstr "{ph0}03 · 문자 코드를 추가합니다.{ph1} 같은 오프셋에 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7077,7 +7077,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7087,7 +7087,7 @@ msgstr "" "{ph0}05 · 저장된 목표값과 비교합니다.{ph1} 호출 함수는 {ph2}로 합을 전달받습니다. 값이 일치하지 않으면 {ph3}로 " "분기합니다." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7096,12 +7096,12 @@ msgstr "" "명령어는 합산 보조 함수와 호출 함수에서 가져왔습니다. C 코드는 설명용 요약으로, 의미 있는 이름과 36개 칸을 한 번에 순회하는 " "루프를 사용했습니다." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "방정식 26개 풀기" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7111,13 +7111,13 @@ msgstr "" "대부분의 마스크는 여러 칸을 선택합니다. 첫 검사는 문자 코드 16개를 더해 합이 1441인지 확인합니다. 선택 영역들이 겹치므로 작은 " "Python 스크립트로 함께 풀 수 있는 연립방정식이 됩니다." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "파이썬 · 솔버 발췌" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7129,19 +7129,19 @@ msgstr "" "Z3는 이 방정식들을 만족하는 값을 찾는 솔버입니다. 발췌 코드는 추출한 검사를 사용하며, 영문자·숫자·밑줄·중괄호로 이루어진 {ph0}" " 플래그를 가정합니다. 전체 다운로드에는 마스크 26개와 목표값이 모두 들어 있습니다." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "전체 풀이 코드 다운로드" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "원본 프로그램으로 정답 검증" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7152,59 +7152,59 @@ msgstr "" "REA의 프로세스 캡처로 원본 실행 파일이 구한 플래그를 받아들이는 것을 기록했습니다. 선택된 문자 하나를 {ph0}에서 {ph1}로 " "바꾸면 첫 합계가 1441에서 1440이 되어 프로그램이 거부합니다." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "입력" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "관찰된 출력" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "종료 코드" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "솔버가 구한 플래그" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "한 문자 변경" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "복구된 플래그 및 캡처된 출력 표시" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA · 원본 프로그램 출력" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "플래그 복사" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 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:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "출처, 대상 식별 정보, 분석 세부 사항" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7214,7 +7214,7 @@ msgstr "" "2026년 10월 8일 Linux x64에서 REA 4.1.0과 Ghidra 12.1.4를 사용해 새로 분석하고 프로세스 실행을 두 차례" " 캡처했습니다. 바이너리는 심볼 정보가 제거된 x86-64 ELF이며, 크기는 15,248바이트입니다." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7236,7 +7236,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7244,25 +7244,25 @@ msgid "" "flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "{ph0}주최 측 소스와 비교{ph1} · {ph2}문제 메타데이터와 플래그{ph3} · {ph4}REA 증거 기록{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "직접 해보기" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 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:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "터미널 · 해결 및 실행" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7273,7 +7273,7 @@ msgstr "" "스크립트가 출력하는 후보 플래그를 프로그램 프롬프트에 붙여넣으세요. 풀이에는 Python과 {ph0}가 필요합니다. 원본 실행 파일은 " "Linux x86-64에서 실행해야 합니다." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "코딩 에이전트와 REA 설정하기" @@ -7293,27 +7293,27 @@ msgstr "" "REA로 DownUnderCTF의 masked squares flag checker를 풀어보세요. 검사 함수를 찾고 마스크를 추출한 뒤," " 복구한 플래그를 원본 프로그램으로 검증합니다." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF 플래그 검사기 사례 연구" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "CTF 예제 프롬프트 복사" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTF 마스크 방정식. 작은 화면에서는 가로로 스크롤하세요" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7323,42 +7323,42 @@ msgstr "" "일곱 번째 마스크는 21칸을 건너뛰고 위치 21을 선택한 뒤 14칸을 건너뜁니다. 이 칸만 합계에 포함됩니다. 필요한 문자 코드는 " "55이므로 문자는 7입니다." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "CTF 검사 과정 따라가기" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "CTF 어셈블리 복사" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "읽기 쉬운 CTF 검증 코드 복사" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "CTF 풀이 코드 발췌문 복사" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "복구한 플래그 복사" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "CTF 풀이 명령 복사" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -7367,26 +7367,26 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "사례 연구 · DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "실행 파일로부터{ph0}DX-Ball 재구성하기" # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7395,14 +7395,14 @@ msgstr "" "목표는 1996년에 나온 Windows 게임을 유지보수 가능한 C 코드로 재구성하는 것입니다. REA는 에이전트가 원본 함수를 하나씩 " "분석하도록 돕습니다." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 · C · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7413,14 +7413,14 @@ msgstr "" "함수 하나를 실행 파일에서 검증된 C 코드로 복구합니다. REA는 명령어, 호출 함수, 데이터 읽기 결과를 제공하고 재구성 프로젝트가 " "구현과 테스트를 맡습니다. {ph0}그림 열기{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "사례 목차" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7428,7 +7428,7 @@ msgstr "{ph0}프로젝트{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7436,7 +7436,7 @@ msgstr "{ph0}사운드 패닝{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7444,23 +7444,23 @@ msgstr "{ph0}결과 확인{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "유지보수 중인 C 함수" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "원본 코드와의 비교" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "컴파일된 바이트가 일치하는 함수" @@ -7471,7 +7471,7 @@ msgstr "컴파일된 바이트가 일치하는 함수" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7479,12 +7479,12 @@ msgid "" "coverage{ph3}" msgstr "프로젝트 체크포인트: 2026년 10월 7일. {ph0}진행 기록{ph1} · {ph2}테스트 범위{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "지금까지의 프로젝트" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7496,12 +7496,12 @@ msgstr "" "복구된 코드는 보드와 리소스 처리, 벽돌 충돌, 애니메이션, 파티클, 보너스 생성을 다룹니다. 현재 빌드는 분석 유틸리티와 라이브러리를 " "제공합니다. 플레이 가능한 게임을 위해 공·패들의 물리, 파워업 처리, Windows 통합 작업이 계속되고 있습니다." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "왼쪽/오른쪽 사운드 위치 계산 찾기" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7517,17 +7517,17 @@ msgstr "벽돌에 맞으면 가로 위치가 사운드 코드로 전달됩니다 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "복사" @@ -7538,7 +7538,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7548,7 +7548,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REA로 DX-Ball의 사운드 패닝 계산 방식을 찾아줘. 계산을 설명하고 코드도 " "보여줘.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7559,7 +7559,7 @@ msgstr "" "있습니다." # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7572,7 +7572,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7584,30 +7584,30 @@ msgstr "" "{ph0}의 첫 함수 분석 결과에는 {ph1}을 선언하고 {ph2}를 호출하는 의사 코드가 포함되어 있었습니다. 명령어 보기에는 스택 " "입력과 부동 소수점 연산이 나타났습니다. 이 불일치는 에이전트가 조사를 계속할 구체적인 근거가 되었습니다." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "첫 디컴파일 결과" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 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:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "REA로 답을 찾은 세 가지 질문" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "누락된 입력 복구" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7616,14 +7616,14 @@ msgid "" msgstr "" "함수 결과에는 의사 코드, 호출 함수와 함께 명령어가 포함됩니다. 여기서는 {ph0}이 디컴파일 결과에 빠진 정수 입력을 드러냅니다." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "호출 함수를 따라 입력 의미 확인" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7633,24 +7633,24 @@ msgstr "" "REA는 첫 결과에서 이 호출 함수를 식별했습니다. 앞선 명령어는 {ph0}에 30을 곱하고 20을 더해 벽돌의 화면 좌표 {ph1}을 " "구합니다." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "메모리 주소 뒤에 있는 값 읽기" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 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:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "REA 분석 결과에서 C 코드로" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -7659,7 +7659,7 @@ msgstr "아래 다섯 단계를 선택해 보세요. 각 단계에 해당하는 #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -7667,7 +7667,7 @@ msgstr "{ph0}01{ph1} 입력" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -7675,7 +7675,7 @@ msgstr "{ph0}02{ph1} 곱하기" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -7683,7 +7683,7 @@ msgstr "{ph0}03{ph1} 빼기" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -7691,18 +7691,18 @@ msgstr "{ph0}04{ph1} 배율 적용" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "원본 x86 · 발췌" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "재구성한 C 코드" @@ -7712,7 +7712,7 @@ msgstr "재구성한 C 코드" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7730,7 +7730,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7746,7 +7746,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7763,7 +7763,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7779,7 +7779,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7790,7 +7790,7 @@ msgstr "" "{ph0}05 · 정수를 반환합니다.{ph1} {ph2}의 호출은 {ph3}로 이어지며, 이는 REA의 피호출 함수 결과에서 확인됩니다." " C 코드는 결과를 {ph4}로 형 변환합니다. 원본 x86 코드와의 비교로 반환값을 검사합니다." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -7799,23 +7799,23 @@ msgid "" msgstr "" "어셈블리 발췌문은 입력, 연산, 반환 명령어를 골라 보여줍니다. 아래 전체 목록에는 중간 저장과 함수의 준비·정리 명령도 포함됩니다." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "전체 어셈블리와 근거 자료" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA 결과 · 0x406400–0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "호출하는 함수가 제공하는 것" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7823,54 +7823,54 @@ msgid "" "then pushes it before the call:" msgstr "{ph0}의 벽돌 충돌 함수는 타일 좌표에 30을 곱하고 20을 더한 뒤, 호출 전에 스택에 넣습니다:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "데이터 읽기로 확인한 값" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "주소" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "값" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "용도" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "첫 번째 곱셈" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "빼기" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0}의 초깃값" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "저장된 패닝 배율" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -7886,7 +7886,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7894,24 +7894,24 @@ msgid "" "references{ph3}" msgstr "{ph0}유지보수 중인 소스{ph1} · {ph2}조사 메모와 증거 참조{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "복구한 함수 검증" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 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:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "동작 검증 사례 3,205개" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -7921,12 +7921,12 @@ msgstr "" "테스트는 원래 x86 함수를 실행하고 그 반환값을 유지보수 중인 C 코드의 반환값과 비교합니다. 팬 스케일 0, 0.5, 1, 20, " "−1의 다섯 가지 값에 대해 0부터 640까지의 모든 정수 위치를 검사합니다." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "바이트 63개 일치" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -7936,7 +7936,7 @@ msgstr "" "C 함수는 버전이 고정된 VC4.0 도구 모음으로 컴파일됩니다. 검토된 재배치를 적용하고 참조된 상수를 확인하면 컴파일러 재현 결과가 " "함수 전체와 일치합니다." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -7950,18 +7950,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "조사 이어가기" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -7971,7 +7971,7 @@ msgstr "" "파티클 갱신, 폭발 대기열, 보너스 생성에도 같은 방법을 사용합니다. 관련 함수를 살펴 상태와 의존 관계를 복구한 뒤 구현을 원본과 " "비교합니다." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -7979,7 +7979,7 @@ msgid "" msgstr "" "사운드 패닝 함수를 직접 분석하려면 DX-Ball 프로젝트의 설정 지침을 따르고 일치하는 원본 파일을 준비하세요. 그런 다음 실행하세요:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "체크아웃한 DX-Ball 폴더에서" @@ -7988,7 +7988,7 @@ msgstr "체크아웃한 DX-Ball 폴더에서" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8000,7 +8000,7 @@ msgstr "{ph0}DX-Ball 저장소{ph1}{ph2}현재 소스, 진행 상황, 로컬 설 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8014,7 +8014,7 @@ msgstr "{ph0}REA 분석 절차{ph1}{ph2}계산 과정을 따라가고, 직접 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8036,13 +8036,13 @@ msgstr "" "REA를 활용한 DX-Ball 바이너리 분석부터 유지보수 가능한 C 코드, 원본 x86 테스트, 컴파일된 함수 바이트 일치까지 " "살펴봅니다." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 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:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8055,87 +8055,87 @@ msgstr "" "명령어는 x를 읽고 1.5625를 곱한 뒤 500.0을 빼고 pan_scale을 적용해 정수를 반환합니다. C 코드는 원본 x86과 " "3,205개 사례를 비교하고, VC4.0 컴파일러 재현으로 63바이트 일치를 확인합니다." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball 재구성 사례 연구" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "예제 프롬프트 복사" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "사운드 패닝 계산 따라가기" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "원본 어셈블리 발췌문 복사" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "사운드 패닝 함수 복사" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "전체 사운드 패닝 어셈블리 복사" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "DX-Ball 분석 명령 복사" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}홈{ph1} / 사례 소개" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA 사례 연구" -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" " results." msgstr "Android, 게임, Electron, CTF 문제를 코드, 그림, 검증 결과와 함께 살펴봅니다." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android · APK 분석" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "인증 앱이 로그인 코드를 만드는 방법" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8145,22 +8145,22 @@ msgstr "" "Aegis 배포 APK에서 6자리 코드 계산을 찾습니다. REA로 생성 메서드를 추적하고 데모 시계를 조절하며, 코드가 30초마다 바뀌는" " 이유를 확인합니다." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Android 사례 연구 읽기" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF · 네이티브 분석" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "CTF 플래그 검사기 풀기" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8170,22 +8170,22 @@ msgstr "" "REA로 쉬운 DownUnderCTF 문제를 분석합니다. 검사 함수를 찾고 마스크와 합계를 방정식으로 바꾼 뒤, 구한 플래그를 원본 " "프로그램으로 검증합니다." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "CTF 사례 연구 읽기" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "네이티브 프로그램 · 재구현" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball의 사운드 패닝 계산" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8195,22 +8195,22 @@ msgstr "" "1996년 Windows 게임에서 사운드 패닝 계산을 복구합니다. REA의 명령어, 호출 참조, 숫자 상수로 작은 C 함수를 작성하고 " "원본 동작 및 컴파일된 63바이트 전체와 비교합니다." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ball 사례 연구 읽기" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron · 기능 추적" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Notion이 텍스트와 HTML을 복사하는 방법" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8220,22 +8220,22 @@ msgstr "" "Notion에 패키징된 JavaScript에서 페이지 API를 추적합니다. IPC 래퍼를 따라 시스템 클립보드에 도달하고, 작은 HTML" " 마커가 복사본과 서식 있는 블록 데이터를 연결하는 방식을 살펴봅니다." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Notion 사례 연구 읽기" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS · 재구성" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "TH04가 원형 탄막을 조준하는 방법" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8245,17 +8245,17 @@ msgstr "" "REA로 원본 16비트 각도 보조 함수를 분석합니다. 곱셈, 나눗셈, 좌표 연산을 읽기 쉬운 C++과 연결하고, 플레이어를 겨냥한 원형 " "탄막을 만드는 방식을 살펴봅니다." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "TH04 사례 연구 읽기" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "단계별 가이드" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8264,7 +8264,7 @@ msgstr "" "네이티브 계산, Electron 내보내기, 브라우저 요청을 단계별로 살펴봅니다. 각 가이드는 프롬프트와 구체적인 분석 대상으로 " "시작합니다." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "가이드 읽기" @@ -8283,12 +8283,12 @@ msgstr "" "REA의 분석을 코드, 그림, 데모로 따라가 보세요. Android 인증 앱, DX-Ball, Notion, TH04, " "DownUnderCTF 플래그 검사기를 다룹니다." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -8297,37 +8297,37 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "사례 연구 · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " "process, to Electron's clipboard writer." msgstr "Notion 페이지 API에서 프리로드와 메인 프로세스를 거쳐 Electron의 클립보드 쓰기까지 추적합니다." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 · JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Notion 데스크톱 패키지의 브리지" @@ -8339,7 +8339,7 @@ msgstr "Notion 데스크톱 패키지의 브리지" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8356,7 +8356,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8371,7 +8371,7 @@ msgstr "{ph0}02 · 프리로드 래퍼{ph1} {ph2}{ph3}{ph4} {ph5}래퍼는 채 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8388,7 +8388,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8399,13 +8399,13 @@ msgstr "" "기록합니다.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8414,14 +8414,14 @@ msgstr "" "패키지 코드의 프리로드와 메인 프로세스는 같은 채널을 사용합니다. 래퍼의 구현을 따라가면 그 이름 뒤에 있는 Electron 호출을 " "확인할 수 있습니다." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "사례 목차" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8429,7 +8429,7 @@ msgstr "{ph0}클립보드 브리지 추적{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8437,19 +8437,19 @@ msgstr "{ph0}블록 구조 유지{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "복사 작업은 어디로 이어질까요?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8468,17 +8468,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "복사" @@ -8489,7 +8489,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8499,19 +8499,19 @@ msgstr "" "{ph0}›{ph1}{ph2}REA를 사용해 Notion이 텍스트와 HTML을 시스템 클립보드에 복사하는 과정을 추적해 주세요. 각 " "단계의 코드를 보여 주세요.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA로 읽기 시작할 위치 찾기" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8521,13 +8521,13 @@ msgstr "" "REA로 탭 프리로드를 분석하면 페이지에 노출된 API와 IPC 요청 호출을 찾습니다. 두 결과에는 압축된 번들의 소스 범위가 함께 " "제공됩니다:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA 분석 결과 → 살펴볼 위치 두 곳" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8540,7 +8540,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8553,25 +8553,25 @@ msgstr "" "{ph1}을 전달합니다. 이 이름 덕분에 에이전트는 메인 번들에서 무엇을 찾아야 할지 정확히 알 수 있습니다. 아래 네 발췌문은 " "에이전트가 연결한 경로를 보여줍니다." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "네 개의 짧은 코드 조각" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 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:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "페이지에 노출된 API에서 시작" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8580,13 +8580,13 @@ msgid "" msgstr "" "이 멤버는 채널 이름을 제공합니다. {ph0}의 구현을 보면 요청이 페이지의 프로세스에서 어떻게 전달되어 나가는지 알 수 있습니다." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "프리로드 래퍼의 구현 추적" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8595,14 +8595,14 @@ msgid "" msgstr "" "반환된 함수는 Electron의 요청·응답 IPC로 인수를 전달합니다. 이제 메인 프로세스에서 {ph0}을 찾을 수 있습니다." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "수신 핸들러 등록 방식 확인" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8610,12 +8610,12 @@ msgid "" "receiver for that channel." msgstr "메인 프로세스도 래퍼를 사용합니다. {ph0} 메서드가 해당 채널에 {ph1} 수신 핸들러를 등록합니다." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "쓰기 호출과 발신자 검사 찾기" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -8625,13 +8625,13 @@ msgstr "" "여기가 최종 도착점입니다. 발신자를 확인한 뒤 핸들러는 전달받은 데이터를 Electron 클립보드 API에 넘깁니다. 채널과 두 래퍼의 " "구현을 통해 노출된 메서드와 이 호출이 연결됩니다." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "복사한 블록은 구조를 어떻게 유지할까요?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8641,27 +8641,27 @@ msgstr "" "Notion의 웹 편집기는 {ph0}를 통해 텍스트와 HTML을 보냅니다. 블록 데이터는 로컬에 유지하고, 복사한 HTML에 ID를 넣어" " 둘을 연결합니다." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "HTML과 저장된 블록 데이터의 연결" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "HTML의 ID 읽기" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "같은 로컬 ID 찾기" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Notion 블록 데이터 복원" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -8670,29 +8670,29 @@ msgstr "" "텍스트와 ID는 예시입니다. 기록된 모듈 테스트에서는 ID가 같으면 블록 데이터를 복원하고, 저장 항목이 만료됐으면 텍스트와 HTML만 " "반환합니다." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." " Matching IDs restore the block data." msgstr "붙여넣을 때 Notion은 HTML의 ID를 찾아 저장된 사본과 대조합니다. ID가 일치하면 블록 데이터를 복원합니다." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "2026년 7월 13일 캐시된 웹 자산에서 기록한 클립보드 형식입니다." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "추가 예제와 출처" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "다른 예제: Markdown 표" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -8700,25 +8700,25 @@ msgid "" msgstr "" "Notion은 Markdown을 파싱해 블록 데이터로 바꿉니다. 이 예제는 표가 머리글 행과 데이터 행으로 바뀌는 과정을 보여줍니다." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Notion Markdown 파서를 거친 표" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 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:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "다른 경로: 오프라인 SQLite 연결" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8730,7 +8730,7 @@ msgstr "" "Notion의 렌더러는 IPC를 통해 {ph0}를 요청합니다. 메인 프로세스는 메시지 채널을 만들고 한쪽 포트는 렌더러에, 다른 쪽 " "포트는 SQLite 유틸리티 프로세스에 전달합니다. 이후의 SQL 문 배치와 결과는 이 포트를 통해 오갑니다." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -8738,7 +8738,7 @@ msgid "" msgstr "" "이 전달 과정을 추적하면 데이터베이스 작업이 어디서 실행되는지, 첫 IPC 요청만 추적하면 왜 이후 통신을 놓치는지 알 수 있습니다." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "출처 및 발췌문 읽기 방법" @@ -8746,7 +8746,7 @@ msgstr "출처 및 발췌문 읽기 방법" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8762,7 +8762,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8776,7 +8776,7 @@ msgstr "" " 가져왔습니다. 이 자산에는 별도 버전이 있습니다. 저장된 실험에서는 추출한 모듈과 작은 테스트 코드를 실행했습니다. 출력은 해당 실험의" " 결과이며 데스크톱 UI 세션을 캡처한 것은 아닙니다." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -8788,7 +8788,7 @@ msgstr "" " 찾습니다. 클립보드 멤버와 대응 수신부는 패키지의 래퍼 구현을 읽어 연결했습니다." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8804,7 +8804,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8816,7 +8816,7 @@ msgstr "{ph0}JavaScript 앱 가이드{ph1}{ph2}작은 Electron 앱의 내보내 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8839,52 +8839,52 @@ msgstr "" "짧은 코드 발췌로 Notion 클립보드 API를 Electron의 프리로드, IPC 래퍼, 메인 프로세스까지 추적하고 서식 있는 클립보드" " 형식을 살펴봅니다." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron 사례 연구" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Notion 분석 프롬프트 복사" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Notion 프리로드 발췌문 복사" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Notion invoke 래퍼 발췌문 복사" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Notion 핸들러 래퍼 발췌문 복사" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Notion 클립보드 수신부 발췌문 복사" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "붙여넣을 때 서식 있는 클립보드 데이터 복원" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "맨 위로" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -8893,25 +8893,25 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "사례 연구 · 동방 4:로터스 랜드 스토리" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -8920,17 +8920,17 @@ msgstr "" "원형 탄막은 짧은 각도 계산에서 시작됩니다. REA로 원본 DOS 함수를 분석하고, 명령어가 읽기 쉬운 C++로 어떻게 이어지는지 " "살펴보세요." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 ·16 비트 도스 · C++및 어셈블리" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "TH04 재구성 보기" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "원본 명령어에서 검증된 소스까지" @@ -8941,7 +8941,7 @@ msgstr "원본 명령어에서 검증된 소스까지" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8957,7 +8957,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8974,7 +8974,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8990,7 +8990,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9001,21 +9001,21 @@ msgstr "" "{ph0}04 · 소스 확인{ph1}{ph2}일치하는 바이트 2,139개{ph3}{ph4}기록된 컴파일러 검사는 이 도우미가 포함된 탄환" " 생성 코드를 다룹니다.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 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:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "사례 목차" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9023,7 +9023,7 @@ msgstr "{ph0}원형 탄막{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9031,7 +9031,7 @@ msgstr "{ph0}REA의 반환 결과{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9039,7 +9039,7 @@ msgstr "{ph0}어셈블리에서 C++로{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9047,18 +9047,18 @@ msgstr "{ph0}소스 검증{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}전체 프로젝트{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "원형 탄막이 플레이어를 조준하는 방식" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9076,16 +9076,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "복사" @@ -9096,7 +9096,7 @@ msgstr "복사" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9106,7 +9106,7 @@ msgstr "" "{ph0}›{ph1}{ph2}REA로 TH04가 원형 탄막을 만들고 플레이어를 조준하는 방식을 찾아줘. 계산을 설명하고 코드도 " "보여줘.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9114,7 +9114,7 @@ msgid "" msgstr "원본 실행 파일과 체크아웃한 재구성 저장소를 로컬에 준비한 상태에서 사용하는 예제 프롬프트입니다." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9127,7 +9127,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9135,12 +9135,12 @@ msgid "" "40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "탄환 수 16, 플레이어 방향 40, 템플릿 회전 0일 때 복구한 각도 계산을 그린 예시입니다. {ph0}그림 열기{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "복구된 소스의 발사 템플릿" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly의 원형 탄막 공격 · 소스 발췌" @@ -9149,7 +9149,7 @@ msgstr "Elly의 원형 탄막 공격 · 소스 발췌" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9157,13 +9157,13 @@ msgid "" "{ph0}Read the attack's source{ph1}." msgstr "난이도와 성능 조정 전에 패턴을 선택하는 코드입니다. {ph0}공격 소스 읽기{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REA가 반환하는 내용" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9174,19 +9174,19 @@ msgstr "" "각 탄환의 속도와 각도를 정하는 함수 {ph0}을 분석합니다. REA는 명령어, 의사 코드, 참조를 반환합니다. 결과의 세 부분으로 이 " "패턴을 설명할 수 있습니다." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "코드를 읽기 전에 DOS 이미지 검증" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 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:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "원형 탄막의 곱셈·나눗셈 읽기" @@ -9194,7 +9194,7 @@ msgstr "원형 탄막의 곱셈·나눗셈 읽기" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9205,12 +9205,12 @@ msgstr "" "{ph0}에는 탄환 인덱스가 있습니다. 시프트로 256을 곱한 뒤, {ph1}에서 읽은 탄환 수로 나눕니다. 유지보수 중인 소스에서는 이" " 필드를 {ph2}라고 부릅니다. 전체 과정은 아래에 있습니다." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "패턴이 플레이어 쪽으로 향하는 위치 찾기" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9221,12 +9221,12 @@ msgstr "" "명령어의 피연산자에서 두 좌표의 차이와 방향 보조 함수를 확인할 수 있습니다. 반환된 각도는 원형 탄막의 상대 각도에 더해집니다. 소스의" " 이름은 주소의 의미를 알려주고, REA는 그 뒤의 원본 연산을 확인하게 해줍니다." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "어셈블리에서 읽기 쉬운 C++로" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9238,7 +9238,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9246,7 +9246,7 @@ msgstr "{ph0}01{ph1} 인덱스" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9254,7 +9254,7 @@ msgstr "{ph0}02{ph1} 간격 배치" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9262,7 +9262,7 @@ msgstr "{ph0}03{ph1} 조준" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9270,18 +9270,18 @@ msgstr "{ph0}04{ph1} 회전" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} 저장" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA · 원본 16비트 명령어" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "읽기 쉬운 C++ · 조준 원형 탄막 요약" @@ -9289,7 +9289,7 @@ msgstr "읽기 쉬운 C++ · 조준 원형 탄막 요약" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9303,7 +9303,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9318,7 +9318,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9332,7 +9332,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9346,7 +9346,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9358,7 +9358,7 @@ msgstr "" "{ph0}05 · 최종 각도를 한 바이트에 저장합니다.{ph1} 저장 명령은 {ph2} 값을 생성 각도 필드에 기록합니다. 부호 없는 " "바이트로 형 변환할 때와 마찬가지로, 값이 255를 넘으면 0부터 순환합니다. 주변 소스는 이 각도와 속력을 속도 벡터로 변환합니다." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9368,7 +9368,7 @@ msgstr "" "어셈블리는 조준 원형 탄막 분기, 조준 계산, 최종 저장을 발췌한 것입니다. 위 C++는 읽기 쉬운 요약입니다. 아래 컴파일러 검증은 " "연결된 프로젝트의 실제 유지보수 소스에 적용됩니다." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "원형 탄막과 조준의 유지보수 소스 읽기" @@ -9385,7 +9385,7 @@ msgstr "원형 탄막과 조준의 유지보수 소스 읽기" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9393,12 +9393,12 @@ msgid "" "representation{ph5}" msgstr "{ph0}원형 탄막 매크로{ph1} · {ph2}조준·속도 소스{ph3} · {ph4}각도 표현{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "유지보수 소스 검증" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -9407,24 +9407,24 @@ msgstr "" "TH04 프로젝트에 기록된 검사에서는 버전을 고정한 Turbo C++ 4.0J 도구 모음으로 이 도우미 함수를 포함한 탄환 생성 코드를 " "컴파일합니다." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139바이트 일치" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "컴파일된 탄환 생성 코드는 원본 실행 파일의 2,139바이트 구간과 일치합니다." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "독립적인 클린 빌드 두 번" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9435,65 +9435,65 @@ msgstr "별도로 빌드한 두 결과가 같은 바이트로 일치합니다. #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "2026년 10월 3일 기록. {ph0}컴파일러 검증 읽기{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "대상 식별 정보와 분석 범위" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "원본 대상" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "보조 함수 진입점" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "REA가 로드한 이미지의 {ph0}" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "원본 파일 오프셋" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph1}이 반환한 {ph0}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "기록된 코드 분석" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 · 2026년 10월 7일" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9501,7 +9501,7 @@ msgid "" msgstr "컴파일러 검사는 이 도우미 함수를 포함한 전체 탄환 추가 코드 섹션을 다룹니다. MAP 기여분과 겹치는 재배치도 비교합니다." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9514,7 +9514,7 @@ msgstr "" "전체 517바이트 범위 안의 두 구간에 본문 503바이트가 있다고 보고합니다. 위 발췌 명령어는 이 구간에 속합니다." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9528,7 +9528,7 @@ msgstr "" "사용했으며, 이 페이지는 같은 원본 대상을 REA로 새로 분석한 결과를 추가합니다. 게임의 식별 정보는 저장소 매니페스트로 고정돼 " "있지만, 독립적인 무변경 덤프의 출처 확인은 아직 남아 있습니다." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9537,12 +9537,12 @@ msgid "" msgstr "" "그림은 각도 계산을 설명합니다. 전체 게임의 조작, 타이밍, PC-98 하드웨어 동작은 재구성 프로젝트에서 별도로 런타임 검증합니다." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "전체 TH04 재구성" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9554,7 +9554,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9566,7 +9566,7 @@ msgstr "{ph0}TH04 저장소 살펴보기{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9580,7 +9580,7 @@ msgstr "{ph0}탄환 생성 소스{ph1}{ph2}전체 보조 함수, 다른 패턴 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9595,7 +9595,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9618,28 +9618,28 @@ msgstr "" "REA로 TH04의 원래 16비트 DOS 코드를 분석하세요. 어셈블리와 복구된 C++ 코드를 따라가며 탄환이 원형으로 배치되고 플레이어를" " 조준하는 방식을 살펴보세요." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 탄막 패턴 사례 연구" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "TH04 예제 프롬프트 복사" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 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:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -9650,27 +9650,27 @@ msgstr "" "탄환 16개의 원형 탄막을 그린 두 그림입니다. 고정 탄막은 각도 0에서 시작합니다. 플레이어 방향 40을 더하면 모든 방향이 같은 만큼" " 회전하며, 강조한 첫 탄환은 플레이어를 향합니다. 둘 다 16각도 단위, 즉 22.5도 간격을 유지합니다." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "TH04 발사 템플릿 복사" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "TH04 조준 원형 탄막 계산 따라가기" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "TH04 어셈블리 발췌문 복사" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "읽기 쉬운 조준 원형 탄막 계산 복사" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "맨 위로" @@ -10139,597 +10139,597 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "사례" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "블로그" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "시작하기" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "가이드" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "소스 코드" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT 라이선스" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "커뮤니티 참여" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "X에서 팔로우" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA · 선택한 스크립트 소스" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "소스 코드" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "예상 포맷터 출력" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "명령어" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "호출자" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "상수" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C 함수" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "버튼" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "프리로드 API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV 파일" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "클릭" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "캡처된 요청" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "내보내기 스크립트" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA 결과 · summary.ipc 발췌" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA 명령어 발췌 · 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA 호출 함수 발췌 · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA 바이트 결과 · 리틀 엔디언 double 값으로 해석" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "복구된 C · 발췌" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "사례 소개 →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "분석한 스크립트의 주요 설정" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "% 핸들러의 읽기 쉬운 요약" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA · 선택한 원본 명령어" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "연산자 ID · Microsoft 소스 코드" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "에이전트 → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → 에이전트 · 결과 발췌" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → 에이전트 · 메서드와 호출 함수" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA · 디컴파일한 Java 발췌" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "읽을 수 있는 요약 · 에이전트의 해석" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA · generateOTP, 함수 본문 전체" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Aegis APK 다운로드" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Android 분석 도구 다운로드" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "에이전트 → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → 에이전트 · 결과 발췌" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → 에이전트 · 선택한 명령어" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "에이전트 → REA · read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → 에이전트 · 일곱 번째 항목" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "원본 실행 파일 · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "원본 문제 다운로드" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "풀이 코드 다운로드" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA 결과 · 의사 코드 발췌" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "에이전트 → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → 에이전트 · 명령어 발췌문" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → 에이전트 · 호출 함수 발췌" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA 바이트 분석 결과 · 배정밀도 부동소수점으로 해석" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "직접 고른 대상으로 시작하기" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "코드 생성 로직" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "복구한 규칙" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "조절 가능한 시계" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "바이너리" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "검사 코드" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "방정식" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "정답!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "실행 파일" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA 분석 결과" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "복원한 C 코드" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "검증" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "패키지 앱" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "노출된 API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC 래퍼" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "클립보드" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "원본 DOS 코드" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA 명령어" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "각도 계산" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "원형 탄막" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "노출된 페이지 API" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "렌더러의 IPC 호출" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "시스템 클립보드로 전송됨" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Notion이 로컬에 저장" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "마크다운 입력" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "구조화된 파서 출력 · 발췌" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "자신의 앱 분석" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "에이전트 → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → 에이전트 · 선택한 필드" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "에이전트 → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → 에이전트 · 명령어 발췌문" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "같은 함수 결과 · 조준 부분 발췌" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "대응하는 유지보수 C++ 코드" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "원형 탄막 매크로 · TH04 분기 발췌" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "각도와 속도 벡터 · 소스 발췌" @@ -10762,7 +10762,7 @@ msgstr "번역을 업데이트하고 있습니다. 우선 영어 페이지를 #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10779,7 +10779,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10799,7 +10799,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10818,7 +10818,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -10836,7 +10836,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10848,7 +10848,7 @@ msgstr "" "승인을 받은 뒤 실행해 줘. 마지막으로 설치를 확인해 줘.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" @@ -10856,7 +10856,7 @@ msgstr "재구현 · {ph0}" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10865,7 +10865,7 @@ msgid "" msgstr "{ph0}와 npm을 준비한 뒤 설정 명령을 실행하세요. 사용할 코딩 에이전트를 선택하고 변경 계획을 확인하세요." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -10874,7 +10874,7 @@ msgstr "제공된 예제 · {ph0}과 npm · 코딩 에이전트" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10892,7 +10892,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -10906,7 +10906,7 @@ msgstr "{ph0}페이지 · {ph1}{ph2}{ph3}노트 내보내기{ph4}{ph5}{ph6}을 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10924,7 +10924,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10934,7 +10934,7 @@ msgstr "" "{ph0}핸들러 · {ph1}{ph2}{ph3}{ph4} 저장{ph5}{ph6}{ph7}의 포맷터를 호출하고 파일을 저장합니다.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -10949,7 +10949,7 @@ msgstr "{ph0} · 라인 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10961,7 +10961,7 @@ msgstr "" " 포맷터를 실행해 확인해 줘. 예측과 실제 출력을 보여 줘.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10971,15 +10971,18 @@ msgstr "제목은 따옴표로 감싼 필드 하나에 남고, 내부 따옴표 #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." -msgstr "{ph0} 22(22.23.4+), 24(24.22.1+) 또는 26+ (>=26.12.1)가 필요합니다. npm은 {ph1}와 함께 제공됩니다." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"{ph0} 22(22.23.4+), 24(24.22.1+) 또는 26+ (>=26.12.1)가 필요합니다. npm은 {ph1}와 함께 " +"제공됩니다." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -10987,19 +10990,19 @@ msgstr "{ph0}가 없거나, 설치되어 있는지 확실하지 않나요?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"{ph0}가 v22.23.4+, v24.22.1+ 또는 v26.12.1+를 출력하면 준비가 된 것입니다. 이전 버전이나 ‘인식되지 않음’ / ‘명령을 " -"찾을 수 없음’이 나오면 {ph1} 24 LTS를 설치하세요:" +"{ph0}가 v22.23.4+, v24.22.1+ 또는 v26.12.1+를 출력하면 준비가 된 것입니다. 이전 버전이나 ‘인식되지 않음’" +" / ‘명령을 찾을 수 없음’이 나오면 {ph1} 24 LTS를 설치하세요:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11013,7 +11016,7 @@ msgstr "{ph0} · 예제 소스 발췌" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11022,9 +11025,9 @@ msgid "" msgstr "{ph0}예제 열기{ph1} · {ph2}{ph3} 다운로드{ph4} · {ph5}{ph6} 다운로드{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11032,7 +11035,7 @@ msgstr "{ph0} · 예제 소스" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11046,7 +11049,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11061,7 +11064,7 @@ msgstr "처음이거나 {ph0} 또는 코딩 에이전트가 없나요? {ph1}단 #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11072,7 +11075,7 @@ msgstr "" "뭐야?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11086,7 +11089,7 @@ msgstr "REA · 로드 {ph0} · 선택한 라인" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11104,7 +11107,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11116,28 +11119,28 @@ msgstr "" "뒤, 시간을 바꿔 볼 수 있는 작은 데모를 만들어 주세요.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} · API 멤버" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} · IPC 보조 함수" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "main/{ph0} · 핸들러 도우미" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11156,7 +11159,7 @@ msgstr "다크 모드로 전환" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11170,30 +11173,30 @@ msgstr "" "MCP 서버를 연결하여 에이전트와 함께 캡처된 트래픽을 살펴볼 수도 있습니다." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "모델 특화{ph0}에세이" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "리버스 엔지니어링에는 더 큰 모델이 필요할까?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " "and learning from compiler feedback." msgstr "동방 재구성 경험을 바탕으로 범용 모델, 특화 모델, 컴파일러 피드백을 통한 학습을 생각해 봅니다." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "작성자: N0zoM1z0 · 2026년 10월 13일" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" @@ -11202,37 +11205,37 @@ msgstr "본문으로 건너뛰기" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}홈{ph1} / {ph2}블로그{ph3} / 모델 및 리버스 엔지니어링" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "에세이" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "리버스 엔지니어링에 더 큰 모델이 필요할까?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "작성자: N0zoM1z0 · 2026년 10월 13일" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "핵심 요점" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11244,7 +11247,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11256,7 +11259,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11268,7 +11271,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11280,7 +11283,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11288,14 +11291,14 @@ msgid "" " result I want from the whole agent." msgstr "{ph0}검증을 통과한 재구성 결과를 시간·비용과 함께 측정하세요.{ph1} 제가 에이전트 전체에서 얻고 싶은 결과입니다." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "이 글의 내용" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11303,7 +11306,7 @@ msgstr "{ph0}더 나은 모델이 바꾼 것{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11311,7 +11314,7 @@ msgstr "{ph0}왜 특화 모델인가?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11319,7 +11322,7 @@ msgstr "{ph0}경험을 어디에 담을까?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11327,7 +11330,7 @@ msgstr "{ph0}다음 유용한 실험 학습하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11335,7 +11338,7 @@ msgstr "{ph0}리버스 엔지니어링과 강화 학습{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11343,7 +11346,7 @@ msgstr "{ph0}오라클이 틀렸을 때{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11351,18 +11354,18 @@ msgstr "{ph0}시도해 볼 만한 비교{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}어떤 에이전트가 필요할까?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "더 나은 모델이 바꾼 것" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11375,7 +11378,7 @@ msgstr "" " 경험의 대부분은 게임, 특히 동방 재구성에서 얻었습니다. 모델을 바꿔 가며 작업하는 동안 저장소에는 각 세션이 무엇을 복구했는지 기록이" " 쌓였습니다." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11386,12 +11389,12 @@ msgstr "" "이 작업의 상당 부분은 정확한 재구성이 목표입니다. 고정된 당시 도구 모음으로 유지보수 소스를 컴파일해 대상 함수를 재현하는지 " "확인합니다. 이전에 막혔던 문제를 나중 모델이 해결하면, 소스 변경에서 무엇이 진전을 가능하게 했는지 볼 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "임시 값들의 수명이 겹쳐야 했습니다" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11410,7 +11413,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11422,7 +11425,7 @@ msgstr "" "일반적인 소스 구성을 여러 가지 시험한 뒤 {ph0}GPT-6-Sol 체크포인트{ph1}에 이 불일치가 기록됐습니다. " "{ph2}GPT-6.1-Sol이 문제를 다시 살펴보며{ph3} 임시 값의 수명에 관한 유용한 가설을 찾아냈습니다." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11436,7 +11439,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11448,7 +11451,7 @@ msgstr "" "한 결과는 나중에 충돌 검사에 쓰이는 값과 여전히 저장 공간을 공유했습니다. 그 값에 별도의 수명을 부여하자 남아 있던 겹침이 " "해결되었습니다. 여러 차례의 표적 실험 끝에 {ph0}클린 리빌드로 함수 전체가 일치함을 확인했습니다{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11458,7 +11461,7 @@ msgstr "" "흥미로운 점은 발견과 테스트가 맞물린 방식입니다. 수명 가설은 에이전트에게 새로운 방향을 제시했고, 컴파일러 피드백은 가설을 구체화해 " "일치하는 소스 구성을 찾도록 도왔습니다." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "다른 제어 흐름 그래프" @@ -11467,7 +11470,7 @@ msgstr "다른 제어 흐름 그래프" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11487,7 +11490,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11503,7 +11506,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11515,7 +11518,7 @@ msgstr "" "{ph0}표현을 바꾸자 더 생산적인 탐색 공간이 열렸습니다.{ph1} 두 사례는 범용 모델의 역량을 중요하게 볼 이유가 됩니다. " "에이전트가 주변 코드를 더 잘 표현할 방법을 찾기 전까지 오랫동안 부분적인 변형만 시도할 수도 있기 때문입니다." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -11527,7 +11530,7 @@ msgstr "" "한편 후속 세션은 이전 소스와 실패 기록에서 출발했습니다. 축적된 작업도 이점의 일부였습니다. 이력에서 발견과 검증 과정을 살펴볼 수 " "있지만, 모델 자체의 효과와 물려받은 경험의 효과를 구분하려면 조건을 맞춘 비교가 필요합니다." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -11539,12 +11542,12 @@ msgstr "" "여기서 질문이 흥미로워집니다. 일부 진전은 새로운 표현을 찾은 덕분이었고, 나머지 작업의 상당 부분은 익숙한 컴파일러로 소스 형태를 " "시험하는 일이었습니다. 얼마나 폭넓은 추론이 필요하고, 얼마나 많은 부분을 그 컴파일러와 코드를 반복해서 경험하며 배울 수 있을까요?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "특화 모델은 왜 잘할 수 있을까요?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -11556,7 +11559,7 @@ msgstr "" "동방은 경험이 도움이 될 것이라 기대할 구체적인 이유를 제공합니다. 게임 코드 대부분의 저자가 ZUN이므로 반복되는 습관이 있다고 가정할" " 만합니다. 저장소의 사례도 이를 뒷받침합니다. 비슷한 루프와 보조 함수 구성이 게임을 넘나들며 가설의 단서가 됐습니다." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -11574,7 +11577,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11588,7 +11591,7 @@ msgstr "" " 배치가 해결되지 않았지만, 앞서 분석한 배경 함수에서 컴파일러의 선택에 영향을 주는 이름 패턴을 발견했습니다. 이는 " "{ph2}{ph3}의 재구성{ph4}에 더 유망한 가설을 제공했습니다." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -11596,7 +11599,7 @@ msgid "" msgstr "" "파일 크기 변수에도 그 패턴을 재사용하자 저장 공간을 추가하지 않고도 필요한 배치가 만들어졌습니다. 그러자 함수 전체가 일치했습니다." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -11606,7 +11609,7 @@ msgstr "" "이런 세부 사항은 범용 모델이 처음부터 알기 어렵습니다. 이 컴파일러에 특화된 모델은 비슷한 사례를 많이 접하며 어떤 소스 변형을 먼저 " "시험할지 배울 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -11622,7 +11625,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11639,14 +11642,14 @@ msgstr "" "필요했습니다. 같은 저자라는 사실은 사전 가정을 주지만 적용 여부는 각 대상에서 확인해야 합니다. 이 맥락을 구별하는 것도 특화 모델이 " "배울 일입니다." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "경험을 어디에 담아야 할까요?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11659,7 +11662,7 @@ msgstr "" "패턴을 모델 훈련으로 가르치기 전에 저장소에 이미 쌓인 지식을 살펴보고 싶습니다. {ph0}이전 에세이{ph1}에서는 저장소가 프로젝트의" " 작업 기억이 되어 간다고 썼습니다. 여기에는 컴파일러에 관한 교훈과, 그 교훈을 유용하게 만든 소스와 실패한 실험도 담겨 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -11674,7 +11677,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11690,7 +11693,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11704,7 +11707,7 @@ msgstr "" "그 사실을 유용한 후보로 만드는 일은 여전히 필요합니다. 후보가 실패하면 그 결과가 다음 시도에 무엇을 뜻하는지 판단해야 합니다. 관련 " "패턴을 아는 것은 시작일 뿐입니다." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -11715,12 +11718,12 @@ msgstr "" "그래서 비교에는 검색을 잘 활용하는 작은 범용 모델도 포함하고 싶습니다. 같은 경험 자료를 주면 학습이 후보 생성, 피드백 후의 판단, " "혹은 둘 모두를 얼마나 개선하는지 구분할 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "다음 유용한 실험 학습하기" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -11731,7 +11734,7 @@ msgstr "" "제가 가장 연구하고 싶은 것은 피드백 이후의 판단입니다. 에이전트 중심 재구성에서 모델은 설명을 제안하고 프로그램과 대조해 검증합니다. " "후보가 실패해도 결과는 남은 가능성을 좁히고 다음에 유용할 실험을 제시할 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -11742,67 +11745,67 @@ msgstr "" "임시 결과 사례를 다시 보세요. 최종 소스는 성공한 구성을 보여주지만 거기에 도달한 과정에는 더 많은 정보가 있습니다. 아래 실험들은 " "무엇을 더 바꿔야 하는지 알아내는 데 도움이 됐습니다." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "실험" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "결과에서 배운 점" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "다른 방식으로 결과 복사" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "복사 코드는 바뀌지만 함수는 여전히 다릅니다." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "반환된 값을 직접 사용" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "복사는 원본 패턴을 따르지만 임시 저장 공간은 여전히 다릅니다." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "임시 결과들의 수명을 겹치게 유지" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " "collision checks." msgstr "별도 저장 공간이 생기지만 하나는 이후 충돌 판정에 쓰는 값과 여전히 겹칩니다." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "충돌 판정 값을 별도로 유지" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "클린 빌드로 함수 전체의 일치를 확인합니다." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " "by what they taught us." msgstr "위 공격 함수 재구성 실험에서 배운 내용을 기준으로 묶은 사례입니다." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -11815,7 +11818,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11827,7 +11830,7 @@ msgstr "" "{ph0}모델이 피드백을 활용하는 법을 배우면 좋겠습니다.{ph1} 변화 없는 결과는 변형을 재고할 이유가 되고, 달라진 불일치는 다른 " "원인을 가리킬 수 있습니다. 부분 수정에서 더 이상 정보를 얻지 못하면 소스 표현을 다시 생각하거나 증거를 재검토할 수 있어야 합니다." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -11838,12 +11841,12 @@ msgstr "" "이런 선택을 배우려면 자율성이 필요합니다. 다음에는 코드를 또 수정해 컴파일하기보다 다른 호출 함수를 살펴보는 편이 유용할 수도 " "있습니다. 정해진 재작성 순서를 강제하면 그 선택과 함께 우리가 학습시키려는 행동의 일부도 사라집니다." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "리버스 엔지니어링이 강화 학습에 흥미로운 이유" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -11854,7 +11857,7 @@ msgstr "" "범위를 정한 재구성은 이런 선택을 연구할 실용적인 환경입니다. 대상과 컴파일러를 고정하면 많은 소스 실험에서 빠르고 반복 가능한 피드백을" " 얻습니다. 에이전트는 후보를 컴파일하고 불일치를 살핀 뒤 그 관찰로 다음 단계를 고를 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -11869,7 +11872,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11888,7 +11891,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11902,7 +11905,7 @@ msgstr "" "{ph0}충돌 판정 차이를 추적하다 원본의 부동소수점 계산 방식에 도달했습니다{ph1}. 에이전트는 유용한 수정을 시험하기 전에 무엇을 " "측정할지 알아내야 했습니다." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -11912,12 +11915,12 @@ msgstr "" "이는 폭넓은 역량을 가진 모델의 또 다른 역할을 보여줍니다. 문제를 검증 가능한 형태로 만드는 일입니다. 검증 수단을 마련한 뒤에는 " "학습된 탐색 전략으로 어디까지 갈 수 있는지 살펴볼 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "오라클이 틀렸을 때" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -11927,7 +11930,7 @@ msgstr "" "검사를 기준으로 학습시키면 그 검증 범위도 모델이 배우는 내용의 일부가 됩니다. 저는 이 참조 기준이나 검사기를 오라클이라고 부릅니다. " "답이 매번 같더라도 그 답이 무엇을 검증하는지 이해해야 합니다." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -11947,7 +11950,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11960,7 +11963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11974,7 +11977,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11988,7 +11991,7 @@ msgstr "" "발견했습니다. 따라서 테스트 통과는 실행한 사례 범위에서 해석해야 합니다. 명령어 일치도 실제로 확인한 바이트와 데이터 범위에서 해석해야" " 하는 것과 같습니다." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12003,7 +12006,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12014,12 +12017,12 @@ msgstr "" "{ph0}학습 모델과 오라클의 개선은 같은 연구 과제입니다.{ph1} 모델이 주어진 피드백을 더 잘 최적화할수록 그 피드백 자체를 " "이해하는 일도 중요해집니다." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "시도해 볼 만한 비교" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12032,7 +12035,7 @@ msgstr "" "측정합니다. 작은 모델에 저장소 지식을 더해 검색의 효과를 봅니다. 이어서 지도 학습으로 특화한 버전과 RL 학습 버전으로 훈련이 더하는" " 효과를 살펴봅니다." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12043,7 +12046,7 @@ msgstr "" "유의미한 비교를 위해 각 모델에 같은 대상 증거와 도구를 제공합니다. 훈련 효과를 비교할 때는 기반 모델과 활용 가능한 지식도 " "고정합니다. 반복 실험으로 믿을 만한 탐색 전략과 우연히 성공한 후보를 구별할 수 있습니다." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12055,7 +12058,7 @@ msgstr "" "출발 조건도 둘로 나누고 싶습니다. 명령어에서 함수를 재구성하는 과제와, 유지보수 소스에 남은 마지막 차이를 맞추는 과제입니다. 특화 " "모델은 후자에 뛰어나고 범용 모델은 거기에 도달하기 위한 작업 대부분을 수행할 수도 있습니다. 따로 측정하면 역할 분담이 드러납니다." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12066,7 +12069,7 @@ msgstr "" "두 과제 모두 학습에서 확실히 제외된 예제가 필요합니다. 관련 동방 게임은 엔진 코드를 공유하므로 게임 이름만 제외하면 거의 같은 함수가" " 학습에 남을 수 있습니다. 대신 소스 계열 전체를 분리하고, 검증된 정답을 학습과 검색 양쪽에서 제외하고 싶습니다." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12078,7 +12081,7 @@ msgstr "" "측정할 성과는 전체가 독립적으로 검증된 일치 결과입니다. 후보 제안 수나 컴파일 횟수를 같게 제한하면 탐색 품질을 비교할 수 있습니다. " "컴파일을 포함한 경과 시간과 총비용은 그 품질이 효율적인 작업으로 이어지는지 알려줍니다. 훈련 비용도 따로 계산해야 합니다." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12093,7 +12096,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12110,7 +12113,7 @@ msgstr "" "유망해 보였지만, 전체 비교에서는 여전히 큰 차이가 있었습니다. 명령어 배치가 바뀌어 근본 문제는 그대로인데 더 가까워 보일 수도 " "있습니다. 이런 진단은 다음 실험을 안내하지만, “더 가까워짐”에 주는 보상도 전체 수용 기준과 대조해 검증하고 싶습니다." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12122,12 +12125,12 @@ msgstr "" "결과 전반의 패턴도 궁금합니다. 특화 모델이 익숙한 컴파일러 계열에서 잘한다면 도구 모음이 바뀌어도 우위가 유지될까요? 두 모델 모두 " "검색을 잘 활용하면 학습은 얼마나 더 도움이 될까요? 각 모델이 어디서 가장 유용한지 판단할 단서가 됩니다." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "어떤 에이전트가 필요할까?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12140,7 +12143,7 @@ msgstr "" "컴파일러 탐색으로 좁혀지면 특화 모델에 후보를 요청합니다. 결과가 이해되지 않으면 범용 에이전트가 대상 증거로 돌아가거나 측정 자체를 " "조사합니다." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12150,7 +12153,7 @@ msgstr "" "이 구성에서는 특화 모델이 조사 진행에 따라 선택할 수 있는 도구가 됩니다. 에이전트는 앞선 돌파구를 가능하게 했던 방향 전환의 자유를 " "유지합니다." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12161,7 +12164,7 @@ msgstr "" "이는 앞선 에세이에서 설명한 산업적 전환과 자연스럽게 이어집니다. 훨씬 많은 실험을 실행할 수 있으면 작업을 조직하는 방식도 달라집니다." " 어떤 판단에 폭넓은 역량이 필요하고 어떤 판단은 특정 분야의 반복 경험으로 나아지는지 물어볼 이유도 생깁니다." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12175,7 +12178,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12184,12 +12187,12 @@ msgid "" msgstr "" "{ph0}저장소를 통해 이 질문을 검증할 수 있습니다.{ph1} 그 기록으로 비교 실험을 구성하고 무엇을 배우게 될지 살펴보고 싶습니다." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "증거와 사용 모델 명시" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -12201,7 +12204,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12225,7 +12228,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12247,7 +12250,7 @@ msgstr "{ph0}TH09 임시 값의 수명:{ph1} {ph2}이전 맥락 검토{ph3}와 { #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12271,7 +12274,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12296,7 +12299,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12307,7 +12310,7 @@ msgstr "" "{ph0}검증과 진단:{ph1} {ph2}TH08 부동소수점 리터럴 점검{ph3}, {ph4}TH08 수치 조사{ph5}, " "{ph6}TH09 리플레이 저장 재구성{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -12329,22 +12332,22 @@ msgid "" " and learning to propose better hypotheses from compiler feedback." msgstr "동방 재구성에서 배운 범용·특화 모델의 역할과, 컴파일러 피드백으로 더 나은 가설을 제안하도록 학습하는 방법." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "이 페이지 목차" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "모델과 리버스 엔지니어링 에세이" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "주요 재구성 실험" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "맨 위로" @@ -12353,7 +12356,7 @@ msgstr "맨 위로" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12363,68 +12366,68 @@ msgstr "{ph0}상세 증거 기록{ph1}에 비교 결과와 실험 맥락이 담 #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}사례 소개{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA 사례 연구" -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android · APK 분석" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "인증 앱이 로그인 코드를 만드는 방법" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Android 사례 연구 읽기" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron · 기능 추적" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Notion이 텍스트와 HTML을 복사하는 방법" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Notion 사례 연구 읽기" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "네이티브 프로그램 · 재구현" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball의 사운드 패닝 계산" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ball 사례 연구 읽기" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "설정 옵션" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -12433,7 +12436,7 @@ msgstr "컴퓨터와 코딩 에이전트를 준비하고 REA를 연결한 뒤, #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12444,7 +12447,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -12452,7 +12455,7 @@ msgstr "{ph0}1. 컴퓨터 준비하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -12460,7 +12463,7 @@ msgstr "{ph0}2. 에이전트 선택하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -12468,7 +12471,7 @@ msgstr "{ph0}3. REA 연결하기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -12476,25 +12479,25 @@ msgstr "{ph0}4. 조사해 보기{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}다른 분석 대상과 도구{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. 컴퓨터 준비하기" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " "can read those files and run tools for you." msgstr "분석할 파일이 저장된 컴퓨터를 사용하세요. 컴퓨터에서 실행되는 코딩 에이전트가 이 파일을 읽고 도구를 실행할 수 있습니다." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -12503,7 +12506,7 @@ msgstr "명령어는 터미널에 입력하세요. ‘코딩 에이전트’라 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -12514,7 +12517,7 @@ msgstr "winget을 사용할 수 없다면 {ph0}Node.js 설치 프로그램을 #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12524,29 +12527,29 @@ msgstr "" "나중에 {ph2}를 실행할 때 PowerShell에 {ph0}‘이 시스템에서 스크립트를 실행할 수 없습니다’{ph1}라고 나오면 대신 " "{ph3}를 사용하세요. npm은 {ph4}를 사용하면 됩니다." -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "에이전트용 작업 폴더 만들기" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "터미널에서 실습용 폴더를 만들고 그 폴더로 이동하세요." -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " "folder, open it instead." msgstr "다음 단계에서도 사용할 수 있도록 이 터미널을 열어 두세요. 이미 작업 폴더가 있다면 그 폴더를 여세요." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. 코딩 에이전트 선택하기" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -12555,12 +12558,12 @@ msgstr "" "에이전트는 여러분이 대화하는 AI입니다. REA는 이 AI가 사용할 분석 도구를 제공합니다. 아래에서 클라이언트 하나를 고르세요. 처음 " "사용하는 앱이라면 안내를 펼쳐 보세요." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · ChatGPT 계정으로 사용하기" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -12571,39 +12574,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codex 설치와 로그인{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf, VS Code · 편집기에서 사용하기" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "운영체제에 맞는 편집기를 설치하고 로그인하세요." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "1단계에서 만든 rea-work 폴더를 여세요." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · Claude 계정으로 사용하기" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "운영체제에 맞는 명령어로 설치하세요." #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12616,13 +12619,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Code 설치와 계정 선택지{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · 데스크톱 채팅으로 사용하기" @@ -12632,7 +12635,7 @@ msgstr "Claude Desktop · 데스크톱 채팅으로 사용하기" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12642,7 +12645,7 @@ msgstr "{ph0}Claude Desktop 다운로드{ph1} · {ph2}Claude Desktop 연결 안 #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12652,19 +12655,19 @@ msgstr "작업 폴더에서 {ph0}를 실행하세요. 채팅에서 {ph1}로 모 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCode 설치와 모델 설정{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "지원하는 모든 클라이언트와 설정 ID" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12672,12 +12675,12 @@ msgid "" " choosing a client explicitly." msgstr "npm 6.4.0 릴리스는 아래 클라이언트를 지원합니다. 클라이언트를 직접 지정하려면 {ph0}에 해당 ID를 넣으세요." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "클라이언트" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "설정 ID" @@ -12687,7 +12690,7 @@ msgstr "설정 ID" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12705,7 +12708,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12713,13 +12716,13 @@ msgid "" "availability{ph3}" msgstr "{ph0}클라이언트 설정과 문제 해결{ph1} · {ph2}릴리스별 제공 여부{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · Bot이 실행되는 컴퓨터에서 연결하기" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12731,29 +12734,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Grok Bot 커넥터 설정 안내{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. REA 연결하기" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "이 프롬프트를 코딩 에이전트에 붙여 넣으세요:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "특정 클라이언트 하나를 지정하려면 해당 설정 ID를 추가하세요." #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12764,7 +12767,7 @@ msgstr "" "npm이 패키지를 다운로드할지 물으면 {ph0}를 입력하고 Enter를 누르세요. REA의 클라이언트 목록에서는 방향키로 이동하고 " "Space로 클라이언트를 선택한 뒤 Enter로 진행하세요." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -12772,7 +12775,7 @@ msgid "" msgstr "" "MCP는 에이전트가 REA를 호출할 수 있게 하는 연결 방식입니다. 스킬은 소프트웨어를 조사하는 절차를 에이전트에 알려 줍니다." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -12781,7 +12784,7 @@ msgstr "첫 실습에서는 선택 사항인 Hopper 설치를 건너뛰어도 #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12790,19 +12793,19 @@ msgid "" msgstr "" "{ph0}를 사용하는 클라이언트의 설정 ID로 바꾸세요. 검사가 성공하면 {ph1}가 표시됩니다. 그런 다음 에이전트에 요청하세요." -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "REA가 연결되어 있는지 확인하고 사용할 수 있는 REA 도구를 알려 주세요." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. 첫 조사 해 보기" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12813,7 +12816,7 @@ msgstr "" "이 예제는 {ph0}노트 내보내기{ph1} 버튼이 있는, 파일 6개로 구성된 Electron 앱입니다. 에이전트는 Electron을 " "설치하거나 실행하지 않고도 코드를 살펴볼 수 있습니다." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "코딩 에이전트" @@ -12827,7 +12830,7 @@ msgstr "코딩 에이전트" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12839,7 +12842,7 @@ msgstr "" "{ph0}›{ph1}{ph2}{ph3}을 새 예제 폴더에 다운로드하고 압축을 풀어줘. REA로 메모 내보내기를 클릭하면 어떤 일이 " "일어나는지 찾아줘. {ph4}의 저장 위치, 포함된 필드, 관련 파일과 줄 번호를 보여줘.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "파일과 줄 번호를 포함한 짧은 설명을 확인하세요:" @@ -12848,7 +12851,7 @@ msgstr "파일과 줄 번호를 포함한 짧은 설명을 확인하세요:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12861,13 +12864,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}안내된 실습에서 예측 확인하기 →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "예제를 직접 다운로드하거나 자신의 앱 사용하기" @@ -12875,14 +12878,14 @@ msgstr "예제를 직접 다운로드하거나 자신의 앱 사용하기" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}예제 ZIP 다운로드{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12893,7 +12896,7 @@ msgstr "" "전달하세요." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12901,71 +12904,71 @@ msgid "" "relevant files and lines." msgstr "REA로 {ph0}에 있는 앱을 조사해 주세요. 데이터를 내보내는 방식을 찾아 관련 파일과 줄을 보여 주세요." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "다른 종류의 소프트웨어 분석하기" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " "REA uses for that kind of software." msgstr "대상에 맞는 항목을 선택하세요. 프로바이더는 REA가 해당 소프트웨어를 분석할 때 사용하는 로컬 분석 도구입니다." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "네이티브 실행 파일과 라이브러리 · Hopper, Ghidra, IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " "operating system; the target is the program you want to inspect." msgstr "REA를 실행하는 컴퓨터에 분석 도구 하나를 설치하세요. 호스트는 여러분의 운영체제이고, 대상은 분석하려는 프로그램입니다." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "분석 도구(프로바이더)" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "사용 불가" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "지원 배포판" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · 실험적 지원" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "검증된 구성" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "검증된 헤드리스 구성" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "분석 도구 가이드 참고" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · 설정 과정에서 설치하거나 연결하기" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -12975,7 +12978,7 @@ msgstr "" "설정에서 Hopper를 선택하고 별도로 제시되는 설치 계획을 확인하세요. macOS에서는 Hopper를 처음 열 때 데모 모드를 " "선택하거나 라이선스를 활성화하세요. Linux에서는 설정 과정에서 지원되는 데모와 전용 디스플레이를 준비합니다." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -12984,7 +12987,7 @@ msgstr "" "Linux 호스트: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS, " "Omarchy. Hopper는 상용 소프트웨어이며 데모에는 공급업체가 정한 제한이 있습니다." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -12997,18 +13000,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopper 설정과 문제 해결{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · 무료 분석 도구와 Java 설치하기" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13016,7 +13019,7 @@ msgid "" msgstr "Java 컴파일러를 포함하는 64비트 JDK 21 이상을 설치하세요. 컴퓨터 아키텍처에 맞는 패키지를 선택하세요." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13029,7 +13032,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13043,7 +13046,7 @@ msgstr "압축을 푼 폴더 중 {ph0} 또는 {ph1}가 들어 있는 폴더를 #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13051,7 +13054,7 @@ msgstr "{ph0}JDK 다운로드{ph1} · {ph2}Ghidra 12.1.4 다운로드{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13061,7 +13064,7 @@ msgstr "" "Java를 확인하세요. 첫 번째 명령어가 출력하는 {ph0} 폴더를 {ph1}로 지정하세요. 두 번째 명령어로 컴파일러가 설치되어 있는지" " 확인합니다." -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13078,7 +13081,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13086,12 +13089,12 @@ msgid "" "guide{ph3}" msgstr "{ph0}Ghidra 설정과 아키텍처 요구사항{ph1} · {ph2}Windows Ghidra 가이드{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · 기존 설치 연결하기" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13101,7 +13104,7 @@ msgstr "" "IDA 분석 도구 가이드를 따라 연동할 MCP 서버의 등록 설정을 준비하세요. 원본 바이너리를 연 GUI에 연결하거나, 전용 " "데이터베이스를 여는 헤드리스 감독 프로세스를 선택하세요." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13111,7 +13114,7 @@ msgstr "" "검증된 구성에는 Windows의 레거시 GUI와 헤드리스 감독 프로세스, IDA Professional 9.1을 사용하는 macOS " "arm64 헤드리스 감독 프로세스가 포함됩니다. 선택 사항인 네이티브 GUI 브리지에는 별도의 버전 및 플랫폼 요구사항이 있습니다." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13121,13 +13124,13 @@ msgstr "분석 도구 가이드에서 준비한 JSON 등록 파일을 사용한 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}IDA 구성, 등록 예제, 검증된 플랫폼{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -13136,128 +13139,128 @@ msgstr "연결한 뒤 원본 실행 파일의 전체 경로와 사용할 분석 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}네이티브 분석 예제 따라 하기{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "웹사이트, Android, .NET, 펌웨어 등 다른 대상" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " "tools, supported hosts and first command." msgstr "분석할 대상에 맞는 가이드를 여세요. 각 가이드에서 추가 도구, 지원 호스트, 첫 명령어를 안내합니다." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "대상" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "준비할 도구" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "가이드" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}가이드 열기{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "웹사이트" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / 패키지" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android 기기" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Android 리소스" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEB 프로젝트" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "펌웨어" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linux 충돌" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "논리 신호" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "프로세스 동작" @@ -13273,7 +13276,7 @@ msgstr "프로세스 동작" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13283,18 +13286,18 @@ msgstr "" "{ph0}Flutter 가이드{ph1} · {ph2}패키지와 리소스{ph3} · {ph4}EVM 바이트코드{ph5} · {ph6}모든 " "조사 가이드{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "터미널에서 REA 사용하기" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLI 명령어, 전역 설치, curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13302,14 +13305,14 @@ msgid "" "list. Ghidra must be configured first." msgstr "{ph0}을 대상의 함수 목록에 있는 함수 이름이나 주소로 바꾸세요. 먼저 Ghidra를 설정해야 합니다." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " "Node.js:" msgstr "macOS나 Linux에서는 Node.js를 준비한 뒤 curl 설치 프로그램을 사용할 수도 있습니다." -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -13318,12 +13321,12 @@ msgstr "" "3단계의 클라이언트 검사에 사용하는 설정 ID를 지정하세요. 편집기 클라이언트에서는 MCP 설정에서 REA를 활성화하고 에이전트 채팅에서" " 도구 사용을 허용하세요." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL, 공백이 포함된 경로" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -13334,17 +13337,17 @@ msgstr "" "Linux 환경 안에 Node.js와 REA를 설치하고 Linux 경로를 사용하세요. 헤드리스 분석 도구는 REA와 같은 호스트에서 " "실행됩니다." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Windows 설정 명령어:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "REA 업데이트 또는 제거하기" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -13353,7 +13356,7 @@ msgstr "에이전트 연결을 갱신하려면 최신 설정 명령어를 다시 #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13365,52 +13368,52 @@ msgstr "전역 CLI를 설치했다면 {ph0}로 업데이트하세요. REA의 클 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}업데이트와 제거 상세 안내{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Windows REA 설정 명령어 복사" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "명령어 복사" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "메모 분석 프롬프트 복사" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13420,12 +13423,12 @@ msgstr "" "curl과 unzip이 없다면 먼저 설치하세요. Debian이나 Ubuntu에서는 {ph0}을 실행하고, 다른 배포판에서는 해당 패키지 " "관리자를 사용하세요." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "터미널을 닫았다가 다시 열고 다음을 실행하세요." -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -13440,7 +13443,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13450,19 +13453,19 @@ msgstr "" "{ph0}Cursor 설정{ph1} · {ph2}Windsurf / Devin Desktop 설정{ph3} · {ph4}VS Code와 " "Copilot 설정{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · AI 모델 선택하기" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "IDA 등록 파일 준비하기" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13476,7 +13479,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13487,7 +13490,7 @@ msgstr "{ph0}, {ph1}, {ph2}를 제공하는 헤드리스 감독 프로세스에 #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13498,22 +13501,22 @@ msgstr "" "연결된 레거시 1.4.0 GUI 서버의 경우 동작이 확인된 {ph0}, {ph1}, 선택 사항인 {ph2}를 파일에 복사하세요. REA에" " 조사를 요청하기 전에 IDA에서 원본 바이너리를 열고 연동할 플러그인을 시작하세요." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLite 데이터베이스" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVM 바이트코드" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "운영체제에 맞는 명령어로 Codex를 설치하세요." -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -13522,7 +13525,7 @@ msgstr "설치 후 터미널을 다시 열고 작업 폴더로 돌아오세요. #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13532,12 +13535,12 @@ msgstr "" "처음 설치한다면 {ph0}Node.js 24 LTS macOS 설치 프로그램(.pkg){ph1}을 다운로드하고 열어 안내를 따르세요. " "그런 다음 터미널을 다시 여세요." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "이미 Homebrew를 사용하고 있나요?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -13548,7 +13551,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13556,7 +13559,7 @@ msgid "" "in step 3{ph1}." msgstr "계획을 확인하고 승인한 뒤 Claude를 다시 열고 {ph0}3단계에서 연결을 확인{ph1}하세요." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -13566,12 +13569,12 @@ msgstr "" "두 경로를 기존 설치 경로로 바꾸세요. macOS나 Linux arm64에 새로 설치했다면 먼저 컴퓨터에 맞는 네이티브 디컴파일러를 " "빌드하세요." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Ghidra의 네이티브 디컴파일러 빌드하기" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -13584,7 +13587,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -13594,7 +13597,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -13604,19 +13607,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · 네이티브 빌드 안내{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "그런 다음 Ghidra를 검사하고 클라이언트용으로 경로를 저장하세요." #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -13624,35 +13627,35 @@ msgstr "계산기에서 {ph0}의 결과가 220인 이유는 무엇일까요?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}작동 방식{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " "tools to inspect the code behind the answer." msgstr "앱, 게임, 웹사이트에 대해 코딩 에이전트에게 질문해 보세요. REA는 답의 근거가 되는 코드를 살펴볼 도구를 제공합니다." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "시작하기" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "예제 보기 ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "작동 방식" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -13662,67 +13665,67 @@ msgstr "" "리버스 엔지니어링은 프로그램 자체를 살펴보고 소프트웨어의 작동 방식을 이해하는 것입니다. REA를 사용하면 에이전트가 코드를 추적하고 " "기능을 설명하며 다시 구현하는 일을 도울 수 있습니다." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "한 가지 기능 질문하기" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "에이전트에게 프로그램이나 페이지와 질문을 전달하세요." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "프로그램 살펴보기" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA는 코드, 참조 관계, 실행 중 관찰 결과를 반환합니다." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "이해한 뒤 변경해 보기" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "에이전트는 조사 결과를 바탕으로 기능을 설명하거나 다시 구현합니다." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "명령어를 단계별로 따라가기" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "에이전트에게 같은 질문하기" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "속도는 6에서 시작합니다. 속도가 13 미만이고 충돌하지 않은 경우, 갱신할 때마다 0.001씩 더합니다." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "출시된 앱이나 게임의 기능을 코드와 검증 결과와 함께 살펴보세요." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " "demo clock to see why it changes every 30 seconds." msgstr "Aegis의 배포 APK에서 여섯 자리 로그인 코드를 추적하고 데모 시계를 움직여 30초마다 바뀌는 이유를 확인하세요." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -13730,19 +13733,19 @@ msgid "" msgstr "" "Notion에 패키징된 JavaScript에서 시스템 클립보드까지 추적하며 복사가 서식 있는 블록 데이터를 보존하는 방식을 살펴보세요." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " "game." msgstr "1996년 Windows 게임에서 공의 위치가 좌우 소리로 바뀌는 방식을 복원합니다." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "조사 대상을 선택하세요" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -13751,7 +13754,7 @@ msgstr "이 가이드는 소프트웨어 종류별 설정과 첫 조사를 안 #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13768,13 +13771,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}프롬프트 예 · 웹 사이트" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "바로 이 사이트입니다." @@ -13787,7 +13790,7 @@ msgstr "바로 이 사이트입니다." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13800,7 +13803,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}예제 프롬프트 · 게임 #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13813,18 +13816,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "웹사이트 프로젝트 프롬프트 복사" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "게임 재구성 프롬프트 복사" @@ -13836,7 +13839,7 @@ msgstr "게임 재구성 프롬프트 복사" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13846,7 +13849,7 @@ msgstr "{ph0}›{ph1}{ph2}REA로 {ph3}을 분석해 줘. 이 웹사이트를 복 #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -13854,37 +13857,37 @@ msgstr "{ph0}사례 소개 →{ph1} — 분석 과정과 직접 조작하는 데 #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}블로그 →{ph1} — 방법론과 소프트웨어 재구성 기록." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "계산기 전체 조사 보기" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "더 큰 프로젝트 시도하기" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "두 가지 예제를 해 봅시다. 게임의 속도를 바꾸고, 계산기의 % 버튼을 다시 구현합니다." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " "first need to find out how the speed changes." msgstr "계속 달리면 게임이 빨라집니다. 속도 조절 기능을 넣어 다시 구현하려면 먼저 속도가 어떻게 변하는지 알아야 합니다." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. 속도에 대해 질문하기" @@ -13897,19 +13900,19 @@ msgstr "1. 속도에 대해 질문하기" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}질문 예시 · 공룡 게임" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. 속도 규칙 찾기" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -13918,33 +13921,33 @@ msgstr "" "REA를 사용하면 에이전트가 실행 중인 게임의 코드를 읽을 수 있습니다. 속도는 6에서 시작하고, 13 미만인 동안 갱신할 때마다 조금씩" " 증가합니다." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. 결과물 플레이하기" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " "Play, then choose your own speed." msgstr "아래 미니게임에 이 규칙을 구현하고 속도 슬라이더를 추가했습니다. 시작을 누르고 원하는 속도를 골라 보세요." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "플레이하려면 JavaScript를 켜세요. 규칙을 읽고 아래 소스 코드를 펼치는 것은 계속 가능합니다." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " "try them in a small calculator." msgstr "% 버튼은 + 뒤와 × 뒤에서 다르게 작동합니다. 두 규칙을 찾아 작은 계산기에서 시험해 봅시다." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. % 버튼에 대해 질문하기" @@ -13957,37 +13960,37 @@ msgstr "1. % 버튼에 대해 질문하기" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}질문 예시 · 계산기" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. 두 규칙 찾기" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "REA는 에이전트가 % 버튼의 코드를 읽도록 돕습니다. 이 코드는 서로 다른 두 규칙을 적용합니다." -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. % 버튼 시험하기" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "아래에 두 규칙을 다시 구현했습니다. + 또는 ×를 고르고, %를 누른 뒤 =를 누르세요." #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -13995,7 +13998,7 @@ msgstr "{ph0}FAQ 읽기{ph1} — 설정과 자주 묻는 질문." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14003,13 +14006,13 @@ msgstr "{ph0}Discord 참여{ph1} — 도움을 요청하고 조사 내용을 나 #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub 이슈{ph1} — 버그 제보와 기능 요청." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "사용하는 플랫폼의 설정:" @@ -14017,14 +14020,14 @@ msgstr "사용하는 플랫폼의 설정:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "다른 설치 방법: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14037,7 +14040,7 @@ msgstr "설정 안내에 따라 에이전트를 연결하세요. 안내가 나 #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14051,7 +14054,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14061,7 +14064,7 @@ msgstr "빌드한 소스 디렉터리에서 아래 {ph2} 명령 대신 {ph0}와 #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14071,7 +14074,7 @@ msgstr "" "셸에서 {ph0}를 찾지 못하면 설치 프로그램이 출력한 실행 파일 경로를 사용하세요. Linux의 기본 설정 명령은 {ph1}입니다." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14082,89 +14085,89 @@ msgstr "" "REA와 제가 설정한 분석 도구로 {ph0}를 조사해 주세요. 함수와 문자열을 나열한 뒤, 사용자 입력을 처리하는 부분을 코드 참조와 " "함께 설명해 주세요." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "기여자" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "본문으로 건너뛰기" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}홈{ph1} / 기여자" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "함께 만듭니다" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "REA를 더 나은 도구로 만들어 주시는 모든 분께 감사드립니다." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "코드, 문서, 테스트, 번역, 아이디어 등 다양한 방법으로 참여할 수 있습니다." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "기여하는 방법" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "대화에 참여하기 →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "기여자" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "기여자 찾기" @@ -14172,13 +14175,13 @@ msgstr "기여자 찾기" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "{ph0}GitHub 기여자 목록{ph1} 기준 · 업데이트: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "일치하는 기여자가 없습니다. 다른 사용자 이름으로 검색해 보세요." @@ -14194,12 +14197,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "REA에 코드, 문서, 테스트와 아이디어를 기여하는 분들을 소개합니다." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub 사용자 이름" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "맨 위로" diff --git a/website/locales/languages.json b/website/locales/languages.json index 2b396ce3984..eb8876aa7c1 100644 --- a/website/locales/languages.json +++ b/website/locales/languages.json @@ -136,5 +136,11 @@ "name": "Română", "readme": "docs/readme/README_ro.md", "dir": "ltr" + }, + { + "code": "bn", + "name": "বাংলা", + "readme": "docs/readme/README_bn.md", + "dir": "ltr" } ] diff --git a/website/locales/messages.pot b/website/locales/messages.pot index e2f66a7b5c7..f463be2ac67 100644 --- a/website/locales/messages.pot +++ b/website/locales/messages.pot @@ -6,49 +6,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: website/public/blog/index.html:111 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "" -#: website/public/blog/index.html:121 -#: website/public/blog/reverse-engineering-models/index.html:121 -#: website/public/blog/touhou-reconstruction/index.html:121 -#: website/public/contributors/index.html:122 -#: website/public/examples/dino-lab/index.html:122 website/public/faq/index.html:121 -#: website/public/first-investigation/index.html:121 -#: website/public/get-started/index.html:121 -#: website/public/guides/browser/index.html:121 website/public/guides/index.html:121 -#: website/public/guides/javascript/index.html:121 -#: website/public/guides/native/index.html:121 website/public/index.html:123 -#: website/public/showcase/aegis/index.html:122 -#: website/public/showcase/ctf/index.html:121 -#: website/public/showcase/dx-ball/index.html:121 website/public/showcase/index.html:121 -#: website/public/showcase/notion/index.html:121 -#: website/public/showcase/th04/index.html:121 -msgctxt "shared" -msgid "Get started" -msgstr "" - -#: website/public/blog/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/contributors/index.html:123 -#: website/public/examples/dino-lab/index.html:123 website/public/faq/index.html:122 -#: website/public/first-investigation/index.html:122 -#: website/public/get-started/index.html:122 -#: website/public/guides/browser/index.html:122 website/public/guides/index.html:122 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/native/index.html:122 website/public/index.html:124 -#: website/public/showcase/aegis/index.html:123 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/dx-ball/index.html:122 website/public/showcase/index.html:122 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/th04/index.html:122 -msgctxt "shared" -msgid "Showcases" -msgstr "" - #: website/public/blog/index.html:123 #: website/public/blog/reverse-engineering-models/index.html:123 #: website/public/blog/touhou-reconstruction/index.html:123 @@ -65,7 +27,7 @@ msgstr "" #: website/public/showcase/notion/index.html:123 #: website/public/showcase/th04/index.html:123 msgctxt "shared" -msgid "Blog" +msgid "Get started" msgstr "" #: website/public/blog/index.html:124 @@ -84,149 +46,149 @@ msgstr "" #: website/public/showcase/notion/index.html:124 #: website/public/showcase/th04/index.html:124 msgctxt "shared" -msgid "Guides" +msgid "Showcases" msgstr "" -#: website/public/blog/index.html:126 website/public/blog/index.html:245 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 +msgctxt "shared" +msgid "Blog" +msgstr "" + +#: website/public/blog/index.html:126 #: website/public/blog/reverse-engineering-models/index.html:126 -#: website/public/blog/reverse-engineering-models/index.html:884 #: website/public/blog/touhou-reconstruction/index.html:126 -#: website/public/blog/touhou-reconstruction/index.html:1081 #: website/public/contributors/index.html:127 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:127 -#: website/public/examples/dino-lab/index.html:476 website/public/faq/index.html:126 -#: website/public/faq/index.html:574 website/public/first-investigation/index.html:126 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:126 website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:126 -#: website/public/guides/browser/index.html:508 website/public/guides/index.html:126 -#: website/public/guides/index.html:283 website/public/guides/javascript/index.html:126 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:126 -#: website/public/guides/native/index.html:510 website/public/index.html:128 -#: website/public/index.html:1223 website/public/showcase/aegis/index.html:127 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:126 website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:126 -#: website/public/showcase/dx-ball/index.html:786 website/public/showcase/index.html:126 -#: website/public/showcase/index.html:318 website/public/showcase/notion/index.html:126 -#: website/public/showcase/notion/index.html:632 +#: website/public/examples/dino-lab/index.html:127 website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 #: website/public/showcase/th04/index.html:126 -#: website/public/showcase/th04/index.html:801 +msgctxt "shared" +msgid "Guides" +msgstr "" + +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 website/public/faq/index.html:128 +#: website/public/faq/index.html:576 website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 website/public/guides/index.html:128 +#: website/public/guides/index.html:285 website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:203 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "" -#: website/public/blog/index.html:204 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "" -#: website/public/blog/index.html:205 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "" #. {ph0}:
-#: website/public/blog/index.html:209 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "" -#: website/public/blog/index.html:211 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/index.html:212 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models and " "learning from compiler feedback." msgstr "" -#: website/public/blog/index.html:216 website/public/blog/index.html:231 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "" -#: website/public/blog/index.html:219 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" #. {ph0}:
-#: website/public/blog/index.html:223 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "" -#: website/public/blog/index.html:225 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "" -#: website/public/blog/index.html:226 +#: website/public/blog/index.html:228 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 "" -#: website/public/blog/index.html:234 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/index.html:246 -#: website/public/blog/reverse-engineering-models/index.html:885 -#: website/public/blog/touhou-reconstruction/index.html:1082 -#: website/public/contributors/index.html:1133 -#: website/public/examples/dino-lab/index.html:477 website/public/faq/index.html:575 -#: website/public/first-investigation/index.html:536 -#: website/public/get-started/index.html:1819 -#: website/public/guides/browser/index.html:509 website/public/guides/index.html:284 -#: website/public/guides/javascript/index.html:505 -#: website/public/guides/native/index.html:511 website/public/index.html:1224 -#: website/public/showcase/aegis/index.html:810 -#: website/public/showcase/ctf/index.html:779 -#: website/public/showcase/dx-ball/index.html:787 website/public/showcase/index.html:319 -#: website/public/showcase/notion/index.html:633 -#: website/public/showcase/th04/index.html:802 -msgctxt "shared" -msgid "Source" -msgstr "" - -#: website/public/blog/index.html:247 -#: website/public/blog/reverse-engineering-models/index.html:886 -#: website/public/blog/touhou-reconstruction/index.html:1083 -#: website/public/contributors/index.html:1134 -#: website/public/examples/dino-lab/index.html:478 website/public/faq/index.html:576 -#: website/public/first-investigation/index.html:537 -#: website/public/get-started/index.html:1820 -#: website/public/guides/browser/index.html:510 website/public/guides/index.html:285 -#: website/public/guides/javascript/index.html:506 -#: website/public/guides/native/index.html:512 website/public/index.html:1225 -#: website/public/showcase/aegis/index.html:811 -#: website/public/showcase/ctf/index.html:780 -#: website/public/showcase/dx-ball/index.html:788 website/public/showcase/index.html:320 -#: website/public/showcase/notion/index.html:634 -#: website/public/showcase/th04/index.html:803 -msgctxt "shared" -msgid "MIT license" -msgstr "" - #: website/public/blog/index.html:248 #: website/public/blog/reverse-engineering-models/index.html:887 #: website/public/blog/touhou-reconstruction/index.html:1084 @@ -243,7 +205,7 @@ msgstr "" #: website/public/showcase/notion/index.html:635 #: website/public/showcase/th04/index.html:804 msgctxt "shared" -msgid "Join the community" +msgid "Source" msgstr "" #: website/public/blog/index.html:249 @@ -262,26 +224,64 @@ msgstr "" #: website/public/showcase/notion/index.html:636 #: website/public/showcase/th04/index.html:805 msgctxt "shared" +msgid "MIT license" +msgstr "" + +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 +msgctxt "shared" +msgid "Join the community" +msgstr "" + +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 +msgctxt "shared" msgid "Follow us on X" msgstr "" #. {ph0}: -#: website/public/blog/index.html:254 -#: website/public/blog/reverse-engineering-models/index.html:893 -#: website/public/blog/touhou-reconstruction/index.html:1090 -#: website/public/contributors/index.html:1141 -#: website/public/examples/dino-lab/index.html:485 website/public/faq/index.html:583 -#: website/public/first-investigation/index.html:544 -#: website/public/get-started/index.html:1827 -#: website/public/guides/browser/index.html:517 website/public/guides/index.html:292 -#: website/public/guides/javascript/index.html:513 -#: website/public/guides/native/index.html:519 website/public/index.html:1232 -#: website/public/showcase/aegis/index.html:818 -#: website/public/showcase/ctf/index.html:787 -#: website/public/showcase/dx-ball/index.html:795 website/public/showcase/index.html:327 -#: website/public/showcase/notion/index.html:641 -#: website/public/showcase/th04/index.html:810 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -299,136 +299,136 @@ msgid "" "agents." msgstr "" -#: website/public/blog/index.html:83 website/public/blog/index.html:96 -#: website/public/blog/reverse-engineering-models/index.html:83 -#: website/public/blog/reverse-engineering-models/index.html:96 -#: website/public/blog/touhou-reconstruction/index.html:83 -#: website/public/blog/touhou-reconstruction/index.html:96 -#: website/public/contributors/index.html:83 website/public/contributors/index.html:96 -#: website/public/examples/dino-lab/index.html:83 -#: website/public/examples/dino-lab/index.html:96 website/public/faq/index.html:83 -#: website/public/faq/index.html:96 website/public/first-investigation/index.html:83 -#: website/public/first-investigation/index.html:96 -#: website/public/get-started/index.html:83 website/public/get-started/index.html:96 -#: website/public/guides/browser/index.html:83 -#: website/public/guides/browser/index.html:96 website/public/guides/index.html:83 -#: website/public/guides/index.html:96 website/public/guides/javascript/index.html:83 -#: website/public/guides/javascript/index.html:96 -#: website/public/guides/native/index.html:83 website/public/guides/native/index.html:96 -#: website/public/index.html:83 website/public/index.html:96 -#: website/public/showcase/aegis/index.html:83 -#: website/public/showcase/aegis/index.html:96 website/public/showcase/ctf/index.html:83 -#: website/public/showcase/ctf/index.html:96 -#: website/public/showcase/dx-ball/index.html:83 -#: website/public/showcase/dx-ball/index.html:96 website/public/showcase/index.html:83 -#: website/public/showcase/index.html:96 website/public/showcase/notion/index.html:83 -#: website/public/showcase/notion/index.html:96 -#: website/public/showcase/th04/index.html:83 website/public/showcase/th04/index.html:96 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 website/public/faq/index.html:85 +#: website/public/faq/index.html:98 website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 website/public/guides/index.html:85 +#: website/public/guides/index.html:98 website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 website/public/guides/native/index.html:98 +#: website/public/index.html:85 website/public/index.html:98 +#: website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 website/public/showcase/index.html:85 +#: website/public/showcase/index.html:98 website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "REA — Find out how software works. Reverse engineering with your coding agent." msgstr "" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "" -#: website/public/blog/index.html:139 -#: website/public/blog/reverse-engineering-models/index.html:139 -#: website/public/blog/touhou-reconstruction/index.html:139 -#: website/public/contributors/index.html:140 -#: website/public/examples/dino-lab/index.html:140 website/public/faq/index.html:139 -#: website/public/first-investigation/index.html:139 -#: website/public/get-started/index.html:139 -#: website/public/guides/browser/index.html:139 website/public/guides/index.html:139 -#: website/public/guides/javascript/index.html:139 -#: website/public/guides/native/index.html:139 website/public/index.html:141 -#: website/public/showcase/aegis/index.html:140 -#: website/public/showcase/ctf/index.html:139 -#: website/public/showcase/dx-ball/index.html:139 website/public/showcase/index.html:139 -#: website/public/showcase/notion/index.html:139 -#: website/public/showcase/th04/index.html:139 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "" -#: website/public/blog/index.html:159 -#: website/public/blog/reverse-engineering-models/index.html:159 -#: website/public/blog/touhou-reconstruction/index.html:159 -#: website/public/contributors/index.html:160 -#: website/public/examples/dino-lab/index.html:160 website/public/faq/index.html:159 -#: website/public/first-investigation/index.html:159 -#: website/public/get-started/index.html:159 -#: website/public/guides/browser/index.html:159 website/public/guides/index.html:159 -#: website/public/guides/javascript/index.html:159 -#: website/public/guides/native/index.html:159 website/public/index.html:161 -#: website/public/showcase/aegis/index.html:160 -#: website/public/showcase/ctf/index.html:159 -#: website/public/showcase/dx-ball/index.html:159 website/public/showcase/index.html:159 -#: website/public/showcase/notion/index.html:159 -#: website/public/showcase/th04/index.html:159 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "" -#: website/public/blog/index.html:178 -#: website/public/blog/reverse-engineering-models/index.html:178 -#: website/public/blog/touhou-reconstruction/index.html:178 -#: website/public/contributors/index.html:179 -#: website/public/examples/dino-lab/index.html:179 website/public/faq/index.html:178 -#: website/public/first-investigation/index.html:178 -#: website/public/get-started/index.html:178 -#: website/public/guides/browser/index.html:178 website/public/guides/index.html:178 -#: website/public/guides/javascript/index.html:178 -#: website/public/guides/native/index.html:178 website/public/index.html:180 -#: website/public/showcase/aegis/index.html:179 -#: website/public/showcase/ctf/index.html:178 -#: website/public/showcase/dx-ball/index.html:178 website/public/showcase/index.html:178 -#: website/public/showcase/notion/index.html:178 -#: website/public/showcase/th04/index.html:178 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "" -#: website/public/blog/index.html:254 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:111 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "" @@ -437,35 +437,35 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:207 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:210 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:212 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -475,7 +475,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:220 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -485,7 +485,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:227 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -495,7 +495,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:232 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -505,7 +505,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:239 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -513,14 +513,14 @@ msgid "" "want from the whole agent." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -528,7 +528,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -536,7 +536,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -544,7 +544,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -552,7 +552,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -560,7 +560,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:257 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -568,7 +568,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -576,18 +576,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:259 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:267 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:268 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an agent can " @@ -596,7 +596,7 @@ msgid "" "repositories have kept a record of what each session managed to recover." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:276 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained source under" @@ -605,12 +605,12 @@ msgid "" "made that progress possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:283 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:284 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but the " @@ -627,7 +627,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:291 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -636,7 +636,7 @@ msgid "" "useful hypothesis about how long those temporary values needed to stay alive." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:305 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation positions. In " @@ -647,7 +647,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:312 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -656,7 +656,7 @@ msgid "" "experiments, {ph0}a clean rebuild confirmed that the full function matched{ph1}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:321 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The lifetime " @@ -664,7 +664,7 @@ msgid "" "hypothesis into a source arrangement that matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:327 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "" @@ -673,7 +673,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:328 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -691,7 +691,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:339 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -703,7 +703,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:351 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -713,7 +713,7 @@ msgid "" "surrounding work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:360 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and recorded " @@ -722,7 +722,7 @@ msgid "" "the effect of the model from the experience it inherited." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:367 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress came from " @@ -731,12 +731,12 @@ msgid "" "much could a model learn through repeated experience with that compiler and code?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:377 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:378 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of the game " @@ -745,7 +745,7 @@ msgid "" "helper arrangements have supplied hypotheses across games." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:385 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. Under a " @@ -760,7 +760,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:391 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -771,14 +771,14 @@ msgid "" "{ph3}{ph4}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:405 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout without " "adding storage. The full function then matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:410 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it arrives. A " @@ -786,7 +786,7 @@ msgid "" "source variations are worth testing first." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:416 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we already " @@ -800,7 +800,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:424 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -812,14 +812,14 @@ msgid "" " part of what a specialist would need to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:440 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:441 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -829,7 +829,7 @@ msgid "" " along with the source and failed experiments that made them useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:450 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and inspect how we " @@ -841,7 +841,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:456 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -853,7 +853,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:467 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -864,7 +864,7 @@ msgid "" "only the beginning of that process." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:477 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval in any " @@ -872,12 +872,12 @@ msgid "" "training adds: better candidate generation, better decisions after feedback, or both." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:485 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:486 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In agentic " @@ -886,7 +886,7 @@ msgid "" "suggest a more useful next experiment." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:493 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the arrangement " @@ -894,66 +894,66 @@ msgid "" "following experiments helped identify what still needed to change." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:506 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:507 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:512 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:513 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:518 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:519 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Copying follows the original pattern, but temporary storage still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:525 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:526 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for collision " "checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:532 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:533 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped by what " "they taught us." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:542 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final source alone." @@ -964,7 +964,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:549 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -974,7 +974,7 @@ msgid "" "source representation or inspect the evidence again." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:558 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next step is " @@ -983,12 +983,12 @@ msgid "" "the model to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:567 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:568 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these choices. " @@ -997,7 +997,7 @@ msgid "" "that observation to choose its next step." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:575 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the feedback " @@ -1009,7 +1009,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:581 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1024,7 +1024,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:593 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1035,7 +1035,7 @@ msgid "" " what to measure." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:604 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the problem " @@ -1043,12 +1043,12 @@ msgid "" "learned search policy can get with it." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:612 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:613 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the model learns. " @@ -1056,7 +1056,7 @@ msgid "" "still need to understand what that answer covers." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:619 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed functions " @@ -1072,7 +1072,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:628 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1083,7 +1083,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:638 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1095,7 +1095,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:648 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1106,7 +1106,7 @@ msgid "" "checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:658 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with deliberate " @@ -1118,7 +1118,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:666 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1127,12 +1127,12 @@ msgid "" "understanding that feedback becomes more important too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:676 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:677 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 task family." @@ -1142,7 +1142,7 @@ msgid "" "what training adds." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:685 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same target " @@ -1151,7 +1151,7 @@ msgid "" "reliable search strategy from a lucky candidate." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:692 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function from its " @@ -1160,7 +1160,7 @@ msgid "" "needed to reach it. Measuring them separately would reveal that division of work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:700 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games share engine" @@ -1169,7 +1169,7 @@ msgid "" "answers out of both training and retrieval." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:707 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated matches. " @@ -1179,7 +1179,7 @@ msgid "" "own accounting too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:715 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive workflow if it " @@ -1191,7 +1191,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:721 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1203,7 +1203,7 @@ msgid "" "I would validate any reward for \"getting closer\" against the full acceptance check." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:736 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist does well " @@ -1212,12 +1212,12 @@ msgid "" "would help us decide where each kind of model is most useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:745 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:746 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement might be a " @@ -1227,7 +1227,7 @@ msgid "" "itself." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:754 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as the " @@ -1235,7 +1235,7 @@ msgid "" "earlier breakthroughs possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:759 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous essay. " @@ -1244,7 +1244,7 @@ msgid "" " repeated experience with a particular craft." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:766 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by opening " @@ -1255,7 +1255,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:774 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1263,7 +1263,7 @@ msgid "" "that record to build the comparison and see what we learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:784 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "" @@ -1271,7 +1271,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:785 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1279,7 +1279,7 @@ msgid "" "context." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:792 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the linked " @@ -1289,7 +1289,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:798 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1309,7 +1309,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:807 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1331,7 +1331,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:819 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1353,7 +1353,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:835 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1375,7 +1375,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:851 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1383,7 +1383,7 @@ msgid "" "numerical investigation{ph5} and {ph6}TH09 replay-save reconstruction{ph7}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:868 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The project " @@ -1402,27 +1402,27 @@ msgid "" "learning to propose better hypotheses from compiler feedback." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:262 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:500 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:893 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:111 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "" @@ -1431,35 +1431,35 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:208 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:211 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:213 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1469,7 +1469,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:218 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1479,7 +1479,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:223 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1489,7 +1489,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:228 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1499,7 +1499,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:233 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1507,65 +1507,65 @@ msgid "" "still taking shape. There is plenty left to explore." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:245 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:246 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:334 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:339 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:345 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:346 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -1574,7 +1574,7 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:348 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -1583,40 +1583,40 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:354 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:367 +#: website/public/blog/touhou-reconstruction/index.html:369 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:374 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -1624,7 +1624,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -1632,7 +1632,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:378 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -1640,7 +1640,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:379 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -1648,7 +1648,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -1656,7 +1656,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -1664,7 +1664,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -1672,18 +1672,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:385 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:390 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:391 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would inspect a " @@ -1692,7 +1692,7 @@ msgid "" " keeping an increasingly large picture in my head." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:398 +#: website/public/blog/touhou-reconstruction/index.html:400 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" @@ -1701,7 +1701,7 @@ msgid "" " can check against a reliable reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:405 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to see how far" @@ -1709,7 +1709,7 @@ msgid "" "reconstruction gave me a substantial project in which to find out." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:411 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without me " @@ -1719,14 +1719,14 @@ msgid "" "project's direction and on whether its checks were trustworthy." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:420 +#: website/public/blog/touhou-reconstruction/index.html:422 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:427 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "" @@ -1735,7 +1735,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:428 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1745,7 +1745,7 @@ msgid "" "continuation." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:437 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent " @@ -1753,7 +1753,7 @@ msgid "" "1,107 identified game functions." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:442 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly eleven days " @@ -1761,7 +1761,7 @@ msgid "" "arrived on 30 August." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:447 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. Getting there" @@ -1772,7 +1772,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:454 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1783,12 +1783,12 @@ msgid "" "something specific to investigate." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:462 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how much can " @@ -1797,7 +1797,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:467 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1806,7 +1806,7 @@ msgid "" "used {ph1}, the maximum-power threshold." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:473 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was effectively always " @@ -1817,13 +1817,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:480 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:486 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool accounted for" @@ -1834,7 +1834,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:493 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1847,7 +1847,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:499 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1857,7 +1857,7 @@ msgid "" "accepted functions." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:510 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include deliberately " @@ -1867,7 +1867,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1875,7 +1875,7 @@ msgid "" " game." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:519 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I cannot " @@ -1887,7 +1887,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:527 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1898,7 +1898,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:536 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1906,7 +1906,7 @@ msgid "" "next batch.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:544 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "" @@ -1915,7 +1915,7 @@ msgstr "" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:545 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1924,14 +1924,14 @@ msgid "" "completion. One passage reads:" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:556 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from our work " "paints a bad image for future decompilation efforts…" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:562 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -1941,7 +1941,7 @@ msgid "" "how reconstruction should proceed and how a contribution should be judged." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:571 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and " @@ -1950,7 +1950,7 @@ msgid "" " happened while they worked." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:578 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build tools. What " @@ -1958,7 +1958,7 @@ msgid "" "investigation on its own." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:583 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a result. " @@ -1967,7 +1967,7 @@ msgid "" "an implementation, even if an agent did most of the work." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:590 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the foundation " @@ -1975,7 +1975,7 @@ msgid "" " also changes what maintainers need to know before accepting a contribution." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:596 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the process " @@ -1984,7 +1984,7 @@ msgid "" "wrong. Different communities can choose how much of that change they want to take on." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:604 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its history " @@ -2004,7 +2004,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:610 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2013,14 +2013,14 @@ msgid "" "{ph4}credits and provenance{ph5} record the continuation boundary." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:628 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:629 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2030,7 +2030,7 @@ msgid "" "begin a reconstruction and how to keep it moving." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:637 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 September, 696 had " @@ -2039,7 +2039,7 @@ msgid "" "after initialization." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:644 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target could " @@ -2047,7 +2047,7 @@ msgid "" "tools and in the way the project was organized." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:650 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program early. If " @@ -2056,7 +2056,7 @@ msgid "" "shape how we approached TH095's whole-program build." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:657 +#: website/public/blog/touhou-reconstruction/index.html:659 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 " @@ -2064,7 +2064,7 @@ msgid "" "agent can use the result without repeating the investigation that led to it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:663 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why checking a " @@ -2074,7 +2074,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:669 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2082,7 +2082,7 @@ msgid "" "spend more of the next project's effort on what is actually new about its target." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:677 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a decision and" @@ -2090,7 +2090,7 @@ msgid "" "entire project's history to find out why the source looks the way it does." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:685 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "" @@ -2099,7 +2099,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:686 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2109,7 +2109,7 @@ msgid "" "{ph2}ReC98 work{ph3} gave us valuable knowledge and source material here too." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:695 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played complete Normal " @@ -2117,7 +2117,7 @@ msgid "" "port. Establishing a working DOS version first gives that port a reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:701 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the compiler " @@ -2125,7 +2125,7 @@ msgid "" "question through to a result and let that result guide the next experiment." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:707 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what state carries" @@ -2134,7 +2134,7 @@ msgid "" "an agent can work through the question much as it did on a Windows title." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:715 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did not force " @@ -2142,7 +2142,7 @@ msgid "" "workflow still gave us a way to solve it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:721 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against behavior " @@ -2156,7 +2156,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:726 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2164,17 +2164,17 @@ msgid "" " {ph2}64-bit port{ph3}. The port remains in development." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:739 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:742 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:744 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is a " @@ -2184,7 +2184,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:750 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2195,7 +2195,7 @@ msgid "" "interpretation came from." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:758 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me where " @@ -2204,14 +2204,14 @@ msgid "" "recover the relationship behind the old memory access." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:765 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:767 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2222,7 +2222,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:774 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2234,7 +2234,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:781 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2246,7 +2246,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:790 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2257,7 +2257,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:797 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2267,7 +2267,7 @@ msgid "" "still builds and behaves correctly along the paths we exercise." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:805 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated instructions. An " @@ -2276,7 +2276,7 @@ msgid "" " carrying a refactor further." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:812 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether a field " @@ -2289,7 +2289,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:819 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2301,7 +2301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:830 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2309,12 +2309,12 @@ msgid "" "recovered knowledge usable.{ph1} A port can then build on both." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:839 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:840 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry much of an " @@ -2323,7 +2323,7 @@ msgid "" "needed it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:847 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a failed " @@ -2332,7 +2332,7 @@ msgid "" "attention." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:854 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can test them " @@ -2341,7 +2341,7 @@ msgid "" "a project milestone." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:861 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's caller can" @@ -2350,7 +2350,7 @@ msgid "" "proposes and see where its explanation holds up." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:868 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their own. When " @@ -2362,7 +2362,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:875 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2375,7 +2375,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2386,7 +2386,7 @@ msgid "" "project can then inherit a stronger tool." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:898 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before a large " @@ -2396,7 +2396,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:904 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2405,7 +2405,7 @@ msgid "" "the starting conditions for another." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:914 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience starts becoming" @@ -2413,12 +2413,12 @@ msgid "" "person—or the next agent—can get done." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:922 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:923 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be fascinating" @@ -2426,7 +2426,7 @@ msgid "" "realistically give it. Many projects would stay ideas." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:929 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated investigations. " @@ -2437,7 +2437,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:936 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2445,7 +2445,7 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:943 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone. Each one " @@ -2453,12 +2453,12 @@ msgid "" "take us." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:951 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:952 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public GitHub history" @@ -2486,7 +2486,7 @@ msgstr "" #. {ph9}: #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:960 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2517,7 +2517,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:983 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2532,7 +2532,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1006 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2552,7 +2552,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1015 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2570,7 +2570,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1029 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2583,7 +2583,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1041 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2599,7 +2599,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1050 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2611,7 +2611,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1065 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -2629,72 +2629,72 @@ msgid "" " and how knowledge compounds across TH08, TH095 and PC-98 TH04." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:359 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:388 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:1090 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "" -#: website/public/contributors/index.html:112 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:204 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "" -#: website/public/contributors/index.html:205 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "" -#: website/public/contributors/index.html:206 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "" -#: website/public/contributors/index.html:207 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "" -#: website/public/contributors/index.html:212 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "" -#: website/public/contributors/index.html:217 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "" -#: website/public/contributors/index.html:227 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "" -#: website/public/contributors/index.html:229 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "" @@ -2702,13 +2702,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1116 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" -#: website/public/contributors/index.html:1121 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -2723,17 +2723,17 @@ msgctxt "page:contributors/index.html" msgid "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "" -#: website/public/contributors/index.html:230 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "" -#: website/public/contributors/index.html:1141 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "" -#: website/public/examples/dino-lab/index.html:112 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "" @@ -2742,18 +2742,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "" -#: website/public/examples/dino-lab/index.html:207 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "" -#: website/public/examples/dino-lab/index.html:208 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "" @@ -2762,7 +2762,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:209 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2771,15 +2771,15 @@ msgid "" "with {ph2}adjustable speed.{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:218 -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -2787,7 +2787,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:221 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -2795,7 +2795,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -2803,18 +2803,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:223 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "" -#: website/public/examples/dino-lab/index.html:228 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "" -#: website/public/examples/dino-lab/index.html:229 +#: website/public/examples/dino-lab/index.html:231 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" @@ -2822,54 +2822,54 @@ msgid "" "gradually accelerate again." msgstr "" -#: website/public/examples/dino-lab/index.html:235 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "" -#: website/public/examples/dino-lab/index.html:271 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "" -#: website/public/examples/dino-lab/index.html:274 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/examples/dino-lab/index.html:288 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/examples/dino-lab/index.html:291 +#: website/public/examples/dino-lab/index.html:293 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:296 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above remain " "readable." msgstr "" -#: website/public/examples/dino-lab/index.html:304 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "" @@ -2877,7 +2877,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:305 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2885,7 +2885,7 @@ msgid "" "the loaded {ph2}, including this branch in the game’s update function:" msgstr "" -#: website/public/examples/dino-lab/index.html:315 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "" @@ -2893,7 +2893,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:321 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2901,25 +2901,25 @@ msgid "" "without a collision." msgstr "" -#: website/public/examples/dino-lab/index.html:326 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:329 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "" -#: website/public/examples/dino-lab/index.html:332 -#: website/public/examples/dino-lab/index.html:431 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "" -#: website/public/examples/dino-lab/index.html:345 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the slider " @@ -2931,59 +2931,59 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:351 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:359 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:360 +#: website/public/examples/dino-lab/index.html:362 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:369 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "" -#: website/public/examples/dino-lab/index.html:370 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "" -#: website/public/examples/dino-lab/index.html:371 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:398 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "" -#: website/public/examples/dino-lab/index.html:401 +#: website/public/examples/dino-lab/index.html:403 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 "" -#: website/public/examples/dino-lab/index.html:407 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2992,13 +2992,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:413 +#: website/public/examples/dino-lab/index.html:415 #, 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 "" -#: website/public/examples/dino-lab/index.html:420 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this prompt." @@ -3012,7 +3012,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3024,7 +3024,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:440 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3034,7 +3034,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:449 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3047,7 +3047,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:456 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3067,63 +3067,63 @@ msgid "" "play." msgstr "" -#: website/public/examples/dino-lab/index.html:226 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:257 +#: website/public/examples/dino-lab/index.html:259 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:332 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:431 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/examples/dino-lab/index.html:485 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "" -#: website/public/faq/index.html:111 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:203 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "" -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:211 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -3131,7 +3131,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:212 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -3139,7 +3139,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -3147,24 +3147,24 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:214 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "" -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "" -#: website/public/faq/index.html:226 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "" #. {ph0}: Node.js -#: website/public/faq/index.html:227 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3172,22 +3172,22 @@ msgid "" "proposed changes." msgstr "" -#: website/public/faq/index.html:234 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "" -#: website/public/faq/index.html:235 website/public/faq/index.html:276 -#: website/public/faq/index.html:294 website/public/faq/index.html:378 -#: website/public/faq/index.html:425 website/public/faq/index.html:465 -#: website/public/faq/index.html:485 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:246 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3196,12 +3196,12 @@ msgid "" "{ph0}Follow the setup guide{ph1} for prerequisites and your first analysis." msgstr "" -#: website/public/faq/index.html:255 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "" -#: website/public/faq/index.html:256 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, Claude Desktop," @@ -3212,29 +3212,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:263 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "" -#: website/public/faq/index.html:268 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "" -#: website/public/faq/index.html:269 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "REA releases frequently, including bug fixes. If you installed the CLI with npm:" msgstr "" -#: website/public/faq/index.html:275 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "" #. {ph0}: npx -#: website/public/faq/index.html:287 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3242,13 +3242,13 @@ msgid "" "through {ph0}, run:" msgstr "" -#: website/public/faq/index.html:293 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "" #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:305 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3257,14 +3257,14 @@ msgid "" "followed by the command." msgstr "" -#: website/public/faq/index.html:313 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:316 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3273,24 +3273,24 @@ msgid "" "can call the tools." msgstr "" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "" -#: website/public/faq/index.html:330 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "" -#: website/public/faq/index.html:331 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:333 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3300,7 +3300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:338 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3309,7 +3309,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:343 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -3317,7 +3317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:348 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3325,12 +3325,12 @@ msgid "" "resources. {ph0}See the case studies{ph1} for worked investigations." msgstr "" -#: website/public/faq/index.html:356 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "" -#: website/public/faq/index.html:357 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection work with" @@ -3339,7 +3339,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:362 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3348,25 +3348,25 @@ msgid "" "{ph0}Set up native analysis{ph1}." msgstr "" -#: website/public/faq/index.html:370 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "" -#: website/public/faq/index.html:371 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or Electron app:" msgstr "" -#: website/public/faq/index.html:377 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:390 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3374,12 +3374,12 @@ msgid "" "CLI{ph1} for installation options." msgstr "" -#: website/public/faq/index.html:397 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "" -#: website/public/faq/index.html:398 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and relevant " @@ -3391,7 +3391,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:403 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3400,12 +3400,12 @@ msgid "" "how that process works." msgstr "" -#: website/public/faq/index.html:414 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "" -#: website/public/faq/index.html:415 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or Electron " @@ -3420,7 +3420,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3433,7 +3433,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:434 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3443,7 +3443,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:444 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3451,18 +3451,18 @@ msgid "" "Electron and browser examples." msgstr "" -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "" -#: website/public/faq/index.html:457 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "" #. {ph0}: doctor -#: website/public/faq/index.html:458 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3470,7 +3470,7 @@ msgid "" "for Codex:" msgstr "" -#: website/public/faq/index.html:464 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "" @@ -3478,7 +3478,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:476 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3486,14 +3486,14 @@ msgid "" "missing or stale registration, run setup for that client:" msgstr "" -#: website/public/faq/index.html:484 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:496 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3501,14 +3501,14 @@ msgid "" "absent, check the client's MCP connection error. {ph0}More setup diagnostics{ph1}." msgstr "" -#: website/public/faq/index.html:504 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:505 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3517,14 +3517,14 @@ msgid "" "provider setup{ph1}." msgstr "" -#: website/public/faq/index.html:514 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3534,7 +3534,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:519 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3543,24 +3543,24 @@ msgid "" "problem involves native analysis." msgstr "" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "" -#: website/public/faq/index.html:536 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "" -#: website/public/faq/index.html:537 +#: website/public/faq/index.html:539 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 "" -#: website/public/faq/index.html:544 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "" @@ -3569,7 +3569,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:545 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3580,7 +3580,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:557 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3600,77 +3600,77 @@ msgid "" " troubleshooting and sharing examples." msgstr "" -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "" -#: website/public/faq/index.html:217 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "" -#: website/public/faq/index.html:235 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "" -#: website/public/faq/index.html:276 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "" -#: website/public/faq/index.html:294 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "" -#: website/public/faq/index.html:378 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "" -#: website/public/faq/index.html:425 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "" -#: website/public/faq/index.html:465 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "" -#: website/public/faq/index.html:485 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "" -#: website/public/faq/index.html:583 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "" -#: website/public/first-investigation/index.html:111 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "" #. {ph0}:
-#: website/public/first-investigation/index.html:206 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "" -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one detail " @@ -3678,20 +3678,20 @@ msgid "" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:211 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -3699,7 +3699,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:221 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -3707,7 +3707,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:222 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -3715,7 +3715,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -3723,13 +3723,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:224 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "" -#: website/public/first-investigation/index.html:229 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "" @@ -3737,7 +3737,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:230 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3753,20 +3753,20 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:238 -#: website/public/first-investigation/index.html:288 -#: website/public/first-investigation/index.html:410 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:243 -#: website/public/first-investigation/index.html:265 -#: website/public/first-investigation/index.html:293 -#: website/public/first-investigation/index.html:415 -#: website/public/first-investigation/index.html:456 -#: website/public/first-investigation/index.html:473 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "" @@ -3778,7 +3778,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:252 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3786,26 +3786,26 @@ msgid "" "the setup plan for approval, then verify the installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/first-investigation/index.html:262 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "" -#: website/public/first-investigation/index.html:274 +#: website/public/first-investigation/index.html:276 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:280 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:281 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3821,7 +3821,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:302 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3830,7 +3830,7 @@ msgid "" " it contains, and the relevant files and lines.{ph5}{ph6}{ph7}" msgstr "" -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for inspection." @@ -3839,14 +3839,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:320 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:328 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3854,12 +3854,12 @@ msgid "" "the {ph0} folder and the same export question." msgstr "" -#: website/public/first-investigation/index.html:335 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "" -#: website/public/first-investigation/index.html:336 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -3868,7 +3868,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:338 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3876,7 +3876,7 @@ msgid "" " {ph1} in the user’s Downloads folder. The columns are {ph2} and {ph3}." msgstr "" -#: website/public/first-investigation/index.html:346 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "" @@ -3889,7 +3889,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:348 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -3903,7 +3903,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:356 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3920,7 +3920,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:364 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3928,7 +3928,7 @@ msgid "" "writes the file.{ph8}" msgstr "" -#: website/public/first-investigation/index.html:375 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is read from" @@ -3936,18 +3936,18 @@ msgid "" msgstr "" #. {ph0}: main.js -#: website/public/first-investigation/index.html:382 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" msgstr "" -#: website/public/first-investigation/index.html:383 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "" -#: website/public/first-investigation/index.html:391 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask your agent " @@ -3956,18 +3956,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:396 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" -#: website/public/first-investigation/index.html:403 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "" -#: website/public/first-investigation/index.html:404 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself contains a comma " @@ -3983,7 +3983,7 @@ msgstr "" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:424 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3992,13 +3992,13 @@ msgid "" "output.{ph6}{ph7}{ph8}" msgstr "" -#: website/public/first-investigation/index.html:437 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:442 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4006,34 +4006,34 @@ msgid "" "formatter directly with {ph0}." msgstr "" -#: website/public/first-investigation/index.html:448 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:449 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "" -#: website/public/first-investigation/index.html:490 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "" -#: website/public/first-investigation/index.html:491 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "" -#: website/public/first-investigation/index.html:493 +#: website/public/first-investigation/index.html:495 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:498 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or behavior." @@ -4043,7 +4043,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:503 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4055,7 +4055,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:509 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4067,7 +4067,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:517 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4087,66 +4087,66 @@ msgid "" "check the CSV formatter with a sample title." msgstr "" -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "" -#: website/public/first-investigation/index.html:227 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "" -#: website/public/first-investigation/index.html:243 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/first-investigation/index.html:265 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "" -#: website/public/first-investigation/index.html:293 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/first-investigation/index.html:415 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "" -#: website/public/first-investigation/index.html:456 -#: website/public/first-investigation/index.html:473 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "" -#: website/public/first-investigation/index.html:544 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "" -#: website/public/get-started/index.html:111 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:203 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "" -#: website/public/get-started/index.html:204 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "" -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small app." @@ -4154,7 +4154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:209 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4162,14 +4162,14 @@ msgid "" "{ph0}Connect REA{ph1}." msgstr "" -#: website/public/get-started/index.html:216 website/public/get-started/index.html:215 +#: website/public/get-started/index.html:218 website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -4177,7 +4177,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -4185,7 +4185,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -4193,7 +4193,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:221 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -4201,7 +4201,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:222 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" @@ -4209,7 +4209,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -4217,25 +4217,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:224 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" msgstr "" -#: website/public/get-started/index.html:229 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "" -#: website/public/get-started/index.html:230 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent can read " "those files and run tools for you." msgstr "" -#: website/public/get-started/index.html:235 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "" @@ -4244,7 +4244,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4257,7 +4257,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." @@ -4268,7 +4268,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:245 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -4281,7 +4281,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:250 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4289,7 +4289,7 @@ msgid "" "{ph6}), then press Enter." msgstr "" -#: website/public/get-started/index.html:255 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the agent's " @@ -4298,7 +4298,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:260 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4307,47 +4307,47 @@ msgid "" msgstr "" #. {ph0}: Node.js -#: website/public/get-started/index.html:266 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" msgstr "" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "" -#: website/public/get-started/index.html:272 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "" -#: website/public/get-started/index.html:273 website/public/get-started/index.html:296 -#: website/public/get-started/index.html:326 website/public/get-started/index.html:351 -#: website/public/get-started/index.html:374 website/public/get-started/index.html:389 -#: website/public/get-started/index.html:423 website/public/get-started/index.html:454 -#: website/public/get-started/index.html:468 website/public/get-started/index.html:486 -#: website/public/get-started/index.html:538 website/public/get-started/index.html:552 -#: website/public/get-started/index.html:584 website/public/get-started/index.html:613 -#: website/public/get-started/index.html:748 website/public/get-started/index.html:778 -#: website/public/get-started/index.html:803 website/public/get-started/index.html:818 -#: website/public/get-started/index.html:866 website/public/get-started/index.html:899 -#: website/public/get-started/index.html:1051 website/public/get-started/index.html:1113 -#: website/public/get-started/index.html:1136 website/public/get-started/index.html:1160 -#: website/public/get-started/index.html:1208 website/public/get-started/index.html:1283 -#: website/public/get-started/index.html:1309 website/public/get-started/index.html:1326 -#: website/public/get-started/index.html:1569 website/public/get-started/index.html:1628 -#: website/public/get-started/index.html:1647 website/public/get-started/index.html:1669 -#: website/public/get-started/index.html:1712 website/public/get-started/index.html:1742 -#: website/public/get-started/index.html:1763 +#: website/public/get-started/index.html:275 website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:285 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4356,7 +4356,7 @@ msgid "" msgstr "" #. {ph0}: node -v -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4365,7 +4365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:311 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -4376,7 +4376,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:317 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4386,7 +4386,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:340 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4394,13 +4394,13 @@ msgid "" "(.pkg){ph1}, open it and follow the installer. Then reopen Terminal." msgstr "" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:366 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4408,14 +4408,14 @@ msgid "" "other distributions, use your package manager." msgstr "" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:402 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4425,59 +4425,59 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:408 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Prefer a regular installer? Download the LTS version from {ph0}nodejs.org{ph1}." msgstr "" -#: website/public/get-started/index.html:415 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "" -#: website/public/get-started/index.html:416 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" -#: website/public/get-started/index.html:435 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working folder, open " "it instead." msgstr "" -#: website/public/get-started/index.html:442 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "" -#: website/public/get-started/index.html:443 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses. Pick one " "client below; open its instructions if you haven't used it before." msgstr "" -#: website/public/get-started/index.html:449 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "" -#: website/public/get-started/index.html:450 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" -#: website/public/get-started/index.html:479 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. Then start " "Codex:" msgstr "" -#: website/public/get-started/index.html:497 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to the " @@ -4486,28 +4486,28 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:502 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "" -#: website/public/get-started/index.html:509 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" -#: website/public/get-started/index.html:514 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "" -#: website/public/get-started/index.html:515 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open the agent " @@ -4520,7 +4520,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:521 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4528,18 +4528,18 @@ msgid "" "Copilot setup{ph5}" msgstr "" -#: website/public/get-started/index.html:533 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "" -#: website/public/get-started/index.html:534 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "" #. {ph0}: claude -#: website/public/get-started/index.html:563 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4549,18 +4549,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:568 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "" -#: website/public/get-started/index.html:575 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "" -#: website/public/get-started/index.html:576 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, then run " @@ -4569,7 +4569,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4582,20 +4582,20 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:599 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection details{ph3}" msgstr "" -#: website/public/get-started/index.html:609 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:624 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4605,19 +4605,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:629 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "" -#: website/public/get-started/index.html:636 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "" #. {ph0}: --client -#: website/public/get-started/index.html:637 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4625,12 +4625,12 @@ msgid "" "a client explicitly." msgstr "" -#: website/public/get-started/index.html:645 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "" -#: website/public/get-started/index.html:646 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "" @@ -4640,7 +4640,7 @@ msgstr "" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:721 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4656,20 +4656,20 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released-package- #. and-main" > #. {ph3}: -#: website/public/get-started/index.html:728 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release availability{ph3}" msgstr "" -#: website/public/get-started/index.html:740 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:741 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4680,18 +4680,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:759 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "" -#: website/public/get-started/index.html:770 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -4704,7 +4704,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:773 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4717,7 +4717,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:787 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4725,18 +4725,18 @@ msgid "" "the setup plan for approval, then verify the installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/get-started/index.html:799 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "" -#: website/public/get-started/index.html:814 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "" #. {ph0}: y -#: website/public/get-started/index.html:829 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4744,7 +4744,7 @@ msgid "" " use the arrow keys to move, Space to select your client and Enter to continue." msgstr "" -#: website/public/get-started/index.html:835 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection and the " @@ -4752,21 +4752,21 @@ msgid "" "before applying the changes." msgstr "" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a workflow for" " investigating software." msgstr "" -#: website/public/get-started/index.html:844 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. Restart your " "client when setup finishes." msgstr "" -#: website/public/get-started/index.html:849 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "" @@ -4775,7 +4775,7 @@ msgstr "" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:850 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4786,7 +4786,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:857 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4796,7 +4796,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:877 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4804,19 +4804,19 @@ msgid "" "your agent:" msgstr "" -#: website/public/get-started/index.html:883 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" -#: website/public/get-started/index.html:890 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:891 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4824,7 +4824,7 @@ msgid "" "agent can inspect its code without installing or launching Electron." msgstr "" -#: website/public/get-started/index.html:898 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "" @@ -4837,7 +4837,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:908 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4846,7 +4846,7 @@ msgid "" " it contains, and the relevant files and lines.{ph5}{ph6}{ph7}" msgstr "" -#: website/public/get-started/index.html:922 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -4855,7 +4855,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:924 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4865,13 +4865,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:931 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "" -#: website/public/get-started/index.html:937 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "" @@ -4879,14 +4879,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:940 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/get-started/index.html:948 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4895,7 +4895,7 @@ msgid "" msgstr "" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:954 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4903,7 +4903,7 @@ msgid "" "files and lines." msgstr "" -#: website/public/get-started/index.html:961 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "" @@ -4912,7 +4912,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:963 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4924,7 +4924,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4934,90 +4934,90 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:972 +#: website/public/get-started/index.html:974 #, 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 "" -#: website/public/get-started/index.html:977 website/public/get-started/index.html:1735 +#: website/public/get-started/index.html:979 website/public/get-started/index.html:1737 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:984 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "" -#: website/public/get-started/index.html:985 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool REA uses for" " that kind of software." msgstr "" -#: website/public/get-started/index.html:990 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" -#: website/public/get-started/index.html:993 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your operating " "system; the target is the program you want to inspect." msgstr "" -#: website/public/get-started/index.html:1002 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "" -#: website/public/get-started/index.html:1011 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "" -#: website/public/get-started/index.html:1017 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "" -#: website/public/get-started/index.html:1023 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "" -#: website/public/get-started/index.html:1024 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "" -#: website/public/get-started/index.html:1025 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "" -#: website/public/get-started/index.html:1031 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "" -#: website/public/get-started/index.html:1032 +#: website/public/get-started/index.html:1034 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 "" -#: website/public/get-started/index.html:1037 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, choose " @@ -5025,14 +5025,14 @@ msgid "" "the supported demo and its private display." msgstr "" -#: website/public/get-started/index.html:1043 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or Omarchy. " "Hopper is commercial software; its demo has vendor-defined limits." msgstr "" -#: website/public/get-started/index.html:1062 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in System " @@ -5042,18 +5042,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1067 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "" -#: website/public/get-started/index.html:1079 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the package " @@ -5061,7 +5061,7 @@ msgid "" msgstr "" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1084 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5072,7 +5072,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1089 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Find the extracted folder containing {ph0} or {ph1}. Use that folder for {ph2}." @@ -5084,7 +5084,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1095 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -5092,7 +5092,7 @@ msgstr "" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1105 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5100,12 +5100,12 @@ msgid "" "confirms the compiler is installed:" msgstr "" -#: website/public/get-started/index.html:1126 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "" -#: website/public/get-started/index.html:1127 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE applications" @@ -5113,29 +5113,29 @@ msgid "" " 64-bit JDK 21 or newer:" msgstr "" -#: website/public/get-started/index.html:1150 +#: website/public/get-started/index.html:1152 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:1156 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "" -#: website/public/get-started/index.html:1172 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or Linux arm64 " "installation, build the native decompiler for your computer before continuing." msgstr "" -#: website/public/get-started/index.html:1178 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "" -#: website/public/get-started/index.html:1179 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the guide for " @@ -5146,7 +5146,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing-macos- #. native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1184 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -5155,7 +5155,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1190 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -5165,18 +5165,18 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1196 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:1204 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" -#: website/public/get-started/index.html:1221 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting the paths," @@ -5188,19 +5188,19 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1226 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra guide{ph3}" msgstr "" -#: website/public/get-started/index.html:1239 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "" -#: website/public/get-started/index.html:1240 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose an attached" @@ -5208,7 +5208,7 @@ msgid "" "database." msgstr "" -#: website/public/get-started/index.html:1245 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, plus a macOS" @@ -5220,7 +5220,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1251 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5231,21 +5231,21 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1260 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands below." msgstr "" -#: website/public/get-started/index.html:1267 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1268 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5257,7 +5257,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1275 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5268,7 +5268,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1298 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5277,7 +5277,7 @@ msgid "" "before asking REA to inspect it." msgstr "" -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then rerun setup " @@ -5286,13 +5286,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1344 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" -#: website/public/get-started/index.html:1352 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name your " @@ -5300,7 +5300,7 @@ msgid "" msgstr "" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1357 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5310,130 +5310,130 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1364 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "" -#: website/public/get-started/index.html:1369 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "" -#: website/public/get-started/index.html:1372 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional tools, " "supported hosts and first command." msgstr "" -#: website/public/get-started/index.html:1380 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "" -#: website/public/get-started/index.html:1381 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "" -#: website/public/get-started/index.html:1382 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "" -#: website/public/get-started/index.html:1387 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1389 website/public/get-started/index.html:1394 -#: website/public/get-started/index.html:1399 website/public/get-started/index.html:1409 -#: website/public/get-started/index.html:1419 website/public/get-started/index.html:1429 -#: website/public/get-started/index.html:1439 website/public/get-started/index.html:1449 -#: website/public/get-started/index.html:1459 website/public/get-started/index.html:1469 -#: website/public/get-started/index.html:1479 website/public/get-started/index.html:1489 -#: website/public/get-started/index.html:1499 website/public/get-started/index.html:1509 -#: website/public/get-started/index.html:1519 website/public/get-started/index.html:1529 +#: website/public/get-started/index.html:1391 website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "" -#: website/public/get-started/index.html:1392 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "" -#: website/public/get-started/index.html:1397 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr "" -#: website/public/get-started/index.html:1407 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "" -#: website/public/get-started/index.html:1417 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "" -#: website/public/get-started/index.html:1427 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "" -#: website/public/get-started/index.html:1437 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "" -#: website/public/get-started/index.html:1447 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "" -#: website/public/get-started/index.html:1457 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "" -#: website/public/get-started/index.html:1467 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "" -#: website/public/get-started/index.html:1477 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "" -#: website/public/get-started/index.html:1487 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "" -#: website/public/get-started/index.html:1497 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "" -#: website/public/get-started/index.html:1507 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "" -#: website/public/get-started/index.html:1517 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "" -#: website/public/get-started/index.html:1527 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "" @@ -5447,7 +5447,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1539 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5455,31 +5455,31 @@ msgid "" "{ph6}All investigation guides{ph7}" msgstr "" -#: website/public/get-started/index.html:1559 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "" -#: website/public/get-started/index.html:1561 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "" -#: website/public/get-started/index.html:1562 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without running " "the app:" msgstr "" -#: website/public/get-started/index.html:1568 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1580 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5487,13 +5487,13 @@ msgid "" "such as {ph1} works here." msgstr "" -#: website/public/get-started/index.html:1586 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "" #. {ph0}: resources -#: website/public/get-started/index.html:1587 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -5503,7 +5503,7 @@ msgstr "" #. {ph1}: #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1592 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -5514,7 +5514,7 @@ msgstr "" #. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1598 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5525,20 +5525,20 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1606 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "" #. {ph0}: app.asar -#: website/public/get-started/index.html:1611 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" -#: website/public/get-started/index.html:1616 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives their " @@ -5546,27 +5546,27 @@ msgid "" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:1621 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "" -#: website/public/get-started/index.html:1627 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1639 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "" #. {ph0}: main -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5574,13 +5574,13 @@ msgid "" "must be configured first." msgstr "" -#: website/public/get-started/index.html:1662 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "On macOS or Linux, you can also use the curl installer after preparing Node.js:" msgstr "" #. {ph0}: rea setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Follow the setup prompts to connect your agent. If they don't appear, run {ph0}." @@ -5588,7 +5588,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1684 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5596,18 +5596,18 @@ msgid "" "Linux, the default setup command is {ph1}." msgstr "" -#: website/public/get-started/index.html:1693 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "" -#: website/public/get-started/index.html:1695 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "" #. {ph0}: doctor -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5615,39 +5615,39 @@ msgid "" "Codex:" msgstr "" -#: website/public/get-started/index.html:1700 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable REA in " "MCP settings and allow its tools in the agent chat." msgstr "" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "" -#: website/public/get-started/index.html:1711 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "" -#: website/public/get-started/index.html:1723 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" -#: website/public/get-started/index.html:1728 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "" -#: website/public/get-started/index.html:1729 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent runs " @@ -5655,17 +5655,17 @@ msgid "" "there. Headless providers run on the same host as REA." msgstr "" -#: website/public/get-started/index.html:1738 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "" -#: website/public/get-started/index.html:1755 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "" -#: website/public/get-started/index.html:1756 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review its plan " @@ -5674,7 +5674,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1774 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5686,7 +5686,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose-update- #. and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1780 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" @@ -5696,7 +5696,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}" @@ -5706,7 +5706,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1792 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5718,7 +5718,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5729,7 +5729,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1803 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}REA community{ph1}{ph2}Questions, investigations and work in progress.{ph3}" @@ -5747,88 +5747,88 @@ msgid "" "the terminal. Setup, first questions and native provider guides." msgstr "" -#: website/public/get-started/index.html:227 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "" -#: website/public/get-started/index.html:273 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "" -#: website/public/get-started/index.html:296 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "" -#: website/public/get-started/index.html:326 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "" -#: website/public/get-started/index.html:351 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "" -#: website/public/get-started/index.html:374 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "" -#: website/public/get-started/index.html:389 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "" -#: website/public/get-started/index.html:423 website/public/get-started/index.html:454 -#: website/public/get-started/index.html:468 website/public/get-started/index.html:486 -#: website/public/get-started/index.html:538 website/public/get-started/index.html:552 -#: website/public/get-started/index.html:584 website/public/get-started/index.html:613 -#: website/public/get-started/index.html:748 website/public/get-started/index.html:803 -#: website/public/get-started/index.html:818 website/public/get-started/index.html:866 -#: website/public/get-started/index.html:1051 website/public/get-started/index.html:1113 -#: website/public/get-started/index.html:1136 website/public/get-started/index.html:1160 -#: website/public/get-started/index.html:1208 website/public/get-started/index.html:1283 -#: website/public/get-started/index.html:1309 website/public/get-started/index.html:1326 -#: website/public/get-started/index.html:1647 website/public/get-started/index.html:1669 -#: website/public/get-started/index.html:1742 website/public/get-started/index.html:1763 +#: website/public/get-started/index.html:425 website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "" -#: website/public/get-started/index.html:778 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/get-started/index.html:899 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/get-started/index.html:1569 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "" -#: website/public/get-started/index.html:1628 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "" -#: website/public/get-started/index.html:1712 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "" -#: website/public/get-started/index.html:1827 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/browser/index.html:111 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "" @@ -5837,34 +5837,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "" #. {ph0}:
-#: website/public/guides/browser/index.html:207 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "" -#: website/public/guides/browser/index.html:208 +#: website/public/guides/browser/index.html:210 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 "" -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -5872,7 +5872,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:218 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -5880,7 +5880,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:219 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5888,7 +5888,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -5896,13 +5896,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:221 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "" -#: website/public/guides/browser/index.html:226 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "" @@ -5912,7 +5912,7 @@ msgstr "" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:227 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5920,7 +5920,7 @@ msgid "" "loads {ph4}, formats the two notes as CSV, and starts a download." msgstr "" -#: website/public/guides/browser/index.html:235 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "" @@ -5931,7 +5931,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:237 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5945,7 +5945,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:245 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5961,7 +5961,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:253 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -5969,52 +5969,52 @@ msgid "" "request to {ph5} in {ph6}.{ph7}" msgstr "" -#: website/public/guides/browser/index.html:266 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "" -#: website/public/guides/browser/index.html:272 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "" -#: website/public/guides/browser/index.html:273 +#: website/public/guides/browser/index.html:275 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 "" -#: website/public/guides/browser/index.html:279 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "" -#: website/public/guides/browser/index.html:280 -#: website/public/guides/browser/index.html:312 -#: website/public/guides/browser/index.html:346 -#: website/public/guides/browser/index.html:365 -#: website/public/guides/browser/index.html:430 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "" -#: website/public/guides/browser/index.html:294 +#: website/public/guides/browser/index.html:296 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 "" -#: website/public/guides/browser/index.html:299 +#: website/public/guides/browser/index.html:301 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 "" -#: website/public/guides/browser/index.html:305 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "" @@ -6027,7 +6027,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -6039,7 +6039,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:321 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6048,7 +6048,7 @@ msgid "" msgstr "" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:329 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6056,30 +6056,30 @@ msgid "" "it start the capture before you click." msgstr "" -#: website/public/guides/browser/index.html:334 +#: website/public/guides/browser/index.html:336 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:341 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "" -#: website/public/guides/browser/index.html:345 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:358 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6087,14 +6087,14 @@ msgid "" "run:" msgstr "" -#: website/public/guides/browser/index.html:364 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:380 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6102,56 +6102,56 @@ msgid "" "browser. The result arrives after the observation window ends." msgstr "" -#: website/public/guides/browser/index.html:385 +#: website/public/guides/browser/index.html:387 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 "" -#: website/public/guides/browser/index.html:392 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "" -#: website/public/guides/browser/index.html:395 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "" -#: website/public/guides/browser/index.html:400 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "" -#: website/public/guides/browser/index.html:401 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "" -#: website/public/guides/browser/index.html:418 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "" @@ -6159,19 +6159,19 @@ msgstr "" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:419 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "" -#: website/public/guides/browser/index.html:429 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:443 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6180,14 +6180,14 @@ msgid "" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:450 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:463 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6204,14 +6204,14 @@ msgstr "" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:468 +#: website/public/guides/browser/index.html:470 #, 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}: notes.json -#: website/public/guides/browser/index.html:479 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6221,7 +6221,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:484 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6232,7 +6232,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:489 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6253,216 +6253,216 @@ msgid "" "request and follow the export script." msgstr "" -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "" -#: website/public/guides/browser/index.html:224 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "" -#: website/public/guides/browser/index.html:280 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "" -#: website/public/guides/browser/index.html:312 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/browser/index.html:346 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "" -#: website/public/guides/browser/index.html:365 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "" -#: website/public/guides/browser/index.html:430 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "" -#: website/public/guides/browser/index.html:517 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/index.html:111 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:203 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "" -#: website/public/guides/index.html:204 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "" -#: website/public/guides/index.html:205 +#: website/public/guides/index.html:207 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 "" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "" -#: website/public/guides/index.html:214 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "" -#: website/public/guides/index.html:215 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "" -#: website/public/guides/index.html:220 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "" -#: website/public/guides/index.html:222 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "" -#: website/public/guides/index.html:223 +#: website/public/guides/index.html:225 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 "" -#: website/public/guides/index.html:228 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "" -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "" -#: website/public/guides/index.html:230 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "" -#: website/public/guides/index.html:231 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "" -#: website/public/guides/index.html:237 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/index.html:239 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "" -#: website/public/guides/index.html:240 +#: website/public/guides/index.html:242 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 "" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "" -#: website/public/guides/index.html:247 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "" -#: website/public/guides/index.html:248 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "" -#: website/public/guides/index.html:248 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "" -#: website/public/guides/index.html:250 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:253 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." msgstr "" -#: website/public/guides/index.html:260 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "" -#: website/public/guides/index.html:262 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "" -#: website/public/guides/index.html:263 +#: website/public/guides/index.html:265 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:268 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "" -#: website/public/guides/index.html:269 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "" -#: website/public/guides/index.html:270 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "" -#: website/public/guides/index.html:272 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "" @@ -6479,12 +6479,12 @@ msgid "" "and a browser request." msgstr "" -#: website/public/guides/index.html:292 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/javascript/index.html:111 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "" @@ -6493,33 +6493,33 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "" #. {ph0}:
-#: website/public/guides/javascript/index.html:207 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "" -#: website/public/guides/javascript/index.html:208 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV file writer." msgstr "" -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -6527,7 +6527,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:218 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6535,7 +6535,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:219 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -6543,7 +6543,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -6551,20 +6551,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:221 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:226 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:227 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6573,7 +6573,7 @@ msgid "" "across several files." msgstr "" -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "" @@ -6587,7 +6587,7 @@ msgstr "" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:238 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6602,7 +6602,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:246 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6617,7 +6617,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:254 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6628,27 +6628,27 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "" -#: website/public/guides/javascript/index.html:267 +#: website/public/guides/javascript/index.html:269 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 "" -#: website/public/guides/javascript/index.html:275 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:276 +#: website/public/guides/javascript/index.html:278 #, 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:" @@ -6662,14 +6662,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:284 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/javascript/index.html:286 -#: website/public/guides/javascript/index.html:435 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "" @@ -6680,7 +6680,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:295 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6689,13 +6689,13 @@ msgid "" msgstr "" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Example prompt. Include the absolute path to the application folder or {ph0}." msgstr "" -#: website/public/guides/javascript/index.html:307 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and process " @@ -6703,26 +6703,26 @@ msgid "" "feature." msgstr "" -#: website/public/guides/javascript/index.html:314 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "" -#: website/public/guides/javascript/index.html:315 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:318 -#: website/public/guides/javascript/index.html:334 -#: website/public/guides/javascript/index.html:349 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" msgstr "" -#: website/public/guides/javascript/index.html:328 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, which exposes" @@ -6731,7 +6731,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:342 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6741,7 +6741,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:359 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6749,26 +6749,26 @@ msgid "" "main process writes {ph1} into the user's Downloads folder." msgstr "" -#: website/public/guides/javascript/index.html:366 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "" -#: website/public/guides/javascript/index.html:376 +#: website/public/guides/javascript/index.html:378 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 "" -#: website/public/guides/javascript/index.html:382 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:383 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6779,25 +6779,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:389 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:398 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "" -#: website/public/guides/javascript/index.html:434 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:447 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6805,20 +6805,20 @@ msgid "" " matching handler in {ph0}. Source locations are in {ph1}." msgstr "" -#: website/public/guides/javascript/index.html:453 +#: website/public/guides/javascript/index.html:455 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 "" -#: website/public/guides/javascript/index.html:460 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:462 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6826,7 +6826,7 @@ msgid "" "writing the file fails?" msgstr "" -#: website/public/guides/javascript/index.html:468 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names and " @@ -6838,7 +6838,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:474 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6850,7 +6850,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:480 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6862,7 +6862,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:486 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6882,32 +6882,32 @@ msgid "" "Includes downloadable example files and a verified analysis result." msgstr "" -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "" -#: website/public/guides/javascript/index.html:224 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/javascript/index.html:286 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/javascript/index.html:435 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "" -#: website/public/guides/javascript/index.html:513 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/native/index.html:111 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "" @@ -6916,34 +6916,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "" #. {ph0}:
-#: website/public/guides/native/index.html:206 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" -#: website/public/guides/native/index.html:207 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then check the " "recovered C." msgstr "" -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -6951,7 +6951,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:217 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6959,7 +6959,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:218 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -6967,7 +6967,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -6975,18 +6975,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:220 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "" -#: website/public/guides/native/index.html:225 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "" -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound code turns it" @@ -6995,7 +6995,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:230 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7004,7 +7004,7 @@ msgid "" "missing arithmetic." msgstr "" -#: website/public/guides/native/index.html:237 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "" @@ -7013,7 +7013,7 @@ msgstr "" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:239 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7023,7 +7023,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:244 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7033,7 +7033,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7043,7 +7043,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7052,7 +7052,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:257 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7060,7 +7060,7 @@ msgid "" "decoded." msgstr "" -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "" @@ -7071,7 +7071,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:268 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7086,7 +7086,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:276 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7102,7 +7102,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:284 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7110,14 +7110,14 @@ msgid "" "to {ph5}, {ph6} and a scale value.{ph7}" msgstr "" -#: website/public/guides/native/index.html:296 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent interprets them " "together." msgstr "" -#: website/public/guides/native/index.html:303 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "" @@ -7126,7 +7126,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:304 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7134,19 +7134,19 @@ msgid "" "tool{ph3}, provide the local executable and a question:" msgstr "" -#: website/public/guides/native/index.html:315 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "" -#: website/public/guides/native/index.html:316 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:318 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7157,7 +7157,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:324 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7167,7 +7167,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:329 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." @@ -7175,7 +7175,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:334 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -7189,14 +7189,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:344 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/native/index.html:346 -#: website/public/guides/native/index.html:477 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "" @@ -7207,7 +7207,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:355 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7215,7 +7215,7 @@ msgid "" "calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/guides/native/index.html:363 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 executable. REA " @@ -7223,7 +7223,7 @@ msgid "" "another small Windows program you have." msgstr "" -#: website/public/guides/native/index.html:370 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "" @@ -7232,7 +7232,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:372 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7244,7 +7244,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7254,46 +7254,46 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:381 +#: website/public/guides/native/index.html:383 #, 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 "" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "" -#: website/public/guides/native/index.html:390 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "" -#: website/public/guides/native/index.html:393 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "" -#: website/public/guides/native/index.html:399 +#: website/public/guides/native/index.html:401 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:404 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "" -#: website/public/guides/native/index.html:407 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:413 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7301,34 +7301,34 @@ msgid "" "coordinate by 30; adding {ph0} (20) gives the brick's screen position." msgstr "" -#: website/public/guides/native/index.html:418 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "" -#: website/public/guides/native/index.html:421 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" -#: website/public/guides/native/index.html:429 +#: website/public/guides/native/index.html:431 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:436 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "" -#: website/public/guides/native/index.html:438 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "" -#: website/public/guides/native/index.html:445 +#: website/public/guides/native/index.html:447 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 " @@ -7336,7 +7336,7 @@ msgid "" " stereo field." msgstr "" -#: website/public/guides/native/index.html:450 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205 inputs " @@ -7346,20 +7346,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:455 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" -#: website/public/guides/native/index.html:462 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:463 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7368,20 +7368,20 @@ msgid "" "this file parsed?” or “Which function handles this menu action?”" msgstr "" -#: website/public/guides/native/index.html:470 +#: website/public/guides/native/index.html:472 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 "" -#: website/public/guides/native/index.html:476 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "" #. {ph0}: main -#: website/public/guides/native/index.html:489 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7390,7 +7390,7 @@ msgid "" "queries reuse the imported binary while that session is open." msgstr "" -#: website/public/guides/native/index.html:495 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result leaves a call" @@ -7409,50 +7409,50 @@ msgid "" "constants and check reconstructed C." msgstr "" -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "" -#: website/public/guides/native/index.html:223 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "" -#: website/public/guides/native/index.html:346 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/native/index.html:477 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "" -#: website/public/guides/native/index.html:519 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "" -#: website/public/index.html:113 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "" -#: website/public/index.html:205 website/public/index.html:215 -#: website/public/index.html:213 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "" -#: website/public/index.html:206 website/public/index.html:254 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -7460,7 +7460,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" @@ -7468,7 +7468,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -7476,7 +7476,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:220 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -7484,7 +7484,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:221 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" @@ -7492,7 +7492,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:222 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -7500,44 +7500,44 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:223 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "" -#: website/public/index.html:232 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "" #. {ph0}:
-#: website/public/index.html:233 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "" -#: website/public/index.html:234 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the tools to " "inspect the code behind the answer." msgstr "" -#: website/public/index.html:239 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "" -#: website/public/index.html:240 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -7545,13 +7545,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:247 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "" -#: website/public/index.html:255 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -7564,16 +7564,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:258 +#: website/public/index.html:260 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/index.html:263 website/public/index.html:287 -#: website/public/index.html:523 website/public/index.html:604 -#: website/public/index.html:828 website/public/index.html:1140 -#: website/public/index.html:1168 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "" @@ -7585,7 +7585,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:272 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7593,17 +7593,17 @@ msgid "" "the setup plan for approval, then verify the installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:284 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "" -#: website/public/index.html:296 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" -#: website/public/index.html:300 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "" @@ -7611,7 +7611,7 @@ msgstr "" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:311 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" @@ -7620,7 +7620,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:317 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7628,12 +7628,12 @@ msgid "" "guide →{ph2}" msgstr "" -#: website/public/index.html:330 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "" -#: website/public/index.html:332 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the program " @@ -7641,56 +7641,56 @@ msgid "" "rebuild it." msgstr "" -#: website/public/index.html:339 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "" -#: website/public/index.html:340 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "" -#: website/public/index.html:343 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "" -#: website/public/index.html:344 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" -#: website/public/index.html:347 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "" -#: website/public/index.html:348 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" -#: website/public/index.html:354 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "" #. {ph0}: 200 + 10% -#: website/public/index.html:355 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" msgstr "" -#: website/public/index.html:364 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:372 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -7698,7 +7698,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:380 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -7706,7 +7706,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:388 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -7716,48 +7716,48 @@ msgstr "" #. {ph1}: #. {ph2}: -#: website/public/index.html:399 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "" -#: website/public/index.html:441 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:442 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are these?”" msgstr "" -#: website/public/index.html:446 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "" -#: website/public/index.html:452 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "" -#: website/public/index.html:456 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "" -#: website/public/index.html:461 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:462 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7765,43 +7765,43 @@ msgid "" "in?{ph1}”" msgstr "" -#: website/public/index.html:468 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" -#: website/public/index.html:478 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "" -#: website/public/index.html:483 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:484 +#: website/public/index.html:486 #, 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 "" -#: website/public/index.html:488 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" -#: website/public/index.html:504 website/public/index.html:431 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:507 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7809,7 +7809,7 @@ msgid "" "calculation.{ph1}" msgstr "" -#: website/public/index.html:515 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "" @@ -7822,7 +7822,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:518 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -7835,7 +7835,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:532 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7843,42 +7843,42 @@ msgid "" "220?{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:540 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:543 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "" -#: website/public/index.html:556 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "" -#: website/public/index.html:557 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "" -#: website/public/index.html:562 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "" -#: website/public/index.html:563 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:570 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7886,30 +7886,30 @@ msgid "" " the findings. {ph0}Continue with the Calculator example ↓{ph1}" msgstr "" -#: website/public/index.html:582 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % button." msgstr "" -#: website/public/index.html:587 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "" -#: website/public/index.html:588 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "" -#: website/public/index.html:590 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we first need to " "find out how the speed changes." msgstr "" -#: website/public/index.html:596 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "" @@ -7922,7 +7922,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:599 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" @@ -7934,7 +7934,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:613 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7942,102 +7942,102 @@ msgid "" "the speed rule, then build a small version with an adjustable speed.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/index.html:622 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "" -#: website/public/index.html:623 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and increases a" " little each update while it is below 13." msgstr "" -#: website/public/index.html:630 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "" -#: website/public/index.html:631 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press Play, then" " choose your own speed." msgstr "" -#: website/public/index.html:667 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "" -#: website/public/index.html:670 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "" -#: website/public/index.html:671 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "" -#: website/public/index.html:674 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "" -#: website/public/index.html:684 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/index.html:688 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/index.html:691 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" -#: website/public/index.html:696 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source code below." msgstr "" -#: website/public/index.html:702 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "" -#: website/public/index.html:708 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:711 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" #. {ph0}: index.js -#: website/public/index.html:719 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" msgstr "" -#: website/public/index.html:728 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "Start at 6. Add 0.001 each update without a collision, while speed is below 13." msgstr "" -#: website/public/index.html:733 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "" @@ -8048,7 +8048,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:735 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8062,7 +8062,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:742 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8076,7 +8076,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:750 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8085,7 +8085,7 @@ msgid "" msgstr "" #. {ph0}: index.js -#: website/public/index.html:760 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8093,12 +8093,12 @@ msgid "" "returned the loaded {ph0}, including its source and digest." msgstr "" -#: website/public/index.html:767 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "" -#: website/public/index.html:773 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check, with " @@ -8108,7 +8108,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:779 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8121,7 +8121,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:785 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8135,30 +8135,30 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:794 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "" -#: website/public/index.html:811 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "" -#: website/public/index.html:812 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "" -#: website/public/index.html:814 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and try them " "in a small calculator." msgstr "" -#: website/public/index.html:820 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "" @@ -8171,7 +8171,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:823 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" @@ -8183,7 +8183,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:837 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8191,18 +8191,18 @@ msgid "" "after + and ×, then build a small calculator that uses both.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/index.html:846 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "" -#: website/public/index.html:847 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two different rules:" msgstr "" -#: website/public/index.html:853 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "" @@ -8210,13 +8210,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:854 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "" -#: website/public/index.html:860 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "" @@ -8224,56 +8224,56 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:861 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "" -#: website/public/index.html:868 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "" -#: website/public/index.html:869 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" -#: website/public/index.html:917 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "" -#: website/public/index.html:925 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "" -#: website/public/index.html:928 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "" -#: website/public/index.html:935 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:936 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." msgstr "" -#: website/public/index.html:942 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "" -#: website/public/index.html:951 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "" @@ -8286,7 +8286,7 @@ msgstr "" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:955 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8301,7 +8301,7 @@ msgstr "" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:964 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8315,7 +8315,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:972 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8324,17 +8324,17 @@ msgid "" "above.{ph5}" msgstr "" -#: website/public/index.html:986 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/index.html:997 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "" -#: website/public/index.html:1007 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable summary " @@ -8351,7 +8351,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1012 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8359,166 +8359,166 @@ msgid "" "setup guide{ph5}" msgstr "" -#: website/public/index.html:1032 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "" -#: website/public/index.html:1033 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "Explore a feature in a released app or game, with code and checked results." msgstr "" -#: website/public/index.html:1038 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "" -#: website/public/index.html:1042 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/index.html:1043 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/index.html:1044 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a demo clock to" " see why it changes every 30 seconds." msgstr "" -#: website/public/index.html:1048 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "" -#: website/public/index.html:1053 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/index.html:1054 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/index.html:1055 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a copy " "preserves rich block data." msgstr "" -#: website/public/index.html:1059 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/index.html:1064 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/index.html:1065 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/index.html:1066 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "Recover how a ball's position becomes left/right sound in a 1996 Windows game." msgstr "" -#: website/public/index.html:1070 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/index.html:1081 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "" -#: website/public/index.html:1082 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "" -#: website/public/index.html:1083 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "Download our Notes example, trace its CSV export, and check one changed input." msgstr "" -#: website/public/index.html:1088 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "" -#: website/public/index.html:1097 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "" -#: website/public/index.html:1098 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "These guides cover setup and a first investigation for each kind of software." msgstr "" -#: website/public/index.html:1105 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "" -#: website/public/index.html:1106 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables and " "libraries." msgstr "" -#: website/public/index.html:1110 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "" -#: website/public/index.html:1113 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/index.html:1114 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder or ASAR " "archive." msgstr "" -#: website/public/index.html:1118 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "" -#: website/public/index.html:1121 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "" -#: website/public/index.html:1122 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results across runs." msgstr "" -#: website/public/index.html:1126 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "" -#: website/public/index.html:1130 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "" @@ -8531,7 +8531,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1135 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -8544,14 +8544,14 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:1149 +#: website/public/index.html:1151 #, 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 "" -#: website/public/index.html:1158 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "" @@ -8564,7 +8564,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1163 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction" @@ -8576,7 +8576,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1177 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8586,20 +8586,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1186 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "" -#: website/public/index.html:1197 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1199 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -8607,7 +8607,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -8615,7 +8615,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1206 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -8633,68 +8633,68 @@ msgid "" "clear guides and try interactive examples with REA." msgstr "" -#: website/public/index.html:263 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/index.html:287 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "" -#: website/public/index.html:299 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "" -#: website/public/index.html:367 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "" -#: website/public/index.html:523 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "" -#: website/public/index.html:604 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/index.html:657 +#: website/public/index.html:659 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:828 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "" -#: website/public/index.html:874 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "" -#: website/public/index.html:1140 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "" -#: website/public/index.html:1168 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "" -#: website/public/index.html:1232 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/aegis/index.html:112 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "" @@ -8703,42 +8703,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "" -#: website/public/showcase/aegis/index.html:207 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "" #. {ph0}:
-#: website/public/showcase/aegis/index.html:208 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" -#: website/public/showcase/aegis/index.html:209 +#: website/public/showcase/aegis/index.html:211 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 "" -#: website/public/showcase/aegis/index.html:214 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "" -#: website/public/showcase/aegis/index.html:217 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "" -#: website/public/showcase/aegis/index.html:223 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "" @@ -8749,7 +8749,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:225 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8763,7 +8763,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:234 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8777,7 +8777,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:242 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8785,14 +8785,14 @@ msgid "" "browser demo reproduces the rule and checks it against public reference cases.{ph5}" msgstr "" -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -8800,7 +8800,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -8808,7 +8808,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:259 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -8816,7 +8816,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:260 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -8824,7 +8824,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -8832,20 +8832,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:262 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:267 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:268 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8861,14 +8861,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:276 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/aegis/index.html:278 -#: website/public/showcase/aegis/index.html:741 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "" @@ -8880,7 +8880,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:287 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8891,7 +8891,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:298 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8899,14 +8899,14 @@ msgid "" "{ph0}Get the APK and analysis setup ↓{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:306 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:307 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8914,33 +8914,33 @@ msgid "" " the account key to generate a code. The same key and block produce the same code." msgstr "" -#: website/public/showcase/aegis/index.html:314 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:317 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "" -#: website/public/showcase/aegis/index.html:320 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "" -#: website/public/showcase/aegis/index.html:323 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "" -#: website/public/showcase/aegis/index.html:325 -#: website/public/showcase/aegis/index.html:652 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "" @@ -8949,35 +8949,35 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:326 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:334 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "" -#: website/public/showcase/aegis/index.html:342 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "" -#: website/public/showcase/aegis/index.html:348 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "" -#: website/public/showcase/aegis/index.html:363 -#: website/public/showcase/aegis/index.html:663 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:370 -#: website/public/showcase/aegis/index.html:668 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "" @@ -8986,7 +8986,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:379 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -8996,7 +8996,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:386 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9004,35 +9004,35 @@ msgid "" "calculation recovered from the APK." msgstr "" -#: website/public/showcase/aegis/index.html:393 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the clock." msgstr "" -#: website/public/showcase/aegis/index.html:402 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "" -#: website/public/showcase/aegis/index.html:405 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "" -#: website/public/showcase/aegis/index.html:408 -#: website/public/showcase/aegis/index.html:440 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/aegis/index.html:418 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:430 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9040,19 +9040,19 @@ msgid "" "imported accounts. TOTP means a time-based one-time password." msgstr "" -#: website/public/showcase/aegis/index.html:437 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "" -#: website/public/showcase/aegis/index.html:454 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:465 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9061,21 +9061,21 @@ msgid "" msgstr "" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:473 +#: website/public/showcase/aegis/index.html:475 #, 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 "" -#: website/public/showcase/aegis/index.html:480 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:481 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9086,7 +9086,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:496 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -9094,7 +9094,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:504 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -9102,25 +9102,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:512 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" msgstr "" -#: website/public/showcase/aegis/index.html:524 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "" -#: website/public/showcase/aegis/index.html:554 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:571 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9130,7 +9130,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:577 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9140,7 +9140,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:584 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9152,7 +9152,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:591 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9160,7 +9160,7 @@ msgid "" "panel is an explanatory summary. {ph0}Aegis code is GPL-3.0.{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:600 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "" @@ -9169,7 +9169,7 @@ msgstr "" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:601 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9177,12 +9177,12 @@ msgid "" " body; the original source calls the helper {ph3}." msgstr "" -#: website/public/showcase/aegis/index.html:609 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "" -#: website/public/showcase/aegis/index.html:623 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a positive " @@ -9195,20 +9195,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:630 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "" -#: website/public/showcase/aegis/index.html:640 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:641 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9217,29 +9217,29 @@ msgid "" "time-block boundaries and codes beginning with zero." msgstr "" -#: website/public/showcase/aegis/index.html:651 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "" -#: website/public/showcase/aegis/index.html:653 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "" -#: website/public/showcase/aegis/index.html:658 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:673 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:680 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9247,37 +9247,37 @@ msgid "" "6238{ph1}. Check the browser implementation against them:" msgstr "" -#: website/public/showcase/aegis/index.html:688 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "" -#: website/public/showcase/aegis/index.html:699 +#: website/public/showcase/aegis/index.html:701 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:708 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK was " "inspected statically." msgstr "" -#: website/public/showcase/aegis/index.html:715 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:716 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9287,7 +9287,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:721 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9295,28 +9295,28 @@ msgid "" "case used JDK 21." msgstr "" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "" -#: website/public/showcase/aegis/index.html:731 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "" -#: website/public/showcase/aegis/index.html:740 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:754 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9326,7 +9326,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:759 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9334,7 +9334,7 @@ msgid "" "time interval?{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:769 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "" @@ -9349,7 +9349,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:771 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9361,13 +9361,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:787 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:794 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited to Aegis;" @@ -9386,37 +9386,37 @@ msgid "" "and try a reconstruction with an adjustable clock." msgstr "" -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/aegis/index.html:265 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "" -#: website/public/showcase/aegis/index.html:278 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "" -#: website/public/showcase/aegis/index.html:491 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "" -#: website/public/showcase/aegis/index.html:741 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "" -#: website/public/showcase/aegis/index.html:818 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/ctf/index.html:111 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "" @@ -9425,26 +9425,26 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "" -#: website/public/showcase/ctf/index.html:206 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "" #. {ph0}:
-#: website/public/showcase/ctf/index.html:207 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:208 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9452,17 +9452,17 @@ msgid "" "input that makes the original program print {ph0}." msgstr "" -#: website/public/showcase/ctf/index.html:213 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" -#: website/public/showcase/ctf/index.html:216 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:224 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "" @@ -9473,7 +9473,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:226 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9487,7 +9487,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:234 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9501,7 +9501,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:242 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9509,19 +9509,19 @@ msgid "" "solves the equations. REA captures the original program accepting the result.{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:251 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -9529,7 +9529,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -9537,7 +9537,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:263 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -9545,7 +9545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:264 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -9553,7 +9553,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -9561,20 +9561,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:266 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "" -#: website/public/showcase/ctf/index.html:271 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:272 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9590,15 +9590,15 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:279 +#: website/public/showcase/ctf/index.html:281 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/ctf/index.html:284 website/public/showcase/ctf/index.html:503 -#: website/public/showcase/ctf/index.html:527 website/public/showcase/ctf/index.html:597 -#: website/public/showcase/ctf/index.html:744 +#: website/public/showcase/ctf/index.html:286 website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "" @@ -9609,7 +9609,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:293 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9617,48 +9617,48 @@ msgid "" "checks work, then verify the answer with the original program.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:302 +#: website/public/showcase/ctf/index.html:304 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:308 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "" -#: website/public/showcase/ctf/index.html:311 website/public/showcase/ctf/index.html:347 +#: website/public/showcase/ctf/index.html:313 website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/ctf/index.html:327 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "" -#: website/public/showcase/ctf/index.html:337 +#: website/public/showcase/ctf/index.html:339 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:344 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "" -#: website/public/showcase/ctf/index.html:359 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:372 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9667,19 +9667,19 @@ msgid "" "across {ph1} bytes give 26 masks." msgstr "" -#: website/public/showcase/ctf/index.html:380 +#: website/public/showcase/ctf/index.html:382 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 "" -#: website/public/showcase/ctf/index.html:388 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "" -#: website/public/showcase/ctf/index.html:389 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells contribute to" @@ -9689,23 +9689,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:409 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" -#: website/public/showcase/ctf/index.html:416 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "" -#: website/public/showcase/ctf/index.html:422 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "" -#: website/public/showcase/ctf/index.html:429 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "" @@ -9714,7 +9714,7 @@ msgstr "" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:438 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9723,12 +9723,12 @@ msgid "" "{ph2}, so that character is {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:447 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "" -#: website/public/showcase/ctf/index.html:448 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule in C." @@ -9736,7 +9736,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:458 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -9744,7 +9744,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:466 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -9752,7 +9752,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:474 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -9760,7 +9760,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:482 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -9768,18 +9768,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:490 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "" -#: website/public/showcase/ctf/index.html:502 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/showcase/ctf/index.html:526 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "" @@ -9787,7 +9787,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -9795,7 +9795,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9805,7 +9805,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9815,7 +9815,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:567 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9827,7 +9827,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:572 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9835,19 +9835,19 @@ msgid "" " mismatch jumps to {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:579 +#: website/public/showcase/ctf/index.html:581 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 "" -#: website/public/showcase/ctf/index.html:587 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "" -#: website/public/showcase/ctf/index.html:588 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 character codes " @@ -9855,13 +9855,13 @@ msgid "" "Python script can solve together." msgstr "" -#: website/public/showcase/ctf/index.html:596 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:624 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9870,19 +9870,19 @@ msgid "" "braces. The complete download includes all 26 masks and targets." msgstr "" -#: website/public/showcase/ctf/index.html:630 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "" -#: website/public/showcase/ctf/index.html:636 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:637 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9891,71 +9891,71 @@ msgid "" "of 1441, and the program rejects it." msgstr "" -#: website/public/showcase/ctf/index.html:647 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "" -#: website/public/showcase/ctf/index.html:648 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "" -#: website/public/showcase/ctf/index.html:649 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "" -#: website/public/showcase/ctf/index.html:654 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "" -#: website/public/showcase/ctf/index.html:659 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "" -#: website/public/showcase/ctf/index.html:670 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "" -#: website/public/showcase/ctf/index.html:671 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "" -#: website/public/showcase/ctf/index.html:683 +#: website/public/showcase/ctf/index.html:685 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:689 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "" -#: website/public/showcase/ctf/index.html:690 +#: website/public/showcase/ctf/index.html:692 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 "" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "" -#: website/public/showcase/ctf/index.html:701 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading the " @@ -9974,7 +9974,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:706 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9982,35 +9982,35 @@ msgid "" "· {ph4}REA evidence notes{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:726 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "" -#: website/public/showcase/ctf/index.html:727 +#: website/public/showcase/ctf/index.html:729 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:733 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:737 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "" -#: website/public/showcase/ctf/index.html:743 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:760 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10018,7 +10018,7 @@ msgid "" "Python and {ph0}. Running the original executable needs Linux x86-64." msgstr "" -#: website/public/showcase/ctf/index.html:765 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "" @@ -10035,27 +10035,27 @@ msgid "" "functions, extract the masks and compare a recovered flag with the original program." msgstr "" -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/ctf/index.html:269 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "" -#: website/public/showcase/ctf/index.html:284 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "" -#: website/public/showcase/ctf/index.html:395 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/ctf/index.html:401 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only that cell " @@ -10063,42 +10063,42 @@ msgid "" "is 7." msgstr "" -#: website/public/showcase/ctf/index.html:453 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:503 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "" -#: website/public/showcase/ctf/index.html:527 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:597 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "" -#: website/public/showcase/ctf/index.html:671 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "" -#: website/public/showcase/ctf/index.html:744 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "" -#: website/public/showcase/ctf/index.html:787 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/dx-ball/index.html:111 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "" @@ -10107,39 +10107,39 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "" -#: website/public/showcase/dx-ball/index.html:206 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:207 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:210 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 "" -#: website/public/showcase/dx-ball/index.html:212 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:229 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10148,14 +10148,14 @@ msgid "" "figure{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:242 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -10163,7 +10163,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:243 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -10171,7 +10171,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -10179,23 +10179,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:245 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "" -#: website/public/showcase/dx-ball/index.html:261 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "" @@ -10206,7 +10206,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:264 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10214,12 +10214,12 @@ msgid "" "coverage{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:276 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "" -#: website/public/showcase/dx-ball/index.html:277 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, animations, " @@ -10228,12 +10228,12 @@ msgid "" "power-up handling and Windows integration." msgstr "" -#: website/public/showcase/dx-ball/index.html:287 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:288 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. The " @@ -10249,17 +10249,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:297 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/dx-ball/index.html:299 -#: website/public/showcase/dx-ball/index.html:490 -#: website/public/showcase/dx-ball/index.html:511 -#: website/public/showcase/dx-ball/index.html:582 -#: website/public/showcase/dx-ball/index.html:736 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "" @@ -10270,7 +10270,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:308 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10278,14 +10278,14 @@ msgid "" "calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/dx-ball/index.html:316 +#: website/public/showcase/dx-ball/index.html:318 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 "" -#: website/public/showcase/dx-ball/index.html:321 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and read the " @@ -10296,7 +10296,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:327 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10305,48 +10305,48 @@ msgid "" "discrepancy gave the agent a concrete reason to keep investigating." msgstr "" -#: website/public/showcase/dx-ball/index.html:335 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "" -#: website/public/showcase/dx-ball/index.html:338 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:348 +#: website/public/showcase/dx-ball/index.html:350 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:354 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "" -#: website/public/showcase/dx-ball/index.html:357 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:361 -#: website/public/showcase/dx-ball/index.html:385 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/dx-ball/index.html:367 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:374 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10354,19 +10354,19 @@ msgid "" "{ph0} exposes the integer input missing from the decompiler view." msgstr "" -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "" -#: website/public/showcase/dx-ball/index.html:391 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:398 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10374,36 +10374,36 @@ msgid "" " by 30; adding 20 gives the brick's screen coordinate, {ph1}." msgstr "" -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:409 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "" -#: website/public/showcase/dx-ball/index.html:419 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:426 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan scale. The " "agent now has the values needed for the C expression." msgstr "" -#: website/public/showcase/dx-ball/index.html:434 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "" -#: website/public/showcase/dx-ball/index.html:435 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original instructions and " @@ -10412,7 +10412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:445 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -10420,7 +10420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:453 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -10428,7 +10428,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:461 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -10436,7 +10436,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:469 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -10444,18 +10444,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:477 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "" -#: website/public/showcase/dx-ball/index.html:489 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:510 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "" @@ -10465,7 +10465,7 @@ msgstr "" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:537 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10480,7 +10480,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:544 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10494,7 +10494,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:550 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10508,7 +10508,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:556 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10522,7 +10522,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:563 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10531,30 +10531,30 @@ msgid "" "returned value." msgstr "" -#: website/public/showcase/dx-ball/index.html:572 +#: website/public/showcase/dx-ball/index.html:574 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:578 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "" -#: website/public/showcase/dx-ball/index.html:581 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "" -#: website/public/showcase/dx-ball/index.html:615 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:616 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10562,54 +10562,54 @@ msgid "" " it before the call:" msgstr "" -#: website/public/showcase/dx-ball/index.html:630 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "" -#: website/public/showcase/dx-ball/index.html:633 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:638 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "" -#: website/public/showcase/dx-ball/index.html:639 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "" -#: website/public/showcase/dx-ball/index.html:640 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "" -#: website/public/showcase/dx-ball/index.html:647 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "" -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:656 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "" -#: website/public/showcase/dx-ball/index.html:657 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "" -#: website/public/showcase/dx-ball/index.html:662 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -10622,31 +10622,31 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:667 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" "{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence references{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:681 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "" -#: website/public/showcase/dx-ball/index.html:682 +#: website/public/showcase/dx-ball/index.html:684 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:688 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "" -#: website/public/showcase/dx-ball/index.html:689 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value with the " @@ -10654,12 +10654,12 @@ msgid "" "0.5, 1, 20 and −1." msgstr "" -#: website/public/showcase/dx-ball/index.html:697 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "" -#: website/public/showcase/dx-ball/index.html:698 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay matches " @@ -10667,7 +10667,7 @@ msgid "" "referenced constants." msgstr "" -#: website/public/showcase/dx-ball/index.html:706 +#: website/public/showcase/dx-ball/index.html:708 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 " @@ -10678,18 +10678,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:712 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:721 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "" -#: website/public/showcase/dx-ball/index.html:722 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and bonus " @@ -10697,14 +10697,14 @@ msgid "" " compare the implementation with the original." msgstr "" -#: website/public/showcase/dx-ball/index.html:728 +#: website/public/showcase/dx-ball/index.html:730 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 "" -#: website/public/showcase/dx-ball/index.html:735 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "" @@ -10713,7 +10713,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:749 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local setup.{ph3}" @@ -10723,7 +10723,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:754 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10736,7 +10736,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:761 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10744,7 +10744,7 @@ msgid "" " and pixel writes.{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:772 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "" @@ -10761,12 +10761,12 @@ msgid "" "original-x86 tests and matching compiled function bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:215 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/dx-ball/index.html:221 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller supplies 20 " @@ -10775,170 +10775,170 @@ msgid "" " original x86 in 3,205 cases and by VC4.0 compiler replay matching 63 bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/dx-ball/index.html:248 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "" -#: website/public/showcase/dx-ball/index.html:299 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/showcase/dx-ball/index.html:440 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:490 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:511 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "" -#: website/public/showcase/dx-ball/index.html:582 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "" -#: website/public/showcase/dx-ball/index.html:736 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "" -#: website/public/showcase/dx-ball/index.html:795 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/index.html:111 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:203 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "" -#: website/public/showcase/index.html:204 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "" -#: website/public/showcase/index.html:205 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked results." msgstr "" -#: website/public/showcase/index.html:212 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/showcase/index.html:214 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/showcase/index.html:215 +#: website/public/showcase/index.html:217 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 "" -#: website/public/showcase/index.html:221 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "" -#: website/public/showcase/index.html:223 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "" -#: website/public/showcase/index.html:224 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "" -#: website/public/showcase/index.html:230 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "" -#: website/public/showcase/index.html:232 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "" -#: website/public/showcase/index.html:233 +#: website/public/showcase/index.html:235 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 "" -#: website/public/showcase/index.html:239 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "" -#: website/public/showcase/index.html:241 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "" -#: website/public/showcase/index.html:242 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "" -#: website/public/showcase/index.html:248 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/showcase/index.html:250 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/showcase/index.html:251 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's instructions, caller " @@ -10946,42 +10946,42 @@ msgid "" "original behavior and all 63 compiled bytes." msgstr "" -#: website/public/showcase/index.html:258 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "" -#: website/public/showcase/index.html:260 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "" -#: website/public/showcase/index.html:261 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/showcase/index.html:267 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/showcase/index.html:269 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/showcase/index.html:270 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC wrappers " @@ -10989,42 +10989,42 @@ msgid "" "connected to a copy." msgstr "" -#: website/public/showcase/index.html:276 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "" -#: website/public/showcase/index.html:278 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "" -#: website/public/showcase/index.html:279 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/showcase/index.html:285 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "" -#: website/public/showcase/index.html:287 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "" -#: website/public/showcase/index.html:288 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, divide and " @@ -11032,44 +11032,44 @@ msgid "" "player." msgstr "" -#: website/public/showcase/index.html:294 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "" -#: website/public/showcase/index.html:296 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "" -#: website/public/showcase/index.html:297 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "" -#: website/public/showcase/index.html:299 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "" -#: website/public/showcase/index.html:304 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "" -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:307 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 "" -#: website/public/showcase/index.html:309 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "" @@ -11086,12 +11086,12 @@ msgid "" "DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." msgstr "" -#: website/public/showcase/index.html:327 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/notion/index.html:111 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "" @@ -11100,37 +11100,37 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "" -#: website/public/showcase/notion/index.html:206 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "" #. {ph0}:
-#: website/public/showcase/notion/index.html:207 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:210 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 "" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "" -#: website/public/showcase/notion/index.html:216 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "" @@ -11142,7 +11142,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:218 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11157,7 +11157,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:225 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11172,7 +11172,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:232 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11187,7 +11187,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:239 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11196,27 +11196,27 @@ msgid "" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "" -#: website/public/showcase/notion/index.html:251 +#: website/public/showcase/notion/index.html:253 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 "" -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:262 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -11224,7 +11224,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -11232,19 +11232,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:264 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "" -#: website/public/showcase/notion/index.html:269 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:270 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11260,17 +11260,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:279 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/notion/index.html:281 -#: website/public/showcase/notion/index.html:354 -#: website/public/showcase/notion/index.html:383 -#: website/public/showcase/notion/index.html:414 -#: website/public/showcase/notion/index.html:442 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "" @@ -11281,7 +11281,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:290 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11289,19 +11289,19 @@ msgid "" "clipboard. Show the code at each step.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/notion/index.html:298 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your coding " "agent." msgstr "" -#: website/public/showcase/notion/index.html:303 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "" -#: website/public/showcase/notion/index.html:304 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and the call " @@ -11309,23 +11309,23 @@ msgid "" "bundle:" msgstr "" -#: website/public/showcase/notion/index.html:310 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "" -#: website/public/showcase/notion/index.html:313 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "" -#: website/public/showcase/notion/index.html:319 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:325 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11335,7 +11335,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:332 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11344,32 +11344,32 @@ msgid "" " to look for in the main bundle. The four excerpts below show the route it connects." msgstr "" -#: website/public/showcase/notion/index.html:341 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "" -#: website/public/showcase/notion/index.html:342 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. Unrelated " "members are omitted." msgstr "" -#: website/public/showcase/notion/index.html:348 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:351 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:370 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11377,20 +11377,20 @@ msgid "" "request leaves the page's process." msgstr "" -#: website/public/showcase/notion/index.html:377 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:380 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:400 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11398,13 +11398,13 @@ msgid "" "IPC. We can now look for {ph0} on the main-process side." msgstr "" -#: website/public/showcase/notion/index.html:408 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:411 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" @@ -11412,7 +11412,7 @@ msgstr "" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:429 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11420,19 +11420,19 @@ msgid "" "for that channel." msgstr "" -#: website/public/showcase/notion/index.html:436 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:439 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" msgstr "" -#: website/public/showcase/notion/index.html:459 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the supplied " @@ -11440,13 +11440,13 @@ msgid "" "the exposed method to this call." msgstr "" -#: website/public/showcase/notion/index.html:470 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:471 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11454,100 +11454,100 @@ msgid "" " and puts an ID in the copied HTML to connect them." msgstr "" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "" -#: website/public/showcase/notion/index.html:481 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "" -#: website/public/showcase/notion/index.html:489 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "" -#: website/public/showcase/notion/index.html:502 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "" -#: website/public/showcase/notion/index.html:503 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "" -#: website/public/showcase/notion/index.html:505 +#: website/public/showcase/notion/index.html:507 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 "" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:513 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 "" -#: website/public/showcase/notion/index.html:515 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" -#: website/public/showcase/notion/index.html:521 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "" -#: website/public/showcase/notion/index.html:523 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "" -#: website/public/showcase/notion/index.html:524 +#: website/public/showcase/notion/index.html:526 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 "" -#: website/public/showcase/notion/index.html:529 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "" -#: website/public/showcase/notion/index.html:534 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "" -#: website/public/showcase/notion/index.html:541 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "" -#: website/public/showcase/notion/index.html:550 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows and cells." msgstr "" -#: website/public/showcase/notion/index.html:557 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:558 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11556,14 +11556,14 @@ msgid "" "Subsequent statement batches and results travel over that port." msgstr "" -#: website/public/showcase/notion/index.html:564 +#: website/public/showcase/notion/index.html:566 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 "" -#: website/public/showcase/notion/index.html:571 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "" @@ -11571,7 +11571,7 @@ msgstr "" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:572 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11584,7 +11584,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:580 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11594,7 +11594,7 @@ msgid "" "describe those probes rather than a captured desktop UI session." msgstr "" -#: website/public/showcase/notion/index.html:588 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, recorded " @@ -11604,7 +11604,7 @@ msgid "" msgstr "" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:595 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11617,7 +11617,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:603 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11629,7 +11629,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:610 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11637,7 +11637,7 @@ msgid "" "function.{ph3}" msgstr "" -#: website/public/showcase/notion/index.html:618 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "" @@ -11654,52 +11654,52 @@ msgid "" "process, with short code excerpts and a look at its rich clipboard format." msgstr "" -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/notion/index.html:267 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "" -#: website/public/showcase/notion/index.html:281 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "" -#: website/public/showcase/notion/index.html:354 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "" -#: website/public/showcase/notion/index.html:383 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:414 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:442 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "" -#: website/public/showcase/notion/index.html:641 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/th04/index.html:111 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "" @@ -11708,42 +11708,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "" -#: website/public/showcase/th04/index.html:206 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "" #. {ph0}:
-#: website/public/showcase/th04/index.html:207 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "" -#: website/public/showcase/th04/index.html:208 +#: website/public/showcase/th04/index.html:210 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 "" -#: website/public/showcase/th04/index.html:213 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "" -#: website/public/showcase/th04/index.html:214 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:220 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "" @@ -11754,7 +11754,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:222 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11768,7 +11768,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:229 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11782,7 +11782,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:237 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11796,7 +11796,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:244 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11804,21 +11804,21 @@ msgid "" "checks cover the bullet-generation code that contains this helper.{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:253 +#: website/public/showcase/th04/index.html:255 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 "" -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -11826,7 +11826,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:264 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -11834,7 +11834,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:265 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -11842,7 +11842,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -11850,18 +11850,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:267 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:272 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "" -#: website/public/showcase/th04/index.html:273 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper " @@ -11877,16 +11877,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:280 +#: website/public/showcase/th04/index.html:282 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/th04/index.html:285 -#: website/public/showcase/th04/index.html:341 -#: website/public/showcase/th04/index.html:518 -#: website/public/showcase/th04/index.html:552 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "" @@ -11897,7 +11897,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:294 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11905,7 +11905,7 @@ msgid "" "player. Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout available " @@ -11913,7 +11913,7 @@ msgid "" msgstr "" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:307 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11923,7 +11923,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:327 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11931,12 +11931,12 @@ msgid "" "template rotation 0. {ph0}Open figure{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:335 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "" -#: website/public/showcase/th04/index.html:340 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "" @@ -11945,7 +11945,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:355 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11953,13 +11953,13 @@ msgid "" " attack's source{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:366 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:367 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -11968,41 +11968,41 @@ msgid "" "pattern." msgstr "" -#: website/public/showcase/th04/index.html:375 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "" -#: website/public/showcase/th04/index.html:378 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/th04/index.html:387 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "" -#: website/public/showcase/th04/index.html:396 +#: website/public/showcase/th04/index.html:398 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:402 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:406 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/th04/index.html:412 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "" @@ -12010,7 +12010,7 @@ msgstr "" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:420 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12019,22 +12019,22 @@ msgid "" "sequence appears below." msgstr "" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "" -#: website/public/showcase/th04/index.html:433 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "" -#: website/public/showcase/th04/index.html:442 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "" -#: website/public/showcase/th04/index.html:450 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction helper. Its" @@ -12042,12 +12042,12 @@ msgid "" "readable; REA lets the agent check the original operations behind them." msgstr "" -#: website/public/showcase/th04/index.html:461 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "" -#: website/public/showcase/th04/index.html:462 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation. This " @@ -12057,7 +12057,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:473 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -12065,7 +12065,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:481 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -12073,7 +12073,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:489 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -12081,7 +12081,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:497 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -12089,18 +12089,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:505 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "" -#: website/public/showcase/th04/index.html:517 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "" -#: website/public/showcase/th04/index.html:551 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "" @@ -12108,7 +12108,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:580 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12120,7 +12120,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:585 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12132,7 +12132,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:592 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12144,7 +12144,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:598 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12156,7 +12156,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:604 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12165,7 +12165,7 @@ msgid "" "surrounding source also converts this angle and speed into velocity." msgstr "" -#: website/public/showcase/th04/index.html:613 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store. The C++ " @@ -12173,17 +12173,17 @@ msgid "" "the linked project." msgstr "" -#: website/public/showcase/th04/index.html:619 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "" -#: website/public/showcase/th04/index.html:622 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "" -#: website/public/showcase/th04/index.html:632 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "" @@ -12200,7 +12200,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:648 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12208,36 +12208,36 @@ msgid "" "representation{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:668 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "" -#: website/public/showcase/th04/index.html:669 +#: website/public/showcase/th04/index.html:671 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 "" -#: website/public/showcase/th04/index.html:676 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "" -#: website/public/showcase/th04/index.html:677 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the original " "executable." msgstr "" -#: website/public/showcase/th04/index.html:683 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "" -#: website/public/showcase/th04/index.html:684 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input hashes match " @@ -12248,65 +12248,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:690 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:698 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "" -#: website/public/showcase/th04/index.html:711 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:712 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "" -#: website/public/showcase/th04/index.html:718 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "" -#: website/public/showcase/th04/index.html:719 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "" -#: website/public/showcase/th04/index.html:724 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this helper. " @@ -12314,7 +12314,7 @@ msgid "" msgstr "" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:729 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12324,7 +12324,7 @@ msgid "" msgstr "" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:736 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12335,19 +12335,19 @@ msgid "" "open." msgstr "" -#: website/public/showcase/th04/index.html:744 +#: website/public/showcase/th04/index.html:746 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 "" -#: website/public/showcase/th04/index.html:753 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:754 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and assembly. " @@ -12357,7 +12357,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:760 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -12369,7 +12369,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:766 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12383,7 +12383,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:775 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12397,7 +12397,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:784 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12417,27 +12417,27 @@ msgid "" "C++ to see how a ring of bullets is spaced and aimed at the player." msgstr "" -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/th04/index.html:270 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "" -#: website/public/showcase/th04/index.html:285 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "" -#: website/public/showcase/th04/index.html:313 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/th04/index.html:319 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. Adding a player" @@ -12446,27 +12446,27 @@ msgid "" "degrees." msgstr "" -#: website/public/showcase/th04/index.html:341 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "" -#: website/public/showcase/th04/index.html:468 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:518 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "" -#: website/public/showcase/th04/index.html:552 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:810 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "" diff --git a/website/locales/ml/messages.po b/website/locales/ml/messages.po index 80b6d7ba161..cdd9e7f6bbe 100644 --- a/website/locales/ml/messages.po +++ b/website/locales/ml/messages.po @@ -7,297 +7,251 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: website/public/blog/index.html:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "" -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "" #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " "and learning from compiler feedback." msgstr "" -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 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 "" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 -msgctxt "shared" -msgid "Join the community" -msgstr "" - -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 -msgctxt "shared" -msgid "Follow us on X" -msgstr "" - -#. {ph0}: #: website/public/blog/index.html:250 #: website/public/blog/reverse-engineering-models/index.html:889 #: website/public/blog/touhou-reconstruction/index.html:1086 @@ -316,6 +270,52 @@ msgstr "" #: website/public/showcase/index.html:323 #: website/public/showcase/notion/index.html:637 #: website/public/showcase/th04/index.html:806 +msgctxt "shared" +msgid "Join the community" +msgstr "" + +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 +msgctxt "shared" +msgid "Follow us on X" +msgstr "" + +#. {ph0}: +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -333,160 +333,160 @@ msgid "" "and AI agents." msgstr "" -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "" -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "" @@ -495,35 +495,35 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -533,7 +533,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -543,7 +543,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -553,7 +553,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -563,7 +563,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -571,14 +571,14 @@ msgid "" " result I want from the whole agent." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -586,7 +586,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -594,7 +594,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -602,7 +602,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -610,7 +610,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -618,7 +618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -626,7 +626,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -634,18 +634,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -655,7 +655,7 @@ msgid "" "session managed to recover." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -664,12 +664,12 @@ msgid "" " the source changes show what made that progress possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -686,7 +686,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -696,7 +696,7 @@ msgid "" "values needed to stay alive." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -708,7 +708,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -718,7 +718,7 @@ msgid "" "full function matched{ph1}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -726,7 +726,7 @@ msgid "" " it refine that hypothesis into a source arrangement that matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "" @@ -735,7 +735,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -753,7 +753,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -766,7 +766,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -776,7 +776,7 @@ msgid "" "better way to express the surrounding work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -786,7 +786,7 @@ msgid "" "it inherited." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -796,12 +796,12 @@ msgid "" "experience with that compiler and code?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -811,7 +811,7 @@ msgid "" "across games." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -827,7 +827,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -838,14 +838,14 @@ msgid "" "hypothesis for {ph2}the reconstruction of {ph3}{ph4}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" " without adding storage. The full function then matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -853,7 +853,7 @@ msgid "" "cases and learn which source variations are worth testing first." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -867,7 +867,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -880,14 +880,14 @@ msgid "" "specialist would need to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -898,7 +898,7 @@ msgid "" "experiments that made them useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -911,7 +911,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -924,7 +924,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -935,7 +935,7 @@ msgid "" "attempt. Knowing the relevant pattern is only the beginning of that process." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -944,12 +944,12 @@ msgid "" "after feedback, or both." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -958,7 +958,7 @@ msgid "" "the remaining possibilities and suggest a more useful next experiment." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -967,67 +967,67 @@ msgid "" "needed to change." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " "collision checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " "by what they taught us." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -1038,7 +1038,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1048,7 +1048,7 @@ msgid "" " be able to revisit the source representation or inspect the evidence again." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -1057,12 +1057,12 @@ msgid "" "part of the behavior we want the model to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -1071,7 +1071,7 @@ msgid "" "inspect the mismatch and use that observation to choose its next step." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -1084,7 +1084,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1100,7 +1100,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1111,7 +1111,7 @@ msgid "" "useful correction, it had to work out what to measure." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -1119,12 +1119,12 @@ msgid "" "investigate how far a learned search policy can get with it." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -1132,7 +1132,7 @@ msgid "" "repeatable answer, we still need to understand what that answer covers." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -1149,7 +1149,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1160,7 +1160,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1172,7 +1172,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1183,7 +1183,7 @@ msgid "" "terms of the bytes and data it checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -1195,7 +1195,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1204,12 +1204,12 @@ msgid "" " we give it, understanding that feedback becomes more important too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -1219,7 +1219,7 @@ msgid "" "RL-trained version would let us examine what training adds." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -1228,7 +1228,7 @@ msgid "" "would help distinguish a reliable search strategy from a lucky candidate." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -1238,7 +1238,7 @@ msgid "" "would reveal that division of work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -1247,7 +1247,7 @@ msgid "" "families and keep their accepted answers out of both training and retrieval." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -1257,7 +1257,7 @@ msgid "" "workflow. Training costs would need their own accounting too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -1270,7 +1270,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1284,7 +1284,7 @@ msgid "" "check." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -1294,12 +1294,12 @@ msgid "" "model is most useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -1309,7 +1309,7 @@ msgid "" "evidence or investigate the measurement itself." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -1317,7 +1317,7 @@ msgid "" "that made the earlier breakthroughs possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -1326,7 +1326,7 @@ msgid "" "and which improve through repeated experience with a particular craft." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -1338,7 +1338,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1346,7 +1346,7 @@ msgid "" "to use that record to build the comparison and see what we learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "" @@ -1355,7 +1355,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1363,7 +1363,7 @@ msgid "" "experiment context." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -1373,7 +1373,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1394,7 +1394,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1416,7 +1416,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1438,7 +1438,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1461,7 +1461,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -1470,7 +1470,7 @@ msgid "" "reconstruction{ph7}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -1490,27 +1490,27 @@ msgid "" " and learning to propose better hypotheses from compiler feedback." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "" @@ -1519,35 +1519,35 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1557,7 +1557,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1568,7 +1568,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1578,7 +1578,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1588,7 +1588,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1596,65 +1596,65 @@ msgid "" "methods are still taking shape. There is plenty left to explore." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -1663,7 +1663,7 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -1672,40 +1672,40 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 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:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -1713,7 +1713,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -1721,7 +1721,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -1729,7 +1729,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -1737,7 +1737,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -1745,7 +1745,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -1753,7 +1753,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -1761,18 +1761,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -1782,7 +1782,7 @@ msgid "" " head." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -1791,7 +1791,7 @@ msgid "" " field needs to establish what it can check against a reliable reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -1800,7 +1800,7 @@ msgid "" "which to find out." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -1811,7 +1811,7 @@ msgid "" "were trustworthy." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -1819,7 +1819,7 @@ msgid "" "had just learned?" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "" @@ -1828,7 +1828,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1838,7 +1838,7 @@ msgid "" " contributions that I preserved in the continuation." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -1846,7 +1846,7 @@ msgid "" "for all 1,107 identified game functions." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -1854,7 +1854,7 @@ msgid "" " Linux 64-bit release arrived on 30 August." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -1865,7 +1865,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1877,12 +1877,12 @@ msgid "" "investigate." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -1891,7 +1891,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1900,7 +1900,7 @@ msgid "" "{ph0}. The original used {ph1}, the maximum-power threshold." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -1911,13 +1911,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -1928,7 +1928,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1941,7 +1941,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1951,7 +1951,7 @@ msgid "" "incorrect references across five accepted functions." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -1961,7 +1961,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1969,7 +1969,7 @@ msgid "" "repairing the game." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -1981,7 +1981,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1993,7 +1993,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2001,7 +2001,7 @@ msgid "" " for the next batch.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "" @@ -2010,7 +2010,7 @@ msgstr "" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2019,14 +2019,14 @@ msgid "" " privately until completion. One passage reads:" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" " our work paints a bad image for future decompilation efforts…" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -2037,7 +2037,7 @@ msgid "" "contribution should be judged." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -2046,7 +2046,7 @@ msgid "" "much of the reasoning happened while they worked." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -2054,7 +2054,7 @@ msgid "" "pursue the next investigation on its own." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -2064,7 +2064,7 @@ msgid "" "agent did most of the work." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -2073,7 +2073,7 @@ msgid "" " accepting a contribution." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -2083,7 +2083,7 @@ msgid "" " much of that change they want to take on." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -2104,7 +2104,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2113,14 +2113,14 @@ msgid "" " TH08's {ph4}credits and provenance{ph5} record the continuation boundary." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2130,7 +2130,7 @@ msgid "" " much more about how to begin a reconstruction and how to keep it moving." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -2139,7 +2139,7 @@ msgid "" "on 10 September, about twelve days after initialization." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -2147,7 +2147,7 @@ msgid "" "present in the tools and in the way the project was organized." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -2157,7 +2157,7 @@ msgid "" "program build." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -2166,7 +2166,7 @@ msgid "" "that led to it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -2177,7 +2177,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2186,7 +2186,7 @@ msgid "" "actually new about its target." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -2195,7 +2195,7 @@ msgid "" "the way it does." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "" @@ -2204,7 +2204,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2215,7 +2215,7 @@ msgid "" "source material here too." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -2224,7 +2224,7 @@ msgid "" " that port a reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -2233,7 +2233,7 @@ msgid "" "next experiment." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -2243,7 +2243,7 @@ msgid "" "much as it did on a Windows title." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -2251,7 +2251,7 @@ msgid "" "defined the problem; the workflow still gave us a way to solve it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -2265,7 +2265,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2273,19 +2273,19 @@ msgid "" "testing{ph1} · {ph2}64-bit port{ph3}. The port remains in development." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -2296,7 +2296,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2307,7 +2307,7 @@ msgid "" "next person can see where that interpretation came from." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -2317,14 +2317,14 @@ msgid "" "old memory access." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2336,7 +2336,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2348,7 +2348,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2360,7 +2360,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2371,7 +2371,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2382,7 +2382,7 @@ msgid "" "exercise." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -2391,7 +2391,7 @@ msgid "" "concrete failure to investigate before carrying a refactor further." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -2404,7 +2404,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2417,7 +2417,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2425,12 +2425,12 @@ msgid "" "makes the recovered knowledge usable.{ph1} A port can then build on both." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -2439,7 +2439,7 @@ msgid "" "every later function that needed it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -2448,7 +2448,7 @@ msgid "" "of the work remains tied to my attention." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -2457,7 +2457,7 @@ msgid "" "whether the accumulated evidence supports a project milestone." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -2467,7 +2467,7 @@ msgid "" " up." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -2480,7 +2480,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2494,7 +2494,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2505,7 +2505,7 @@ msgid "" "results it affected. The next project can then inherit a stronger tool." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -2517,7 +2517,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2526,7 +2526,7 @@ msgid "" " game can improve the starting conditions for another." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -2534,12 +2534,12 @@ msgid "" "changes how much the next person—or the next agent—can get done." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -2547,7 +2547,7 @@ msgid "" "than I could realistically give it. Many projects would stay ideas." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -2559,7 +2559,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2567,7 +2567,7 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -2575,12 +2575,12 @@ msgid "" " how far that can take us." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -2610,7 +2610,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2641,7 +2641,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2656,7 +2656,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2677,7 +2677,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2696,7 +2696,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2710,7 +2710,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2729,7 +2729,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2741,7 +2741,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -2759,72 +2759,72 @@ msgid "" "AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "" -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "" @@ -2832,13 +2832,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -2854,17 +2854,17 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "" -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "" @@ -2873,18 +2873,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "" @@ -2893,7 +2893,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2902,15 +2902,15 @@ msgid "" "this mini-game with {ph2}adjustable speed.{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -2918,7 +2918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -2926,7 +2926,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -2934,18 +2934,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -2953,54 +2953,54 @@ msgid "" "start at 6 and gradually accelerate again." msgstr "" -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" " remain readable." msgstr "" -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "" @@ -3008,7 +3008,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3017,7 +3017,7 @@ msgid "" "function:" msgstr "" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "" @@ -3025,7 +3025,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3033,25 +3033,25 @@ msgid "" "update without a collision." msgstr "" -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -3064,18 +3064,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -3083,41 +3083,41 @@ msgid "" "recovered rule." msgstr "" -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 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 "" -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -3126,14 +3126,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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 "" -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -3148,7 +3148,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3160,7 +3160,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3171,7 +3171,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3184,7 +3184,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -3205,64 +3205,64 @@ msgid "" "speed and play." msgstr "" -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 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:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -3270,7 +3270,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -3278,7 +3278,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -3286,24 +3286,24 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3311,22 +3311,22 @@ msgid "" " the proposed changes." msgstr "" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3336,12 +3336,12 @@ msgid "" "first analysis." msgstr "" -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -3352,31 +3352,31 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "" -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " "npm:" msgstr "" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3384,13 +3384,13 @@ msgid "" "agent through {ph0}, run:" msgstr "" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "" #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3399,14 +3399,14 @@ msgid "" "commands, use {ph0} followed by the command." msgstr "" -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3415,24 +3415,24 @@ msgid "" "restart your agent so it can call the tools." msgstr "" -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3442,7 +3442,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3452,7 +3452,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -3460,7 +3460,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3469,12 +3469,12 @@ msgid "" "investigations." msgstr "" -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -3483,7 +3483,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3492,26 +3492,26 @@ msgid "" "can be used. {ph0}Set up native analysis{ph1}." msgstr "" -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " "Electron app:" msgstr "" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3519,12 +3519,12 @@ msgid "" " the CLI{ph1} for installation options." msgstr "" -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "" -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -3536,7 +3536,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3545,12 +3545,12 @@ msgid "" "checker{ph3} show how that process works." msgstr "" -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -3565,7 +3565,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3578,7 +3578,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3588,7 +3588,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3596,18 +3596,18 @@ msgid "" "native, Electron and browser examples." msgstr "" -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3615,7 +3615,7 @@ msgid "" " {ph0}; for Codex:" msgstr "" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "" @@ -3623,7 +3623,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3631,14 +3631,14 @@ msgid "" "shows a missing or stale registration, run setup for that client:" msgstr "" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3647,14 +3647,14 @@ msgid "" "diagnostics{ph1}." msgstr "" -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3663,14 +3663,14 @@ msgid "" "{ph0}See native provider setup{ph1}." msgstr "" -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3680,7 +3680,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3689,24 +3689,24 @@ msgid "" "provider name when the problem involves native analysis." msgstr "" -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 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 "" -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "" @@ -3715,7 +3715,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3727,7 +3727,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -3747,77 +3747,77 @@ msgid "" "coding agents, troubleshooting and sharing examples." msgstr "" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "" -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -3825,20 +3825,20 @@ msgid "" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -3846,7 +3846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -3854,7 +3854,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -3862,7 +3862,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -3870,13 +3870,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "" @@ -3884,7 +3884,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3900,20 +3900,20 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "" @@ -3925,7 +3925,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3934,26 +3934,26 @@ msgid "" "installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 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:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3971,7 +3971,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3981,7 +3981,7 @@ msgid "" "lines.{ph5}{ph6}{ph7}" msgstr "" -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3991,14 +3991,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4006,12 +4006,12 @@ msgid "" " path to the {ph0} folder and the same export question." msgstr "" -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -4020,7 +4020,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4029,7 +4029,7 @@ msgid "" "{ph3}." msgstr "" -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "" @@ -4042,7 +4042,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -4056,7 +4056,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4073,7 +4073,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4081,7 +4081,7 @@ msgid "" "{ph7} and writes the file.{ph8}" msgstr "" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -4089,18 +4089,18 @@ msgid "" msgstr "" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" msgstr "" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "" -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -4109,18 +4109,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -4136,7 +4136,7 @@ msgstr "" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4145,13 +4145,13 @@ msgid "" "prediction and actual output.{ph6}{ph7}{ph8}" msgstr "" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4159,36 +4159,36 @@ msgid "" "checks the formatter directly with {ph0}." msgstr "" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -4199,7 +4199,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4211,7 +4211,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4223,7 +4223,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -4243,66 +4243,66 @@ msgid "" "go, and check the CSV formatter with a sample title." msgstr "" -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -4311,7 +4311,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4319,15 +4319,15 @@ msgid "" " to {ph0}Connect REA{ph1}." msgstr "" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -4335,7 +4335,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -4343,7 +4343,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -4351,7 +4351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -4359,7 +4359,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" @@ -4367,7 +4367,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -4375,25 +4375,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" msgstr "" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " "can read those files and run tools for you." msgstr "" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "" @@ -4402,7 +4402,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4416,7 +4416,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4428,7 +4428,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -4441,7 +4441,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4449,7 +4449,7 @@ msgid "" " {ph5} {ph6}), then press Enter." msgstr "" -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -4458,82 +4458,83 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" msgstr "" -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4543,7 +4544,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -4554,7 +4555,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4564,7 +4565,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4572,13 +4573,13 @@ msgid "" "(.pkg){ph1}, open it and follow the installer. Then reopen Terminal." msgstr "" -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4586,14 +4587,14 @@ msgid "" "{ph0}; on other distributions, use your package manager." msgstr "" -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4603,7 +4604,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4611,53 +4612,53 @@ msgid "" "{ph0}nodejs.org{ph1}." msgstr "" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " "folder, open it instead." msgstr "" -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." " Pick one client below; open its instructions if you haven't used it before." msgstr "" -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " "Then start Codex:" msgstr "" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -4666,28 +4667,28 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -4700,7 +4701,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4708,18 +4709,18 @@ msgid "" "Code and Copilot setup{ph5}" msgstr "" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4730,18 +4731,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -4750,7 +4751,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4763,7 +4764,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4771,14 +4772,14 @@ msgid "" "details{ph3}" msgstr "" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4788,19 +4789,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4808,12 +4809,12 @@ msgid "" " choosing a client explicitly." msgstr "" -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "" @@ -4823,7 +4824,7 @@ msgstr "" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4839,7 +4840,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4847,13 +4848,13 @@ msgid "" "availability{ph3}" msgstr "" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4864,18 +4865,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -4888,7 +4889,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4901,7 +4902,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4910,18 +4911,18 @@ msgid "" "installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4930,7 +4931,7 @@ msgid "" "Enter to continue." msgstr "" -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -4938,21 +4939,21 @@ msgid "" "configuration. It asks before applying the changes." msgstr "" -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " "workflow for investigating software." msgstr "" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " "Restart your client when setup finishes." msgstr "" -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "" @@ -4961,7 +4962,7 @@ msgstr "" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4973,7 +4974,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4983,7 +4984,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4991,19 +4992,19 @@ msgid "" " Then ask your agent:" msgstr "" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5012,7 +5013,7 @@ msgid "" "Electron." msgstr "" -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "" @@ -5026,7 +5027,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5036,7 +5037,7 @@ msgid "" "lines.{ph5}{ph6}{ph7}" msgstr "" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -5045,7 +5046,7 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5056,13 +5057,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "" @@ -5070,14 +5071,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5086,7 +5087,7 @@ msgid "" msgstr "" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5094,7 +5095,7 @@ msgid "" "relevant files and lines." msgstr "" -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "" @@ -5103,7 +5104,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5115,7 +5116,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5125,7 +5126,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5133,84 +5134,84 @@ msgid "" "appears." msgstr "" -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " "REA uses for that kind of software." msgstr "" -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " "operating system; the target is the program you want to inspect." msgstr "" -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "" -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 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 "" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -5218,14 +5219,14 @@ msgid "" " setup prepares the supported demo and its private display." msgstr "" -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " "Omarchy. Hopper is commercial software; its demo has vendor-defined limits." msgstr "" -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -5236,18 +5237,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -5255,7 +5256,7 @@ msgid "" msgstr "" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5266,7 +5267,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5280,7 +5281,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -5288,7 +5289,7 @@ msgstr "" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5296,12 +5297,12 @@ msgid "" "second confirms the compiler is installed:" msgstr "" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -5309,18 +5310,18 @@ msgid "" "12.1.x installation and a 64-bit JDK 21 or newer:" msgstr "" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -5328,12 +5329,12 @@ msgid "" "before continuing." msgstr "" -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -5344,7 +5345,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -5354,7 +5355,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -5364,18 +5365,18 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -5390,7 +5391,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5398,12 +5399,12 @@ msgid "" "guide{ph3}" msgstr "" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -5411,7 +5412,7 @@ msgid "" " opens a private database." msgstr "" -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -5424,7 +5425,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5436,7 +5437,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5444,14 +5445,14 @@ msgid "" "below." msgstr "" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5463,7 +5464,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5474,7 +5475,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5483,7 +5484,7 @@ msgid "" "upstream plugin before asking REA to inspect it." msgstr "" -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -5493,13 +5494,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -5507,7 +5508,7 @@ msgid "" msgstr "" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5518,138 +5519,138 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " "tools, supported hosts and first command." msgstr "" -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr "" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "" @@ -5665,7 +5666,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5673,31 +5674,31 @@ msgid "" "bytecode{ph5} · {ph6}All investigation guides{ph7}" msgstr "" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "" -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " "running the app:" msgstr "" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5705,13 +5706,13 @@ msgid "" "Windows, a path such as {ph1} works here." msgstr "" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -5722,7 +5723,7 @@ msgstr "" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -5734,7 +5735,7 @@ msgstr "" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5745,20 +5746,20 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -5767,27 +5768,27 @@ msgid "" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5795,7 +5796,7 @@ msgid "" "list. Ghidra must be configured first." msgstr "" -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -5803,7 +5804,7 @@ msgid "" msgstr "" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5813,7 +5814,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5821,18 +5822,18 @@ msgid "" "installer. On Linux, the default setup command is {ph1}." msgstr "" -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5840,39 +5841,39 @@ msgid "" "{ph0}; for Codex:" msgstr "" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" " REA in MCP settings and allow its tools in the agent chat." msgstr "" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -5880,17 +5881,17 @@ msgid "" "use Linux paths there. Headless providers run on the same host as REA." msgstr "" -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -5899,7 +5900,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5911,7 +5912,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" @@ -5921,7 +5922,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5932,7 +5933,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5944,7 +5945,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5956,7 +5957,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5976,100 +5977,100 @@ msgid "" "app from the terminal. Setup, first questions and native provider guides." msgstr "" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "" @@ -6078,34 +6079,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "" -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 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 "" -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -6113,7 +6114,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -6121,7 +6122,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6129,7 +6130,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -6137,13 +6138,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "" @@ -6153,7 +6154,7 @@ msgstr "" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6162,7 +6163,7 @@ msgid "" "download." msgstr "" -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "" @@ -6173,7 +6174,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6187,7 +6188,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6203,7 +6204,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6211,52 +6212,52 @@ msgid "" "observed request to {ph5} in {ph6}.{ph7}" msgstr "" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "" -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 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 "" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 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 "" -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 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 "" -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "" @@ -6269,7 +6270,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -6281,7 +6282,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6290,7 +6291,7 @@ msgid "" msgstr "" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6298,7 +6299,7 @@ msgid "" "URL. Let it start the capture before you click." msgstr "" -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -6306,23 +6307,23 @@ msgid "" "export." msgstr "" -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6330,14 +6331,14 @@ msgid "" "ID, then run:" msgstr "" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6345,7 +6346,7 @@ msgid "" " in that browser. The result arrives after the observation window ends." msgstr "" -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -6353,49 +6354,49 @@ msgid "" "this capture." msgstr "" -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "" @@ -6403,19 +6404,19 @@ msgstr "" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6424,14 +6425,14 @@ msgid "" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6448,7 +6449,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6457,7 +6458,7 @@ msgid "" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6467,7 +6468,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6478,7 +6479,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -6500,216 +6501,216 @@ msgid "" "inspect the request and follow the export script." msgstr "" -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "" -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 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 "" -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 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 "" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "" -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 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 "" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." msgstr "" -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "" -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "" @@ -6726,12 +6727,12 @@ msgid "" "CSV export and a browser request." msgstr "" -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "" @@ -6740,34 +6741,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "" -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " "file writer." msgstr "" -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -6775,7 +6776,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6783,7 +6784,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -6791,7 +6792,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -6799,20 +6800,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6821,7 +6822,7 @@ msgid "" "behavior is spread across several files." msgstr "" -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "" @@ -6835,7 +6836,7 @@ msgstr "" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6850,7 +6851,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6865,7 +6866,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6876,13 +6877,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "" -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -6890,14 +6891,14 @@ msgid "" "executes." msgstr "" -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6913,14 +6914,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "" @@ -6931,7 +6932,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6940,7 +6941,7 @@ msgid "" msgstr "" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6948,7 +6949,7 @@ msgid "" "{ph0}." msgstr "" -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -6956,26 +6957,26 @@ msgid "" " the export feature." msgstr "" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" msgstr "" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -6984,7 +6985,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -6994,7 +6995,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7002,26 +7003,26 @@ msgid "" "and the main process writes {ph1} into the user's Downloads folder." msgstr "" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 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 "" -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7033,25 +7034,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7059,7 +7060,7 @@ msgid "" "channel and one matching handler in {ph0}. Source locations are in {ph1}." msgstr "" -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -7067,13 +7068,13 @@ msgid "" "feature tracing tools." msgstr "" -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7081,7 +7082,7 @@ msgid "" "happens if writing the file fails?" msgstr "" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -7093,7 +7094,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7105,7 +7106,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7117,7 +7118,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -7138,32 +7139,32 @@ msgid "" "result." msgstr "" -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "" @@ -7172,34 +7173,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " "check the recovered C." msgstr "" -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -7207,7 +7208,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -7215,7 +7216,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -7223,7 +7224,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -7231,18 +7232,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -7251,7 +7252,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7260,7 +7261,7 @@ msgid "" " way to investigate the missing arithmetic." msgstr "" -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "" @@ -7269,7 +7270,7 @@ msgstr "" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7279,7 +7280,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7289,7 +7290,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7300,7 +7301,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7310,7 +7311,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7318,7 +7319,7 @@ msgid "" "and decoded." msgstr "" -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "" @@ -7329,7 +7330,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7344,7 +7345,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7360,7 +7361,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7368,14 +7369,14 @@ msgid "" "bytes decode to {ph5}, {ph6} and a scale value.{ph7}" msgstr "" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " "interprets them together." msgstr "" -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "" @@ -7384,7 +7385,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7392,19 +7393,19 @@ msgid "" "analysis tool{ph3}, provide the local executable and a question:" msgstr "" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7415,7 +7416,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7425,7 +7426,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7434,7 +7435,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -7448,14 +7449,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "" @@ -7466,7 +7467,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7474,7 +7475,7 @@ msgid "" "Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -7482,7 +7483,7 @@ msgid "" "same kind of question about another small Windows program you have." msgstr "" -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "" @@ -7491,7 +7492,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7503,7 +7504,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7513,7 +7514,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7521,40 +7522,40 @@ msgid "" "appears." msgstr "" -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 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:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7562,34 +7563,34 @@ msgid "" "tile coordinate by 30; adding {ph0} (20) gives the brick's screen position." msgstr "" -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 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:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -7597,7 +7598,7 @@ msgid "" "the center of the stereo field." msgstr "" -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -7607,20 +7608,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7630,20 +7631,20 @@ msgid "" " menu action?”" msgstr "" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 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 "" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -7653,7 +7654,7 @@ msgid "" "session is open." msgstr "" -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -7672,50 +7673,50 @@ msgid "" "caller, read constants and check reconstructed C." msgstr "" -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -7723,7 +7724,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" @@ -7731,7 +7732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -7739,7 +7740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -7747,7 +7748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" @@ -7755,7 +7756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -7763,44 +7764,44 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " "tools to inspect the code behind the answer." msgstr "" -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -7808,13 +7809,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -7827,16 +7828,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "" @@ -7848,7 +7849,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7857,17 +7858,17 @@ msgid "" "installation.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "" @@ -7875,7 +7876,7 @@ msgstr "" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" @@ -7884,7 +7885,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7892,12 +7893,12 @@ msgid "" " setup guide →{ph2}" msgstr "" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -7905,56 +7906,56 @@ msgid "" "and help you rebuild it." msgstr "" -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "" -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" msgstr "" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -7962,7 +7963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -7970,7 +7971,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -7980,20 +7981,20 @@ msgstr "" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8001,29 +8002,29 @@ msgid "" "these?”" msgstr "" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "" -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8031,24 +8032,24 @@ msgid "" "value goes in?{ph1}”" msgstr "" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8056,19 +8057,19 @@ msgid "" "after +.”" msgstr "" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8076,7 +8077,7 @@ msgid "" "calculation.{ph1}" msgstr "" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "" @@ -8089,7 +8090,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -8102,7 +8103,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8110,43 +8111,43 @@ msgid "" "220?{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "" -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8154,31 +8155,31 @@ msgid "" "illustrate the findings. {ph0}Continue with the Calculator example ↓{ph1}" msgstr "" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "" -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " "first need to find out how the speed changes." msgstr "" -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "" @@ -8191,7 +8192,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8204,7 +8205,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8213,105 +8214,105 @@ msgid "" "speed.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " "increases a little each update while it is below 13." msgstr "" -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " "Play, then choose your own speed." msgstr "" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "" -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" msgstr "" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "" @@ -8322,7 +8323,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8336,7 +8337,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8350,7 +8351,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8359,7 +8360,7 @@ msgid "" msgstr "" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8367,12 +8368,12 @@ msgid "" "and returned the loaded {ph0}, including its source and digest." msgstr "" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -8382,7 +8383,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8395,7 +8396,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8409,31 +8410,31 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "" -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " "try them in a small calculator." msgstr "" -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "" @@ -8446,7 +8447,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" @@ -8458,7 +8459,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8467,19 +8468,19 @@ msgid "" "both.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "" @@ -8487,13 +8488,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "" @@ -8501,56 +8502,56 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "" -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." msgstr "" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "" @@ -8563,7 +8564,7 @@ msgstr "" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8579,7 +8580,7 @@ msgstr "" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8594,7 +8595,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8603,17 +8604,17 @@ msgid "" " × above.{ph5}" msgstr "" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -8631,7 +8632,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8639,174 +8640,174 @@ msgid "" "{ph4}Native setup guide{ph5}" msgstr "" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "" -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "" -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " "demo clock to see why it changes every 30 seconds." msgstr "" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " "copy preserves rich block data." msgstr "" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " "game." msgstr "" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " "input." msgstr "" -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " "software." msgstr "" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" " and libraries." msgstr "" -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "" -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " "across runs." msgstr "" -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "" @@ -8819,7 +8820,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -8832,7 +8833,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8840,7 +8841,7 @@ msgid "" "me.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "" @@ -8853,7 +8854,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8866,7 +8867,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8877,20 +8878,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -8898,7 +8899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -8906,7 +8907,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -8924,69 +8925,69 @@ msgid "" " Follow clear guides and try interactive examples with REA." msgstr "" -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "" -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/index.html:653 +#: website/public/index.html:659 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:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "" @@ -8995,42 +8996,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 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 "" -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "" @@ -9041,7 +9042,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9056,7 +9057,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9071,7 +9072,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9080,14 +9081,14 @@ msgid "" "public reference cases.{ph5}" msgstr "" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -9095,7 +9096,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -9103,7 +9104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -9111,7 +9112,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -9119,7 +9120,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -9127,20 +9128,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9156,14 +9157,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "" @@ -9175,7 +9176,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9186,7 +9187,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9194,14 +9195,14 @@ msgid "" "configured. {ph0}Get the APK and analysis setup ↓{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9210,33 +9211,33 @@ msgid "" "produce the same code." msgstr "" -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "" @@ -9245,35 +9246,35 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "" @@ -9282,7 +9283,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9292,7 +9293,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9300,36 +9301,36 @@ msgid "" "the calculation recovered from the APK." msgstr "" -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " "clock." msgstr "" -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9337,19 +9338,19 @@ msgid "" "and imported accounts. TOTP means a time-based one-time password." msgstr "" -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9358,7 +9359,7 @@ msgid "" msgstr "" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9366,14 +9367,14 @@ msgid "" "{ph0} prefix." msgstr "" -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9384,7 +9385,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -9392,7 +9393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -9400,25 +9401,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" msgstr "" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9428,7 +9429,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9439,7 +9440,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9451,7 +9452,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9459,7 +9460,7 @@ msgid "" " right panel is an explanatory summary. {ph0}Aegis code is GPL-3.0.{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "" @@ -9468,7 +9469,7 @@ msgstr "" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9476,12 +9477,12 @@ msgid "" "returns this body; the original source calls the helper {ph3}." msgstr "" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "" -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -9494,20 +9495,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "" -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9516,29 +9517,29 @@ msgid "" "cases{ph1}, including time-block boundaries and codes beginning with zero." msgstr "" -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9546,38 +9547,38 @@ msgid "" "{ph0}RFC 6238{ph1}. Check the browser implementation against them:" msgstr "" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 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:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " "was inspected statically." msgstr "" -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9587,7 +9588,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9595,28 +9596,28 @@ msgid "" "{ph1}. This case used JDK 21." msgstr "" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9626,7 +9627,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9634,7 +9635,7 @@ msgid "" "different time interval?{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "" @@ -9650,7 +9651,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9662,13 +9663,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -9688,37 +9689,37 @@ msgid "" "calculation and try a reconstruction with an adjustable clock." msgstr "" -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "" @@ -9727,26 +9728,26 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9754,17 +9755,17 @@ msgid "" "find an input that makes the original program print {ph0}." msgstr "" -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "" @@ -9775,7 +9776,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9790,7 +9791,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9805,7 +9806,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9814,20 +9815,20 @@ msgid "" "the result.{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -9835,7 +9836,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -9843,7 +9844,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -9851,7 +9852,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -9859,7 +9860,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -9867,20 +9868,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9896,17 +9897,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "" @@ -9917,7 +9918,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9926,49 +9927,49 @@ msgid "" "program.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 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:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 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:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -9977,19 +9978,19 @@ msgid "" "{ph0}-byte steps across {ph1} bytes give 26 masks." msgstr "" -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 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 "" -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -9999,23 +10000,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "" @@ -10024,7 +10025,7 @@ msgstr "" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10033,12 +10034,12 @@ msgid "" " the agent that {ph2}, so that character is {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -10047,7 +10048,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -10055,7 +10056,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -10063,7 +10064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -10071,7 +10072,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -10079,18 +10080,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "" @@ -10098,7 +10099,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -10106,7 +10107,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10116,7 +10117,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10126,7 +10127,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10138,7 +10139,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10146,19 +10147,19 @@ msgid "" "in {ph2}. A mismatch jumps to {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 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 "" -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -10166,13 +10167,13 @@ msgid "" "give equations that a small Python script can solve together." msgstr "" -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10182,19 +10183,19 @@ msgid "" "targets." msgstr "" -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10203,59 +10204,59 @@ msgid "" "sum 1440 instead of 1441, and the program rejects it." msgstr "" -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 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:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -10263,12 +10264,12 @@ msgid "" " bytes." msgstr "" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -10288,7 +10289,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10296,35 +10297,35 @@ msgid "" "flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 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:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "" -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -10333,7 +10334,7 @@ msgid "" "x86-64." msgstr "" -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "" @@ -10351,27 +10352,27 @@ msgid "" "original program." msgstr "" -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -10379,42 +10380,42 @@ msgid "" "means the character is 7." msgstr "" -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "" @@ -10423,39 +10424,39 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "" -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 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 "" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10464,14 +10465,14 @@ msgid "" "result. {ph0}Open figure{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -10479,7 +10480,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -10487,7 +10488,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -10495,23 +10496,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "" @@ -10522,7 +10523,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10530,12 +10531,12 @@ msgid "" "coverage{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -10545,12 +10546,12 @@ msgid "" "integration." msgstr "" -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -10566,17 +10567,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "" @@ -10587,7 +10588,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10595,7 +10596,7 @@ msgid "" "Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -10603,7 +10604,7 @@ msgid "" " the answer." msgstr "" -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -10614,7 +10615,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10624,48 +10625,48 @@ msgid "" "investigating." msgstr "" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 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:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10673,19 +10674,19 @@ msgid "" "Here, {ph0} exposes the integer input missing from the decompiler view." msgstr "" -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10693,36 +10694,36 @@ msgid "" "scale {ph0} by 30; adding 20 gives the brick's screen coordinate, {ph1}." msgstr "" -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " "scale. The agent now has the values needed for the C expression." msgstr "" -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -10731,7 +10732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -10739,7 +10740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -10747,7 +10748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -10755,7 +10756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -10763,18 +10764,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "" @@ -10784,7 +10785,7 @@ msgstr "" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10800,7 +10801,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10814,7 +10815,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10829,7 +10830,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10843,7 +10844,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10852,7 +10853,7 @@ msgid "" "original-x86 comparisons check the returned value." msgstr "" -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -10860,23 +10861,23 @@ msgid "" "setup and cleanup." msgstr "" -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10884,54 +10885,54 @@ msgid "" "then pushes it before the call:" msgstr "" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -10945,7 +10946,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10953,24 +10954,24 @@ msgid "" "references{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 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:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -10978,12 +10979,12 @@ msgid "" "five pan scales: 0, 0.5, 1, 20 and −1." msgstr "" -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -10991,7 +10992,7 @@ msgid "" "checking the referenced constants." msgstr "" -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -11003,18 +11004,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -11022,14 +11023,14 @@ msgid "" "dependencies, then compare the implementation with the original." msgstr "" -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 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 "" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "" @@ -11038,7 +11039,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -11050,7 +11051,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -11064,7 +11065,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -11072,7 +11073,7 @@ msgid "" "state, queues and pixel writes.{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "" @@ -11089,13 +11090,13 @@ msgid "" "maintained C, original-x86 tests and matching compiled function bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -11105,87 +11106,87 @@ msgid "" "compiler replay matching 63 bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "" -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" " results." msgstr "" -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -11193,42 +11194,42 @@ msgid "" "changes every 30 seconds." msgstr "" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -11236,42 +11237,42 @@ msgid "" "with the original program." msgstr "" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -11279,42 +11280,42 @@ msgid "" "function, checked against the original behavior and all 63 compiled bytes." msgstr "" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -11322,42 +11323,42 @@ msgid "" "rich block data connected to a copy." msgstr "" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -11365,44 +11366,44 @@ msgid "" "a ring aimed at the player." msgstr "" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 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 "" -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "" @@ -11419,12 +11420,12 @@ msgid "" "authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." msgstr "" -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "" @@ -11433,37 +11434,37 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 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 "" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "" @@ -11475,7 +11476,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11490,7 +11491,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11505,7 +11506,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11520,7 +11521,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11529,27 +11530,27 @@ msgid "" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 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 "" -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -11557,7 +11558,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -11565,19 +11566,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11594,17 +11595,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "" @@ -11615,7 +11616,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11623,19 +11624,19 @@ msgid "" "system clipboard. Show the code at each step.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " "coding agent." msgstr "" -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -11643,23 +11644,23 @@ msgid "" " the minified bundle:" msgstr "" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11670,7 +11671,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11680,32 +11681,32 @@ msgid "" "below show the route it connects." msgstr "" -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " "Unrelated members are omitted." msgstr "" -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11713,20 +11714,20 @@ msgid "" "how the request leaves the page's process." msgstr "" -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11734,13 +11735,13 @@ msgid "" "response IPC. We can now look for {ph0} on the main-process side." msgstr "" -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" @@ -11748,7 +11749,7 @@ msgstr "" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11756,19 +11757,19 @@ msgid "" "receiver for that channel." msgstr "" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" msgstr "" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -11776,13 +11777,13 @@ msgid "" "wrappers connect the exposed method to this call." msgstr "" -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11790,101 +11791,101 @@ msgid "" "data locally and puts an ID in the copied HTML to connect them." msgstr "" -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 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 "" -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 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 "" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 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 "" -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " "and cells." msgstr "" -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11894,14 +11895,14 @@ msgid "" "port." msgstr "" -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 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 "" -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "" @@ -11909,7 +11910,7 @@ msgstr "" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11923,7 +11924,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11934,7 +11935,7 @@ msgid "" "desktop UI session." msgstr "" -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -11944,7 +11945,7 @@ msgid "" msgstr "" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11958,7 +11959,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11970,7 +11971,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -11978,7 +11979,7 @@ msgid "" " C function.{ph3}" msgstr "" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "" @@ -11996,52 +11997,52 @@ msgid "" "format." msgstr "" -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "" @@ -12050,42 +12051,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "" -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 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 "" -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "" @@ -12096,7 +12097,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12110,7 +12111,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12125,7 +12126,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12139,7 +12140,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12148,21 +12149,21 @@ msgid "" "helper.{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 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 "" -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -12170,7 +12171,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -12178,7 +12179,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -12186,7 +12187,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -12194,18 +12195,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -12221,16 +12222,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "" @@ -12241,7 +12242,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12249,7 +12250,7 @@ msgid "" "it at the player. Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -12257,7 +12258,7 @@ msgid "" msgstr "" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12268,7 +12269,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12276,12 +12277,12 @@ msgid "" "40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "" @@ -12290,7 +12291,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12298,13 +12299,13 @@ msgid "" "{ph0}Read the attack's source{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12313,41 +12314,41 @@ msgid "" " result explain the pattern." msgstr "" -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 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:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "" @@ -12355,7 +12356,7 @@ msgstr "" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12364,22 +12365,22 @@ msgid "" "field {ph2}. The complete sequence appears below." msgstr "" -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -12388,12 +12389,12 @@ msgid "" "operations behind them." msgstr "" -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -12403,7 +12404,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -12411,7 +12412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -12419,7 +12420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -12427,7 +12428,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -12435,18 +12436,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "" @@ -12454,7 +12455,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12466,7 +12467,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12478,7 +12479,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12490,7 +12491,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12502,7 +12503,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12512,7 +12513,7 @@ msgid "" "velocity." msgstr "" -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -12520,17 +12521,17 @@ msgid "" "maintained source in the linked project." msgstr "" -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "" @@ -12547,7 +12548,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12555,36 +12556,36 @@ msgid "" "representation{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 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 "" -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "" -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -12595,65 +12596,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -12661,7 +12662,7 @@ msgid "" msgstr "" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12672,7 +12673,7 @@ msgid "" msgstr "" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12683,7 +12684,7 @@ msgid "" "independent pristine-dump provenance still open." msgstr "" -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -12691,12 +12692,12 @@ msgid "" "project." msgstr "" -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -12706,7 +12707,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -12718,7 +12719,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12732,7 +12733,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12746,7 +12747,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12767,28 +12768,28 @@ msgid "" "player." msgstr "" -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -12797,27 +12798,27 @@ msgid "" "of 16 angle units, or 22.5 degrees." msgstr "" -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "" diff --git a/website/locales/pl/messages.po b/website/locales/pl/messages.po index 1dedd26ed39..1714d5ffd67 100644 --- a/website/locales/pl/messages.po +++ b/website/locales/pl/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Spis treści{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Myśli o inżynierii odwrotnej." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Rekonstrukcja gry{ph0}Esej" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Rewolucja przemysłowa w inżynierii odwrotnej" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "Co Instrukcja RE i rekonstrukcji TH08, TH095 i TH04 nauczył mnie O agentów, " "weryfikacja i wiedza, że związki całej projektów." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Przeczytaj artykuł" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Przez N0zoM1z0 * 10 października 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Przemyślenia na temat inżynierii odwrotnej, czerpiąc z praktycznego " "doświadczenia z agentami REA i AI." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA-dowiedz się, jak działa oprogramowanie. Inżynieria odwrotna z twoim " "agentem kodującym." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Strona główna REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Główna nawigacja" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA na GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Dołącz do REA na Discordzie" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Obserwuj REA na X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -265,35 +265,35 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Spis treści{ph1} / {ph2}Blog{ph3} / Rekonstrukcja Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Esej * rekonstrukcja Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Rewolucja przemysłowa w inżynierii odwrotnej." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Przez N0zoM1z0 * 10 października 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Najważniejsze" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -305,7 +305,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -319,7 +319,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -332,7 +332,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -345,7 +345,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -355,65 +355,65 @@ msgstr "" "{ph0}Jesteśmy w pierwszych dniach rewolucji przemysłowej RE.{ph1} Metody " "wciąż nabierają kształtu. Pozostało wiele do odkrycia." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Jak doświadczyć związków" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Human direction{ph1} * Kryteria celu i akceptacji" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Samodzielność" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agent" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Wybierz eksperyment.{ph0}Zaproponuj hipotezę." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Weryfikacja" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Wzorzec weryfikacji" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Test przeciwko{ph0}konkretne odniesienie." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repozytorium" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Pamięć robocza" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -422,7 +422,7 @@ msgstr "Kod, dowód,{ph0}czeki i lekcje." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -431,26 +431,26 @@ msgstr "Niedopasowanie{ph0}{ph1}Zrewiduj hipotezę{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "A better{ph0}{ph1}punkt wyjścia{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Ponowne wykorzystanie" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Przełęcz{ph1} * Zachowaj wynik i jego dowody" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -459,14 +459,14 @@ msgstr "" "Każdy projekt pozostawia następny z lepszym punktem wyjścia. Obejmuje to " "ustalenie czeków, gdy odkryjemy lukę." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "W tym artykule" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -474,7 +474,7 @@ msgstr "{ph0}Sierpień 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -482,7 +482,7 @@ msgstr "{ph0} TH08: kontynuacja{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -490,7 +490,7 @@ msgstr "{ph0}Dwa podejścia{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -498,7 +498,7 @@ msgstr "{ph0} TH095: składanie{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -506,7 +506,7 @@ msgstr "{ph0} TH04: w różnych architekturach{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -514,7 +514,7 @@ msgstr "{ph0}Od dokładnego do czytelnego{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -522,18 +522,18 @@ msgstr "{ph0}Zmiana przemysłowa{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Co staje się możliwe{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Co się zmieniło w sierpniu 2026 roku" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -548,7 +548,7 @@ msgstr "" " ilości czasu na następnej funkcji. Oznaczało to również utrzymanie coraz " "większego obrazu w mojej głowie." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -562,7 +562,7 @@ msgstr "" "przydatna gdzie indziej, ale każde pole musi ustalić, co może sprawdzić z " "wiarygodnym odniesieniem." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -575,7 +575,7 @@ msgstr "" " zwykłych narzędzi programistycznych. Rekonstrukcja Touhou dała mi znaczący " "projekt, w którym mogę się dowiedzieć." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -592,7 +592,7 @@ msgstr "" "mogłem poświęcić więcej uwagi kierunkowi projektu i temu, czy jego kontrole " "są godne zaufania." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -603,7 +603,7 @@ msgstr "" "przetrwa poza obecnym projektem. Czy następna gra skorzysta na wszystkim, " "czego się właśnie nauczyliśmy?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: budowanie na ludzkiej pracy" @@ -612,7 +612,7 @@ msgstr "TH08: budowanie na ludzkiej pracy" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -626,7 +626,7 @@ msgstr "" "podstawy. Przyszedł ze znajomością budowy i historią wkładów, które " "zachowałem w kontynuacji." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -637,7 +637,7 @@ msgstr "" " Moja niezależna kontynuacja rozpoczęła się 13 sierpnia. Do 19 sierpnia " "Księga rejestrowała źródło wszystkich 1107 zidentyfikowanych funkcji gry." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -648,7 +648,7 @@ msgstr "" "więcej jedenaście dni po rozpoczęciu kontynuacji. Nastąpiło wydanie " "internetowe. Natywna 64-bitowa wersja Linux pojawiła się 30 sierpnia." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -664,7 +664,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -682,12 +682,12 @@ msgstr "" "oczekiwany stan. Agent proponuje wyjaśnienie i testuje je; niedopasowanie " "daje mu coś konkretnego do zbadania." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Dokładne dopasowanie z niewłaściwą stałą" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -698,7 +698,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -710,7 +710,7 @@ msgstr "" "automatycznego zbierania przedmiotów. Zrekonstruowane źródło sprawdziło moc " "gracza przeciwko {ph0}. Oryginalny używany {ph1}, maksymalny próg mocy." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -725,13 +725,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "{ph0}Jednak funkcja przeszła już dokładne porównanie.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -746,7 +746,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -762,7 +762,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -776,7 +776,7 @@ msgstr "" " stałych zmiennoprzecinkowych odniesień. Znalazł kolejne dwanaście błędnych " "odniesień w pięciu akceptowanych funkcjach." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -790,7 +790,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -800,7 +800,7 @@ msgstr "" "{ph0}Referencja weryfikacyjna (oracle) również wymagała rekonstrukcji.{ph1} " "Naprawa była częścią naprawy gry." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -818,7 +818,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -835,7 +835,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -845,7 +845,7 @@ msgstr "" "{ph0}Udana partia dała nam zarówno odzyskany Kod, jak i lepsze środowisko " "dla następnej partii.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Dwie różne koncepcje rekonstrukcji" @@ -854,7 +854,7 @@ msgstr "Dwie różne koncepcje rekonstrukcji" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -866,7 +866,7 @@ msgstr "" "rodzaju pracy. W zawiadomieniu zapowiada się, że dalszy rozwój nastąpi " "prywatnie do czasu zakończenia. Jeden fragment brzmi:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -875,7 +875,7 @@ msgstr "" "Powstanie grifterów (dekompilacje AI i porty) w tej przestrzeni biorąc z " "naszej pracy maluje zły obraz dla przyszłych wysiłków dekompilacyjnych…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -892,7 +892,7 @@ msgstr "" "który chcę omówić, dotyczy tego, jak powinna przebiegać odbudowa i jak " "należy oceniać wkład." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -905,7 +905,7 @@ msgstr "" " opierał się na wiedzy tej osoby. Zaufanie do współpracownika miało " "znaczenie, ponieważ tak wiele rozumowania wydarzyło się, gdy pracowali." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -916,7 +916,7 @@ msgstr "" "Zmieniło się dla mnie to, że agent mógł wykorzystać tę wiedzę do " "samodzielnego prowadzenia następnego śledztwa." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -931,7 +931,7 @@ msgstr "" " dlaczego wybraliśmy implementację, nawet jeśli agent wykonał większość " "pracy." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -944,7 +944,7 @@ msgstr "" " dotyczące kredytu. Zmienia również to, co opiekunowie muszą wiedzieć przed " "przyjęciem wkładu." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -959,7 +959,7 @@ msgstr "" "proces i rozpoznać, kiedy jego wynik jest nieprawidłowy. Różne społeczności " "mogą wybrać, ile z tej zmiany chcą podjąć." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -984,7 +984,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -997,14 +997,14 @@ msgstr "" " fragmentem. TH08 {ph4}kredyty i pochodzenie{ph5} Zapisz granicę " "kontynuacji." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: doświadczenie zaczyna się mieszać" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1019,7 +1019,7 @@ msgstr "" " nauczyć się gry. Ale wiedzieliśmy już znacznie więcej o tym, jak rozpocząć " "rekonstrukcję i jak ją utrzymać." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1032,7 +1032,7 @@ msgstr "" " połączył się 9 września. Rekonstrukcja Windows i386 została oznaczona jako " "grywalna 10 września, około dwanaście dni po inicjalizacji." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1043,7 +1043,7 @@ msgstr "" " mógłby skorzystać z pracy wykonanej nad inną grą. Doświadczenie było już " "obecne w narzędziach i sposobie organizacji projektu." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1058,7 +1058,7 @@ msgstr "" "razem. Ta lekcja pomogła ukształtować sposób, w jaki zbliżyliśmy się do " "kompilacji całego programu TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1071,7 +1071,7 @@ msgstr "" " po przejściu dalej. Następny agent może wykorzystać wynik bez powtarzania " "dochodzenia, które do niego doprowadziło." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1086,7 +1086,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1098,7 +1098,7 @@ msgstr "" "Możemy poświęcić więcej wysiłku następnego projektu na to, co jest naprawdę " "nowe w jego celu." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1111,7 +1111,7 @@ msgstr "" " rekonstruować całej historii projektu, aby dowiedzieć się, dlaczego źródło " "wygląda tak, jak wygląda." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: przepływ pracy przetrwa inną architekturę" @@ -1120,7 +1120,7 @@ msgstr "TH04: przepływ pracy przetrwa inną architekturę" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1136,7 +1136,7 @@ msgstr "" "Windows. Istniejące {ph2}ReC98 praca{ph3} dał nam również cenną wiedzę i " "materiały źródłowe." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1149,7 +1149,7 @@ msgstr "" "natywny port 64-bitowy. Ustanowienie działającej wersji DOS najpierw daje " "temu portowi odniesienie." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1162,7 +1162,7 @@ msgstr "" "nadal podążać za pytaniem aż do wyniku i pozwolić temu wynikowi kierować " "następnym eksperymentem." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1177,7 +1177,7 @@ msgstr "" "dostępne, agent może przepracować pytanie tak samo, jak w przypadku tytułu " "Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1189,7 +1189,7 @@ msgstr "" "zdefiniowała problem; przepływ pracy nadal dał nam sposób na jego " "rozwiązanie." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1206,7 +1206,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1216,19 +1216,19 @@ msgstr "" "Stan projektu na 10 października 2026 r: {ph0}Rekonstrukcja DOS i testy " "ręczne{ph1} · {ph2}Port 64-bitowy{ph3}. Port pozostaje w fazie rozwoju." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Od dokładnego kodu do czytelnego kodu" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " "it." msgstr "Gdy rekonstrukcja zadziała, chcę, aby ktoś inny mógł to zrozumieć." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1243,7 +1243,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1259,7 +1259,7 @@ msgstr "" "typ, który pasuje do dowodów. Trzymamy rozumowanie ze źródłem, aby następna " "osoba mogła zobaczyć, skąd pochodzi ta interpretacja." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1274,14 +1274,14 @@ msgstr "" "powinien posiadać ten stan. Aby bezpiecznie przenieść zachowanie, musimy " "odzyskać związek stojący za starym dostępem do pamięci." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Kolejność, której teraz używam, to:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1297,7 +1297,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1314,7 +1314,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1330,7 +1330,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1345,7 +1345,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1362,7 +1362,7 @@ msgstr "" "program nadal buduje i zachowuje się poprawnie wzdłuż ścieżek, które " "ćwiczymy." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1375,7 +1375,7 @@ msgstr "" "Utrzymywanie obu dostępnych kontroli daje agentowi konkretny brak zbadania " "przed dalszym przenoszeniem refaktora." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1393,7 +1393,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1412,7 +1412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1423,12 +1423,12 @@ msgstr "" "sprawia, że odzyskana wiedza jest użyteczna.{ph1} Port może następnie " "budować na obu." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Co sprawia, że jest to zmiana przemysłowa" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1441,7 +1441,7 @@ msgstr "" "z najbardziej przydatnych rzeczy, jakie mogłem zrobić. Lepsze narzędzie może" " pomóc w każdej późniejszej funkcji, która tego potrzebowała." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1454,7 +1454,7 @@ msgstr "" " aby śledzić ten wynik w nieoczekiwanym miejscu. Jeśli musi czekać, aż " "przepiszę każdy krok, znaczna część pracy pozostaje związana z moją uwagą." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1467,7 +1467,7 @@ msgstr "" "zrozumieć błąd na tyle dobrze, aby spróbować ponownie. Nadal muszę " "zdecydować, czy zgromadzone dowody potwierdzają kamień milowy projektu." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1482,7 +1482,7 @@ msgstr "" "referencyjne. Agent może ich użyć do przetestowania proponowanego źródła i " "sprawdzenia, gdzie znajduje się jego wyjaśnienie." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1500,7 +1500,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1520,7 +1520,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1537,7 +1537,7 @@ msgstr "" " ją naprawić i Ponownie sprawdzić wyniki, na które wpłynęło. Następny " "projekt może następnie odziedziczyć silniejsze narzędzie." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1553,7 +1553,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1565,7 +1565,7 @@ msgstr "" " wspólny sposób na kontynuowanie kontroli i lekcji. Praca nad jedną grą może" " poprawić warunki początkowe dla innej." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1577,12 +1577,12 @@ msgstr "" "Ulepszenie tych narzędzi zmienia, ile może zrobić następna osoba—lub " "następny agent." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Projekty, które możemy teraz rozważyć" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1593,7 +1593,7 @@ msgstr "" "fascynująca w inżynierii wstecznej i nadal wymagać więcej mojej uwagi, niż " "realistycznie mógłbym jej poświęcić. Wiele projektów pozostanie pomysłami." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1610,7 +1610,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1621,7 +1621,7 @@ msgstr "" "zwrotne i zgromadzona wiedza pozwoliłyby agentowi pracować nad tym " "niezawodnie?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1632,12 +1632,12 @@ msgstr "" " sam. Każdy z nich może poprawić sposób, w jaki podchodzimy do następnego. " "Chcę dalej badać, jak daleko to może nas zaprowadzić." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Kamienie milowe i źródła projektu" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1672,7 +1672,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1706,7 +1706,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1724,7 +1724,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1748,7 +1748,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1770,7 +1770,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1786,7 +1786,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1808,7 +1808,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1822,7 +1822,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1843,27 +1843,27 @@ msgstr "" "pomocą agentów AI oraz sposób, w jaki wiedza łączy się z TH08 , TH095 i " "PC-98 TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Doświadczenie prowadzone między projektami" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Esej rekonstrukcyjny Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -1872,18 +1872,18 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Spis treści{ph1}{ph2}/{ph3}Dinosaur speed lab" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Sprawdź → Odbuduj → Zmień" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Odbuduj zasadę prędkości dinozaura." @@ -1892,7 +1892,7 @@ msgstr "Odbuduj zasadę prędkości dinozaura." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1904,15 +1904,15 @@ msgstr "" "prędkość. {ph0} REA zwrócił uruchomiony skrypt;{ph1} użyliśmy jego reguły, " "aby zbudować tę mini-grę z {ph2}regulowana prędkość.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Na tej stronie" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1920,7 +1920,7 @@ msgstr "{ph0}Graj i zmieniaj prędkość{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1928,7 +1928,7 @@ msgstr "{ph0}Przeczytaj odzyskaną regułę{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1936,18 +1936,18 @@ msgstr "{ph0}Sprawdź rekonstrukcję{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Wypróbuj analizę{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Graj i zmieniaj prędkość" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1959,49 +1959,49 @@ msgstr "" " prędkość. Wybierz odzyskaną regułę, aby rozpocząć od 6 i stopniowo ponownie" " przyspieszać." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Zagraj w odtworzoną wersję" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Graj" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Skok ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Zacznij od nowa" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Prędkość" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Użyj reguły odzyskiwania przyspieszenia" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Pierwotna zasada: zacznij od 6, a następnie zwiększ do 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Przesuń suwak, aby ustawić własną prędkość. Przestrzeń lub skok usuwa " "kaktusa." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2010,7 +2010,7 @@ msgstr "" "Włącz JavaScript, aby odtworzyć rekonstrukcję. Powyższy kod i Wyjaśnienie " "pozostają czytelne." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Przeczytaj skrypt REA zwrócony" @@ -2018,7 +2018,7 @@ msgstr "Przeczytaj skrypt REA zwrócony" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2033,7 +2033,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2043,18 +2043,18 @@ msgstr "" "Ustawienia to {ph0}, {ph1} oraz {ph2}. Gra uruchamia tę gałąź na " "aktualizacji bez kolizji." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Użyj tej samej zasady w nowej grze" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Kopiuj" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2072,18 +2072,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Pobierz regułę prędkości{ph1} · {ph2}Przeczytaj kod gry{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Sprawdź rekonstrukcję" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2094,27 +2094,27 @@ msgstr "" "automatycznym planowaniem. Porównaj te zarejestrowane prędkości z powtórką " "odzyskanej reguły." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Aktualizacje" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Oryginalna gra" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Zrekonstruowana reguła" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Uruchom kontrolę prędkości" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2123,14 +2123,14 @@ msgstr "" "Wartości zaokrąglone do trzech miejsc po przecinku. Oddział sprawdza przed " "dodaniem, więc ostateczny przyrost może przybrać prędkość nieco powyżej 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Wypróbuj analizę samodzielnie" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2139,7 +2139,7 @@ msgstr "{ph0}Skonfiguruj REA {ph1} z twoim agentem kodującym." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2148,7 +2148,7 @@ msgstr "" "Śledź {ph0}kroki połączenia przeglądarki{ph1}, za pomocą {ph2} jako adres " "URL strony." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2165,7 +2165,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2177,7 +2177,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Twój agent kodowania" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2191,7 +2191,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2206,7 +2206,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2232,12 +2232,12 @@ msgstr "" "Przeczytaj zasadę prędkości gry dinozaurów za pomocą REA, Odbuduj ją, a " "następnie zmień prędkość i graj." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Rekonstrukcja prędkości dinozaurów" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2246,52 +2246,52 @@ msgstr "" "Dinozaur mini-gry. Użyj przycisku skoku lub naciśnij spację, gdy gra jest " "skupiona." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Skopiuj zrekonstruowaną regułę prędkości" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Skopiuj monit o analizę dinozaurów" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Spis treści{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA FAQ." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Konfiguracja, aktualizacje, analiza i rozwiązywanie problemów." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Tematy" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2299,7 +2299,7 @@ msgstr "{ph0}Konfiguracja i aktualizacje{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2307,7 +2307,7 @@ msgstr "{ph0}Analiza{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2315,31 +2315,31 @@ msgstr "{ph0}Rozwiązywanie problemów{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Dane i udostępnianie{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Konfiguracja i aktualizacje" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Jak zainstalować REA ?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * konfiguracja agenta" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Kopiuj" @@ -2347,7 +2347,7 @@ msgstr "Kopiuj" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2361,12 +2361,12 @@ msgstr "" "oraz pytanie. Wymagania i pierwszą analizę opisuje {ph0}instrukcja " "konfiguracji{ph1}." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Które środki kodujące mogą używać REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2381,18 +2381,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Podłącz swojego agenta kodującego{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Jak zaktualizować REA ?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2400,13 +2400,13 @@ msgid "" msgstr "" "REA wydaje często, w tym poprawki błędów. Jeśli zainstalowałeś CLI z npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * zainstalowany CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2416,14 +2416,14 @@ msgstr "" "Postępuj zgodnie z poleceniem odświeżania konfiguracji wydrukowanym przez " "aktualizację. Jeśli ustawisz swojego agenta przez {ph0}, biegnij:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * konfiguracja agenta odświeżania" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2435,14 +2435,14 @@ msgstr "" "wersji pakietu. Powtórz konfigurację, aby agent korzystał z nowej wersji. " "Przy jednorazowym wywołaniu CLI dodaj polecenie po {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Instaluje umiejętność z skills.sh wystarczy?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2454,24 +2454,24 @@ msgstr "" "REA{ph1} aby połączyć serwer MCP i zainstalować umiejętność dopasowywania, " "uruchom ponownie agenta, aby mógł wywołać narzędzia." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analiza" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Co mogę analizować za pomocą REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Zacznij od rodzaju posiadanego oprogramowania:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2483,7 +2483,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2495,7 +2495,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2505,7 +2505,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2517,12 +2517,12 @@ msgstr "" " Android, oprogramowania układowego i pakietów zasobów. {ph0}Zobacz studia " "przypadków{ph1} do prowadzonych dochodzeń." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Czy potrzebuję Hopper, Ghidra lub IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2534,7 +2534,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2546,12 +2546,12 @@ msgstr "" " Hopper i zaproponować instalację. Twój host i cel określają, który dostawca" " może być używany. {ph0}Skonfiguruj analizę programów kodu maszynowego{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Czy Mogę używać REA bez agenta kodującego?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2560,14 +2560,14 @@ msgstr "" "Tak. CLI wykorzystuje te same przepływy pracy analizy. Dla lokalnej " "aplikacji JavaScript lub Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * statyczna analiza aplikacji" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2578,13 +2578,13 @@ msgstr "" "CLI {ph1} dla opcji instalacji." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Jaki kod zwraca REA?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2599,7 +2599,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2611,12 +2611,12 @@ msgstr "" "przetestować implementację. The {ph0} Obliczanie DX-Ball{ph1} oraz {ph2}CTF " "flag checker{ph3} pokaż, jak działa ten proces." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "O co zapytać agenta?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2633,7 +2633,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2641,7 +2641,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Twój agent kodowania" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2651,18 +2651,18 @@ msgstr "" "Zastąp ścieżkę swoim celem. The {ph0}Przewodniki{ph1} podaj monity o " "przykłady natywne, Electron i przeglądarki." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Rozwiązywanie problemów" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Dlaczego mój agent nie widzi narzędzi REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2672,7 +2672,7 @@ msgstr "" "Uruchom ponownie lub podłącz ponownie agenta po konfiguracji. Sprawdź swoją " "rejestrację REA z {ph0}; dla Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * sprawdź jednego klienta" @@ -2680,7 +2680,7 @@ msgstr "Terminal * sprawdź jednego klienta" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2691,14 +2691,14 @@ msgstr "" "raport pokazuje brakującą lub nieaktualną rejestrację, Uruchom setup dla " "tego klienta:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * naprawa konfiguracji jednego klienta" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2710,14 +2710,14 @@ msgstr "" "zdrowa, ale narzędzia pozostają nieobecne, sprawdź błąd połączenia MCP " "klienta. {ph0}Więcej diagnostyki konfiguracji{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Czy muszę najpierw uruchomić Hopper?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2729,14 +2729,14 @@ msgstr "" "pierwszego wyboru trybu demonstracyjnego lub aktywacji licencji przed " "analizą nienadzorowaną. {ph0}Zobacz native provider setup{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Co zrobić, gdy znajdę błąd?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2748,7 +2748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2761,17 +2761,17 @@ msgstr "" "Uwzględnij nazwę dostawcy, gdy problem obejmuje analizę programów kodu " "maszynowego." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Dane i udostępnianie" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Czy REA przesyła moją aplikację?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2780,7 +2780,7 @@ msgstr "" "REA analizuje cele na twoim komputerze. Twój agent otrzymuje wyniki, a " "zasady dotyczące danych dostawcy modelu mają zastosowanie do tych wyników." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Jak mogę podzielić się przykładem lub wnieść swój wkład?" @@ -2789,7 +2789,7 @@ msgstr "Jak mogę podzielić się przykładem lub wnieść swój wkład?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2805,7 +2805,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2831,77 +2831,77 @@ msgstr "" "analityczne, środki kodujące, rozwiązywanie problemów i udostępnianie " "przykładów." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Często zadawane pytania dotyczące REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Skopiuj polecenie konfiguracji REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Skopiuj polecenie aktualizacji REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Skopiuj polecenie odświeżania konfiguracji agenta" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Skopiuj polecenie analizy REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Skopiuj przykładowy monit o analizę" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Skopiuj polecenie diagnozy klienta" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Skopiuj polecenie konfiguracji z zakresem" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Spis treści{ph1} / Twoje pierwsze śledztwo" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Dowiedz się, gdzie{ph0}eksportowane notatki go." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2910,14 +2910,14 @@ msgstr "" "Użyj REA, aby sprawdzić małą aplikację, postępuj zgodnie z jej przyciskiem " "Eksportuj notatki i sam sprawdź jeden szczegół." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "W tym ćwiczeniu" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2925,7 +2925,7 @@ msgstr "{ph0}1. Skonfiguruj{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2933,7 +2933,7 @@ msgstr "{ph0}2. Zapytaj o eksport{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2941,7 +2941,7 @@ msgstr "{ph0}3. Postępuj zgodnie z odpowiedzią{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2949,13 +2949,13 @@ msgstr "{ph0}4. Sprawdź prognozę{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Zadaj kolejne pytanie{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Połącz swojego agenta z REA" @@ -2968,30 +2968,30 @@ msgstr "1. Połącz swojego agenta z REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Twój agent kodowania" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Kopiuj" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Lub uruchom to polecenie w swoim terminalu:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3000,14 +3000,14 @@ msgstr "" "Przejrzyj plan, Zatwierdź konfigurację, a następnie uruchom ponownie agenta." " Już podłączony? Kontynuuj poniżej." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Zapytaj, gdzie jest napisane CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3019,7 +3019,7 @@ msgstr "" "notatki{ph1} przycisk. Twój agent może sprawdzić swój kod bez instalowania " "lub uruchamiania Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3030,14 +3030,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Pobierz przykład ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3047,12 +3047,12 @@ msgstr "" "Jeśli twój agent nie może pobrać plików, rozpakuj to archiwum samodzielnie. " "Daj mu drogę do {ph0} folder i to samo pytanie o eksport." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Postępuj zgodnie z odpowiedzią z powrotem do kodu" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Poszukaj krótkiego wyjaśnienia z odniesieniami do plików i linii:" @@ -3061,7 +3061,7 @@ msgstr "Poszukaj krótkiego wyjaśnienia z odniesieniami do plików i linii:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3072,12 +3072,12 @@ msgstr "" "Przycisk wysyła {ph0} wiadomość. Główny proces formatuje notatki jako CSV i " "zapisuje {ph1} w folderze Pobrane użytkownika. Kolumny są {ph2} oraz {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Od przycisku Do pisarza plików" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3086,7 +3086,7 @@ msgstr "" "Analiza statyczna REA łączy wiadomość z jej obsługą. Miejsce docelowe jest " "odczytywane z kodu." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3098,18 +3098,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "{ph0}Zobacz pełny ślad kodu i zapisany wynik REA{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Sprawdź prognozę" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3118,29 +3118,29 @@ msgstr "" "Przecinek oddziela kolumny CSV. Co się stanie, gdy sam tytuł notatki zawiera" " przecinek lub cudzysłów?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Sprawdź sam" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Otwórz terminal w rozpakowanym {ph0} folder:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Zadaj kolejne pytanie" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Spróbuj kontynuować tę samą rozmowę:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3149,7 +3149,7 @@ msgstr "" "Co się stanie, jeśli pliku nie można zapisać? Postępuj zgodnie z błędem z " "powrotem do strony." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3162,7 +3162,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3176,7 +3176,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3190,7 +3190,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3215,116 +3215,116 @@ msgstr "" "zapytaj, gdzie są eksportowane notatki, i sprawdź formatowanie CSV z " "przykładowym tytułem." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Twoje pierwsze badanie REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Skopiuj monit instalacji REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Skopiuj polecenie konfiguracji" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Skopiuj uwagi dochodzenie prompt" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Skopiuj CSV sprawdź monit" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Skopiuj polecenie sprawdzania formatowania" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Spis treści{ph1} / Zacznij" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Skonfiguruj REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Otwórz terminal i sprawdź:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Kopiuj" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3336,7 +3336,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3348,7 +3348,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3359,7 +3359,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3367,7 +3367,7 @@ msgstr "{ph0}Użyj CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3381,18 +3381,18 @@ msgstr "{ph0}Uzyskiwanie pomocy{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Twój agent programistyczny" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Lub uruchom samodzielnie konfigurację" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Jak otworzyć terminal?" @@ -3401,7 +3401,7 @@ msgstr "Jak otworzyć terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3417,7 +3417,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3431,7 +3431,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3446,7 +3446,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3456,7 +3456,7 @@ msgstr "" "Wklej polecenie za pomocą {ph0} {ph1} (macOS : {ph2} {ph3}; Terminale Linux:" " {ph4} {ph5} {ph6}), a następnie naciśnij Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3467,7 +3467,7 @@ msgstr "" "połączenie MCP i umiejętność badania dopasowania, zachowując kopię zapasową " "istniejącej konfiguracji. Pyta przed zastosowaniem zmian." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Jak zrestartować klienta?" @@ -3476,7 +3476,7 @@ msgstr "Jak zrestartować klienta?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3492,7 +3492,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3502,7 +3502,7 @@ msgstr "" "{ph0}Agenci terminalowi{ph1} (Claude Code , Codex , Gemini CLI ): Zamknij " "sesję i uruchom ją ponownie." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Jak uzyskać pełną ścieżkę folderu?" @@ -3511,7 +3511,7 @@ msgstr "Jak uzyskać pełną ścieżkę folderu?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3526,7 +3526,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3538,7 +3538,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3548,13 +3548,13 @@ msgstr "" "{ph0}Dowolny system:{ph1} przeciągnij folder do okna terminala, a pojawi się" " jego ścieżka." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "W terminalu umieść cudzysłowy wokół ścieżki zawierającej spacje." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3563,14 +3563,14 @@ msgstr "" "Analizuj folder aplikacji JavaScript lub Electron lub archiwum ASAR bez " "uruchamiania aplikacji:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Statyczna analiza aplikacji" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3580,13 +3580,13 @@ msgstr "" "Zastąp ścieżkę wyodrębnionym katalogiem aplikacji lub {ph0} akta. Na Windows" " ścieżka taka jak {ph1} działa tutaj." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Gdzie znajdę aplikację .plik asar?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3597,7 +3597,7 @@ msgstr "Aplikacje Electron zwykle przechowują go w {ph0} folder:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3609,7 +3609,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3622,14 +3622,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} często {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3637,7 +3637,7 @@ msgstr "" "Niektóre aplikacje instalują się gdzie indziej. Wyszukaj w folderze " "aplikacji {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3649,37 +3649,37 @@ msgstr "" "wyniku." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Jeśli chcesz mieć stałe {ph0} polecenie w Twojej powłoce:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Zainstaluj CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "" "{ph0}Kontynuuj korzystanie z Przewodnika po aplikacjach JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Podłącz instalację Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Połącz Ghidra na Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3690,14 +3690,14 @@ msgstr "" "aplikacji x86 i x64 PE oraz bibliotek DLL na stałych lokalnych dyskach NTFS." " Użyj istniejącego Ghidra 12.1.instalacja x i 64-bitowy JDK 21 lub nowszy:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." msgstr "" "Zastąp dwie ścieżki instalacjami, a następnie przejrzyj plan konfiguracji." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3706,18 +3706,18 @@ msgstr "" "Podłącz Hopper na macOS lub Linux . Uruchom powyższe polecenie konfiguracji;" " wykrywa istniejącą instalację lub oferuje plan instalacji do zatwierdzenia." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Uzyskiwanie pomocy" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Jeśli twój agent nie widzi REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3727,22 +3727,22 @@ msgstr "" "Uruchom ponownie lub podłącz ponownie Klienta po konfiguracji. Sprawdź " "połączenie REA z {ph0}; dla Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Jeśli dostawca wymaga uwagi" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Sprawdź dostawcę, którego używasz. Dla Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Sprawdź jednego dostawcę" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "Raport zawiera nieudaną kontrolę i sugerowany następny krok." @@ -3751,7 +3751,7 @@ msgstr "Raport zawiera nieudaną kontrolę i sugerowany następny krok." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3764,7 +3764,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3778,7 +3778,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3792,7 +3792,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3816,68 +3816,68 @@ msgstr "" "lub Electron z terminala. Konfiguracja, pierwsze pytania i Przewodniki " "natywnego dostawcy." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Kopia Node.js wersja sprawdź" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Skopiuj polecenie instalacji Node.js dla Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Skopiuj polecenie instalacji Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Skopiuj polecenie instalacji fnm dla Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Skopiuj Node.js 24 polecenia dla Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA przewodnik dla początkujących" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Skopiuj monit instalacji REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Skopiuj polecenie analizy JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Skopiuj polecenie instalacji CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Kopiuj polecenie diagnozy dostawcy" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -3886,7 +3886,7 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" @@ -3894,13 +3894,13 @@ msgstr "" "{ph0}Spis treści{ph1} / {ph2}Przewodniki{ph3} / Obserwacja przeglądarki" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Zobacz, co się stanie{ph0}po kliknięciu." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3909,14 +3909,14 @@ msgstr "" "Użyj małej aplikacji przeglądarki, aby połączyć akcję, jej żądanie sieciowe " "i JavaScript, który tworzy plik do pobrania." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "W tym przewodniku" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3924,7 +3924,7 @@ msgstr "{ph0}Przykład{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3932,7 +3932,7 @@ msgstr "{ph0}Otwórz przeglądarkę{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3940,7 +3940,7 @@ msgstr "{ph0}Zapytaj swojego agenta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3948,13 +3948,13 @@ msgstr "{ph0}Przechwytywanie z CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Przeczytaj żądanie i skrypt{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Co się stanie po kliknięciu przycisku Eksportuj?" @@ -3964,7 +3964,7 @@ msgstr "Co się stanie po kliknięciu przycisku Eksportuj?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3976,7 +3976,7 @@ msgstr "" "przycisk. Kliknięcie go ładuje {ph4}, formatuje dwie notatki jako CSV i " "rozpoczyna pobieranie." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Od kliknięcia do pobrania CSV" @@ -3987,7 +3987,7 @@ msgstr "Od kliknięcia do pobrania CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4003,7 +4003,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4021,7 +4021,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4031,17 +4031,17 @@ msgstr "" "{ph0}03 * Twój agent{ph1}{ph2}Przeczytaj kod eksportu{ph3}{ph4}Połącz " "obserwowane żądanie z {ph5} w {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Rozpocznij przechwytywanie przed kliknięciem Eksportuj notatki." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Otwórz Chrome ze zdalnym debugowaniem" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4050,21 +4050,21 @@ msgstr "" "Otwórz przykład hostowanych notatek za pomocą oddzielnego profilu " "przeglądarki i lokalnego portu debugowania. Na Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Uruchom przykładową przeglądarkę" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Kopiuj" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4073,7 +4073,7 @@ msgstr "" "Użyj ścieżki wykonywalnej zainstalowanej przeglądarki na macOS lub Windows ." " Możesz zastąpić adres URL strony inną stroną, którą chcesz sprawdzić." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4082,7 +4082,7 @@ msgstr "" "REA łączy się z tą istniejącą przeglądarką. Zachowujesz kontrolę nad stroną," " wykonujesz akcję i zamykasz przeglądarkę po zakończeniu." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Poproś swojego agenta, aby obejrzał jedną akcję" @@ -4095,7 +4095,7 @@ msgstr "Poproś swojego agenta, aby obejrzał jedną akcję" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4107,7 +4107,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Twój agent kodowania" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4118,7 +4118,7 @@ msgstr "" "notatki. Jakie jest żądanie i jak zbudowany jest CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4128,7 +4128,7 @@ msgstr "" "Przykładowy monit. Daj swojemu agentowi punkt końcowy debugowania, {ph0}, " "oraz adres URL strony. Pozwól mu rozpocząć przechwytywanie, zanim klikniesz." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4138,23 +4138,23 @@ msgstr "" "Twój agent odkrywa cel strony, uruchamia okno obserwacji i odczytuje " "wynikowe dowody. Następnie może sprawdzić skrypt za eksportem." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Lub przechwytywanie z terminala" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Znajdź identyfikator docelowy strony:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Znajdź stronę" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4164,14 +4164,14 @@ msgstr "" "Wybierz cel z przykładowym adresem URL notatek. Wymienić {ph0} poniżej z " "jego ID, a następnie uruchom:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Uchwyć następne dziesięć sekund" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4182,7 +4182,7 @@ msgstr "" "{ph0}Eksportuj notatki{ph1} w tej przeglądarce. Wynik pojawia się po " "zakończeniu okna obserwacji." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4193,49 +4193,49 @@ msgstr "" "oraz kształt odpowiedzi JSON. Wcześniejsze żądania są poza tym " "przechwytywaniem." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Przeczytaj skrypt żądania i eksportu" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Nagrany z REA 4.1.0 na przykładzie notatek lokalnych" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Uchwycony fakt" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Wartość" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Prośba" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Odpowiedź" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Inicjator żądania" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * skrypt" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Struktura odpowiedzi" @@ -4243,19 +4243,19 @@ msgstr "Struktura odpowiedzi" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} z {ph1} oraz {ph2} pola" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Przeczytaj załadowane Skrypty" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4266,7 +4266,7 @@ msgstr "" "Przeczytaj przechwycone źródło skryptu, aby zobaczyć, jak dane są używane:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4279,7 +4279,7 @@ msgstr "" "kliknięcie jest wymagane {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4291,7 +4291,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4316,65 +4316,65 @@ msgstr "" "przechwyć kliknięcie, sprawdź żądanie i postępuj zgodnie ze skryptem " "eksportu." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Obserwacja przeglądarki" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Skopiuj Uruchom przykładową przeglądarkę" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Skopiuj przykładowy monit" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Kopiuj znajdź stronę" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Kopiuj przechwyć następne dziesięć sekund" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Kopiuj przeczytaj załadowane Skrypty" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Spis treści{ph1} / Przewodniki" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Przewodniki REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4383,37 +4383,37 @@ msgstr "" "Analizuj natywną funkcję, eksport Electron lub żądanie przeglądarki. Każdy " "przewodnik zawiera monit, kod i wyniki." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Pierwsze dochodzenie" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Skonfiguruj REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Podłącz agenta kodującego lub użyj REA z terminala." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Zacznij korzystać z REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Programy do kodu maszynowego" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Odzyskaj obliczenie lewej / prawej pozycji dźwięku" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4422,22 +4422,22 @@ msgstr "" "Zacznij od pliku wykonywalnego gry Windows. Sprawdź instrukcje, postępuj " "zgodnie z rozmówcą, przeczytaj stałe numeryczne i sprawdź odzyskane C." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Analiza programów kodu maszynowego przewodnik" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Śledź eksport CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4447,14 +4447,14 @@ msgstr "" "preload i głównym procesie. Użyj REA, aby połączyć API, kanał IPC i pisarz " "plików." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & Electron przewodnik" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4462,17 +4462,17 @@ msgstr "" "Aby uzyskać większą spakowaną aplikację, postępuj zgodnie z {ph0} Notion ' s" " clipboard bridge{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Zachowanie przeglądarki" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Obserwuj kliknięcie" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4481,7 +4481,7 @@ msgstr "" "Otwórz przykład notatek roboczych, przechwyć żądanie eksportu i znajdź kod, " "który zamienia jego odpowiedź w pobieranie." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Przewodnik obserwacji przeglądarki" @@ -4500,12 +4500,12 @@ msgstr "" "Naucz się REA poprzez krótkie przykłady: natywne obliczenia, eksport " "Electron CSV i żądanie przeglądarki." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -4514,20 +4514,20 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Spis treści{ph1} / {ph2}Przewodniki{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Śledzenie Electron {ph0} Eksport CSV." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4535,14 +4535,14 @@ msgid "" msgstr "" "Kliknij przycisk od strony API, przez Electron IPC, do CSV File writer." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "W tym przewodniku" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4550,7 +4550,7 @@ msgstr "{ph0}Przykład{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4558,7 +4558,7 @@ msgstr "{ph0}Zapytaj swojego agenta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4566,7 +4566,7 @@ msgstr "{ph0}Śledzenie kodu eksportu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4574,20 +4574,20 @@ msgstr "{ph0}Wypróbuj przykład{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Sprawdź pisarz CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Gdzie idzie \"Eksportuj notatki\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4599,7 +4599,7 @@ msgstr "" "notatki{ph1} wywołuje API na stronie, przechodzi do głównego procesu i " "zapisuje CSV . Zachowanie jest rozłożone na kilka plików." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Eksport CSV w procesach Electron" @@ -4613,7 +4613,7 @@ msgstr "Eksport CSV w procesach Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4630,7 +4630,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4647,7 +4647,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4660,13 +4660,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} formatuje notatki → {ph1} pisze {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4677,14 +4677,14 @@ msgstr "" "odsłonięty interfejs API. Ścieżka jest wywnioskowana z kodu; przechwytywanie" " środowiska wykonawczego może sprawdzić, co wykonuje." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Zapytaj o CSV export" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4702,14 +4702,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Twój agent kodowania" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Kopiuj" @@ -4720,7 +4720,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4731,7 +4731,7 @@ msgstr "" "notatki w tej aplikacji. Gdzie jest tworzony CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4741,7 +4741,7 @@ msgstr "" "Przykładowy monit. Dołącz bezwzględną ścieżkę do folderu aplikacji lub " "{ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4752,17 +4752,17 @@ msgstr "" "granic procesów. Twój agent używa tej mapy, aby zawęzić dochodzenie do " "funkcji eksportu." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Śledzenie kodu eksportu" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Strona wywołuje mały interfejs API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4773,7 +4773,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4785,7 +4785,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4795,7 +4795,7 @@ msgstr "" "Czytanie obsługi odpowiada na pierwotne pytanie: {ph0} formatuje notatki, a " "główny proces zapisuje {ph1} do folderu Pobrane użytkownika." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4804,7 +4804,7 @@ msgstr "" "Nagrane przez REA 4.1.0 na poniższym przykładzie do pobrania. Lokalizacje " "źródłowe towarzyszą ustaleniom API, kanału i obsługi." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Przeanalizuj sam przykład" @@ -4812,25 +4812,25 @@ msgstr "Przeanalizuj sam przykład" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Pobierz przykład ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Przeglądaj sześć plików źródłowych" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Statyczna analiza aplikacji" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4841,7 +4841,7 @@ msgstr "" "jeden pasujący program obsługi w {ph0}. Lokalizacje źródłowe znajdują się w " "{ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4852,13 +4852,13 @@ msgstr "" "lub ścieżką ASAR. Agent może śledzić dosłowny ciąg znaków, nazwę API lub " "kanał IPC za pomocą narzędzi do śledzenia funkcji REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Sprawdź pisarz CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4868,7 +4868,7 @@ msgstr "" "Follow {ph0} do jego obsługi. Które Dane wejściowe docierają do pisarza CSV " "i co się stanie, jeśli zapisanie pliku nie powiedzie się?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4883,7 +4883,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4897,7 +4897,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4911,7 +4911,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4937,32 +4937,32 @@ msgstr "" "wstępnego i obsługi IPC za pomocą REA . Zawiera pliki przykładowe do " "pobrania i zweryfikowany wynik analizy." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Skopiuj przykładowy monit" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Kopiuj statyczną analizę aplikacji" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -4971,7 +4971,7 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -4980,13 +4980,13 @@ msgstr "" "maszynowego" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "Recover DX-Ball{ph0}obliczanie lewej / prawej pozycji dźwięku." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -4995,14 +4995,14 @@ msgstr "" "Sprawdź oryginalne instrukcje, zidentyfikuj dane wejściowe i stałe, a " "następnie sprawdź odzyskane C." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "W tym przewodniku" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5010,7 +5010,7 @@ msgstr "{ph0}Przykład{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5018,7 +5018,7 @@ msgstr "{ph0}Zapytaj swojego agenta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5026,7 +5026,7 @@ msgstr "{ph0}Przeczytaj wyniki REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5034,18 +5034,18 @@ msgstr "{ph0}Odzyskaj i sprawdź{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Użyj własnego pliku binarnego{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Oblicz pozycjonowanie dźwięku stereo w lewo / w prawo" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5056,7 +5056,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5068,7 +5068,7 @@ msgstr "" "REA zwraca również swoje instrukcje i dzwoniące, które dają agentowi sposób " "na zbadanie brakującej arytmetyki." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Nowy w tych warunkach?" @@ -5077,7 +5077,7 @@ msgstr "Nowy w tych warunkach?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5089,7 +5089,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5102,7 +5102,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5115,7 +5115,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5127,7 +5127,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5137,7 +5137,7 @@ msgstr "" "{ph0}Stałe:{ph1} stałe numery przechowywane w programie, odczytywane jako " "surowe bajty i dekodowane." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Trzy dowody, jedna kalkulacja" @@ -5148,7 +5148,7 @@ msgstr "Trzy dowody, jedna kalkulacja" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5165,7 +5165,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5183,7 +5183,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5193,7 +5193,7 @@ msgstr "" "{ph0}03 * bajty danych{ph1}{ph2}Stałe numeryczne{ph3}{ph4}Odsyłane bajty " "dekodują do {ph5}, {ph6} i wartość skali.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5202,7 +5202,7 @@ msgstr "" "REA dostarcza instrukcje, relacji funkcja-wywołanie i bajtów. Agent " "interpretuje je razem." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Zapytaj o zachowanie" @@ -5211,7 +5211,7 @@ msgstr "Zapytaj o zachowanie" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5222,19 +5222,19 @@ msgstr "" "analizy programów kodu maszynowego{ph3}, podaj lokalny plik wykonywalny i " "pytanie:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Jakiego narzędzia analitycznego powinienem użyć?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA potrzebuje jednego z nich do odczytu programów natywnych:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5248,7 +5248,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5261,7 +5261,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5272,7 +5272,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5288,14 +5288,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Twój agent kodowania" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Kopiuj" @@ -5306,7 +5306,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5317,7 +5317,7 @@ msgstr "" "pozycjonowanie dźwięku stereo. Wyjaśnij obliczenia i pokaż " "kod.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5329,7 +5329,7 @@ msgstr "" "kopii lub zadaj to samo pytanie dotyczące innego małego programu Windows, " "który masz." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Jak uzyskać pełną ścieżkę pliku?" @@ -5338,7 +5338,7 @@ msgstr "Jak uzyskać pełną ścieżkę pliku?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5353,7 +5353,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5365,7 +5365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5375,17 +5375,17 @@ msgstr "" "{ph0}Dowolny system:{ph1} przeciągnij plik do okna terminala, a pojawi się " "jego ścieżka." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Przeczytaj wyniki REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Przeczytaj dane wejściowe" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5395,13 +5395,13 @@ msgstr "" "zmiennoprzecinkową. Jest to dane wejściowe nieobecne w pierwszym widoku " "pseudokodu." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Podążaj za dzwoniącym" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5412,12 +5412,12 @@ msgstr "" "współrzędną płytki przez 30; dodawanie {ph0} (20) podaje położenie ekranu " "Cegły." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Przeczytaj przywoływane stałe" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5427,12 +5427,12 @@ msgstr "" "rzeczywistych wartości; kolejność instrukcji informuje agenta, w jaki sposób" " są używane." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Napisz i sprawdź odzyskaną funkcję" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5443,7 +5443,7 @@ msgstr "" "konwersją liczb całkowitych. Obliczenia umieszczają środek ekranu na środku " "pola stereo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5456,20 +5456,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Zobacz pełne porównanie badań i montażu do C{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Spróbuj z własnym binarnym" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5483,7 +5483,7 @@ msgstr "" "Przydatne pytania początkowe obejmują \"Jak jest analizowany ten " "plik?\"lub\" która funkcja obsługuje tę akcję menu?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5492,13 +5492,13 @@ msgstr "" "Jeśli znasz już nazwę lub adres funkcji, możesz wysłać zapytanie z " "terminala. Dla skonfigurowanej instalacji Ghidra:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Analiza funkcji" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5512,7 +5512,7 @@ msgstr "" "sesję. Zapytania MCP twojego agenta ponownie wykorzystują zaimportowany plik" " binarny, gdy ta sesja jest otwarta." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5536,50 +5536,50 @@ msgstr "" "Odzyskaj natywne obliczenia za pomocą REA: sprawdź instrukcje, podążaj za " "dzwoniącym, przeczytaj stałe i sprawdź zrekonstruowane C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Analiza programów kodu maszynowego" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Skopiuj przykładowy monit" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Analiza funkcji kopiowania" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Przejdź do treści" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Skonfiguruj REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5587,7 +5587,7 @@ msgstr "{ph0}Skonfiguruj REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5595,7 +5595,7 @@ msgstr "{ph0}Dinozaur gry{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5603,7 +5603,7 @@ msgstr "{ph0}Kalkulator{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5611,25 +5611,25 @@ msgstr "{ph0}Spróbuj REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Dowiedz się więcej{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Inżynieria odwrotna z twoim agentem kodującym" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Dowiedz się,{ph0}jak działa oprogramowanie." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Wklej to polecenie do swojego agenta programistycznego:" @@ -5642,33 +5642,33 @@ msgstr "Wklej to polecenie do swojego agenta programistycznego:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Twój agent kodowania" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Kopiuj" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Albo uruchom to polecenie w terminalu:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Sprawdź i zatwierdź plan zmian, a następnie uruchom agenta ponownie." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5676,7 +5676,7 @@ msgstr "{ph0}01{ph1} Dekoduj gałęzie" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5684,7 +5684,7 @@ msgstr "{ph0}02{ph1} Śledzenie połączeń" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5694,20 +5694,20 @@ msgstr "{ph0}03{ph1} Odzyskaj regułę" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Oryginalny x64 * wybrane instrukcje{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * która gałąź?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5716,29 +5716,29 @@ msgid "" msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Dwa skoki w to samo miejsce. Którzy to operatorzy?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Wyszukaj identyfikatory poleceń, a następnie oznacz gałąź." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Podziel ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Mnożenie ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Co robią wywoływane funkcje?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5748,24 +5748,24 @@ msgstr "" "\"100 jest jasne. Rozmowy to tylko adresy. {ph0}Który dzieli? Która wartość " "wchodzi?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Sprawdź funkcje pomocnicze i prześledź zapisane wartości." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Divide" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * Jaka jest reguła?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5775,19 +5775,19 @@ msgstr "" "\"Ta ścieżka mnoży się przez inne dane wejściowe. Więc {ph0}10% oznacza 10% " "z 200{ph1} po +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Nazwij operandy i sprawdź obie ścieżki operatora." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Ilustrujące rozumowanie eksperta" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5805,88 +5805,88 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Przykładowy monit * Kalkulator" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Przykładowa odpowiedź · na podstawie ustaleń" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "Po +, przycisk % trwa {ph0}procent pierwszej liczby.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA dostarcza" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Instrukcje obsługi, zdekompilowany kod i połączenia." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Twój agent wyjaśnia" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Która gałąź ma zastosowanie, co oblicza i jak ją odbudować." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Przykład 01 * gra dinozaurów Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Dlaczego dinozaur przyspiesza?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Graj" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Skok ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Zacznij od nowa" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Prędkość" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Użyj reguły odzyskiwania przyspieszenia" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Pierwotna zasada: zacznij od 6, a następnie zwiększ do 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5899,7 +5899,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5913,19 +5913,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" "Sprawdzony cel: {ph0}wayou ' s Chromium-wersja przeglądarki pochodnej{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Otwórz speed lab" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Co robi każda część" @@ -5936,7 +5936,7 @@ msgstr "Co robi każda część" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5952,7 +5952,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5968,7 +5968,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5978,13 +5978,13 @@ msgstr "" "{ph0}03 * Ty{ph1}{ph2}Zmień prędkość i graj{ph3}{ph4}Wypróbuj oryginalne " "przyspieszenie, a następnie wybierz własne tempo.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Zobacz skrypt, kontrole i jak wypróbować analizę" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5994,7 +5994,7 @@ msgstr "" "REA sprawdził wersję przeglądarki HTTP poprzez lokalne połączenie " "debugowania i zwrócił załadowany {ph0}, w tym jego źródło i trawienie." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6008,7 +6008,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6024,7 +6024,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6042,7 +6042,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6051,34 +6051,34 @@ msgstr "" "{ph0}Sprawdzony kod prędkości{ph1} · {ph2} Chromium autorzy * licencja " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Przykład 02 * Kalkulator Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Odtwórz przycisk % kalkulatora." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Resetuj" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% z 200 = 20. Następnie 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Interaktywna ilustracja kontrolowanej reguły procentowej." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6090,7 +6090,7 @@ msgstr "Dla tego przykładu, {ph0} oraz {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6102,7 +6102,7 @@ msgstr "" "Odzyskaj reguły po + I×, a następnie zbuduj mały kalkulator, który używa " "obu.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Z +" @@ -6110,13 +6110,13 @@ msgstr "Z +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Weź 10% pierwszej liczby.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Z ×" @@ -6124,13 +6124,13 @@ msgstr "Z ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Zamień 10% na 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Z zainstalowanej aplikacji do działającego przycisku %" @@ -6142,7 +6142,7 @@ msgstr "Z zainstalowanej aplikacji do działającego przycisku %" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6159,7 +6159,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6171,12 +6171,12 @@ msgstr "" "ZASADY{ph3}{ph4}Sprawdź gałąź za pomocą źródła Microsoft, a następnie " "wypróbuj + i × powyżej.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Zobacz prawdziwy kod i sposób sprawdzenia odpowiedzi" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6197,7 +6197,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6207,17 +6207,17 @@ msgstr "" "{ph0}Procentowa realizacja{ph1} · {ph2}Przypadki testowe Microsoftu{ph3} · " "{ph4}Natywny Przewodnik konfiguracji{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Twoje pierwsze śledztwo" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Wypróbuj REA w małej aplikacji." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6226,17 +6226,17 @@ msgstr "" "Pobierz nasz przykład notatek, prześledź eksport CSV i sprawdź jedno " "zmienione wejście." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Wypróbuj przykład z przewodnikiem" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Programy do kodu maszynowego" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6245,17 +6245,17 @@ msgstr "" "Sprawdzaj funkcje, ciągi znaków, odwołania i relacje wywołania funkcji w " "plikach wykonywalnych i bibliotekach." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Analiza programów kodu maszynowego przewodnik" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6264,17 +6264,17 @@ msgstr "" "Mapuj Moduły, trasy, IPC i natywne zależności z folderu aplikacji lub " "archiwum ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Przepływy pracy aplikacji" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Aktywność przeglądarki i środowiska wykonawczego" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6283,12 +6283,12 @@ msgstr "" "Przechwyć wybraną aktywność przeglądarki lub procesu, a następnie porównaj " "wyniki w różnych przebiegach." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Przewodnik obserwacji przeglądarki" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Masz pytania?" @@ -6308,27 +6308,27 @@ msgstr "" "agentem kodującym. Postępuj zgodnie z przejrzystymi przewodnikami i wypróbuj" " interaktywne przykłady z REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Skopiuj monit instalacji REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Skopiuj polecenie konfiguracji" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Postępuj zgodnie z ręczną analizą kalkulatora" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Kopiuj Kalkulator Procent pytanie" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6337,27 +6337,27 @@ msgstr "" "Dinozaur mini-gry. Użyj przycisku skoku lub naciśnij spację, gdy gra jest " "skupiona." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Skopiuj monit o analizę dinozaurów" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Wybierz obliczenia" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Kopiuj monit o analizę kalkulatora" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -6366,25 +6366,25 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Spis treści{ph1} / {ph2}Gabloty{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Case study * Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Jak działa authenticator{ph0}wygenerować kod logowania?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6394,17 +6394,17 @@ msgstr "" "obliczenia w Android APK, a następnie odbudować go z zegarem można " "kontrolować." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * oficjalne wydanie APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Zobacz Aegis na GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Od APK do kodu, który możesz odtworzyć" @@ -6415,7 +6415,7 @@ msgstr "Od APK do kodu, który możesz odtworzyć" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6433,7 +6433,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6451,7 +6451,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6463,14 +6463,14 @@ msgstr "" "kod.{ph3}{ph4}Nowa wersja demonstracyjna przeglądarki odtwarza regułę i " "sprawdza ją w publicznych przypadkach referencyjnych.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "W tym studium przypadku" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6478,7 +6478,7 @@ msgstr "{ph0}Zapytaj swojego agenta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6486,7 +6486,7 @@ msgstr "{ph0}Wypróbuj generator kodu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6494,7 +6494,7 @@ msgstr "{ph0}Znajdź kod za pomocą REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6502,7 +6502,7 @@ msgstr "{ph0}Przeczytaj obliczenia{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6510,20 +6510,20 @@ msgstr "{ph0}Sprawdź rekonstrukcję{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Sprawdź sam APK{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Zapytaj swojego agenta" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6541,21 +6541,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Twój agent kodowania" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Kopiuj" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6565,14 +6565,14 @@ msgstr "" "Przykładowy monit dla pobranego APK, ze skonfigurowaną analizą Androida REA." " {ph0}Pobierz APK i konfiguracji analizy ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Wypróbuj generator kodu" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6583,33 +6583,33 @@ msgstr "" "Aplikacja grupuje czas w {ph0}30-sekundowe bloki.{ph1} Łączy numer bloku z " "kluczem konta, aby wygenerować kod. Ten sam klucz i blok tworzą ten sam kod." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Przesuń zegar na 60 sekund" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Czas" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "sekund" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Nasz regulowany przykładowy zegar" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30-sekundowy blok" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Blok" @@ -6618,35 +6618,35 @@ msgstr "Blok" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 sekund{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Wygenerowany kod" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Klucz konta + blok → sześć cyfr" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Przykładowy czas, w sekundach" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 sekund" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 sekund" @@ -6655,7 +6655,7 @@ msgstr "60 sekund" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6667,7 +6667,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6677,7 +6677,7 @@ msgstr "" "Klucz jest stały, publiczny {ph0}Dane testowe RFC 6238{ph1}. Demo " "implementuje obliczenia odzyskane z APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6685,18 +6685,18 @@ msgid "" msgstr "" "Diagram pokazuje wynik po 59 sekundach. Włącz JavaScript, aby zmienić zegar." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Znajdź kod za pomocą REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Zawęź APK do trzech klas" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6706,14 +6706,14 @@ msgstr "" "{ph0} jest kandydatem do obliczeń; pozostałe dwa dotyczą paska postępu i " "zaimportowanych kont. TOTP oznacza hasło jednorazowe oparte na czasie." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Podłącz generator do wyświetlacza aplikacji" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6724,7 +6724,7 @@ msgstr "" " bazowej. Kontrola {ph0} następnie pokazuje wywołanie wyświetlacza {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6734,14 +6734,14 @@ msgstr "" "Żądania pokazują skróconą ścieżkę wejściową. Nazwy klas wynikowych pomijają " "wspólne {ph0} prefiks." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Przeczytaj obliczenia" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6755,7 +6755,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6763,7 +6763,7 @@ msgstr "{ph0}01{ph1} Blok czasu" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6771,7 +6771,7 @@ msgstr "{ph0}02{ph1} Klucz + blok" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6779,7 +6779,7 @@ msgstr "{ph0}03{ph1} Sześć cyfr" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6791,7 +6791,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6804,7 +6804,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6818,7 +6818,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6829,7 +6829,7 @@ msgstr "" "Prawy panel jest podsumowaniem wyjaśniającym. {ph0} Kod Aegis to " "GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Wewnątrz generatora" @@ -6838,7 +6838,7 @@ msgstr "Wewnątrz generatora" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6848,7 +6848,7 @@ msgstr "" "Wydany APK stawia {ph0} w {ph1}. REA podąża za wywołaniem z {ph2} i zwraca " "to ciało; oryginalne źródło wywołuje pomocnika {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6865,20 +6865,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Porównaj z pasującym źródłem wydania{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Sprawdź rekonstrukcję" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6890,29 +6890,29 @@ msgstr "" "dorobek odpowiadał niezależnej rekonstrukcji na {ph0}133 przypadki " "testowe{ph1}, w tym granice bloków czasowych i kody zaczynające się od zera." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Przykładowy czas" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Kod sześciocyfrowy" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 sekund" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 sekund" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6923,17 +6923,17 @@ msgstr "" " SHA-1 w {ph0}RFC 6238{ph1}. Sprawdź implementację przeglądarki przeciwko " "nim:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Uruchom kontrole referencyjne" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Przeczytaj obliczenia demo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6942,7 +6942,7 @@ msgstr "" "Przypadki referencyjne używają ośmiu cyfr. Kontrola weryfikuje również ich " "sześciocyfrowe wyniki." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6951,14 +6951,14 @@ msgstr "" "Weryfikacja uruchamia wyodrębnione metody Java i nowe demo. Android APK " "został sprawdzony statycznie." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Sprawdź sam APK" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6970,7 +6970,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6980,18 +6980,18 @@ msgstr "" "Analiza Androida wymaga pełnego JDK 17 lub nowszego. Wybierz go za pomocą " "{ph0} lub {ph1}. W tym przypadku zastosowano JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Wskaż REA w pliku dostawcy i sprawdź APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7003,7 +7003,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7013,7 +7013,7 @@ msgstr "" "Następne pytanie: {ph0}co się dzieje, gdy konto używa ośmiu cyfr lub innego " "przedziału czasu?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Źródła" @@ -7029,7 +7029,7 @@ msgstr "Źródła" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7043,7 +7043,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7051,7 +7051,7 @@ msgstr "" "{ph0}RFC 6238 przypadki referencyjne{ph1} · {ph2}Dane z testów " "demonstracyjnych{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7076,37 +7076,37 @@ msgstr "" "Sprawdź Aegis Android APK za pomocą REA, Odzyskaj jego sześciocyfrowe " "obliczenie kodu logowania i wypróbuj rekonstrukcję z regulowanym zegarem." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK case study" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Skopiuj przykładowy monit Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Postępuj zgodnie z obliczeniem kodu logowania" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Skopiuj polecenie kontroli APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -7115,26 +7115,26 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Spis treści{ph1} / {ph2}Gabloty{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Studium przypadku * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Znajdź flagę w{ph0}binarny CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7145,17 +7145,17 @@ msgstr "" "równania i znaleźć Dane wejściowe, które sprawiają, że oryginalny program " "drukuje {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "maskowane kwadraty FLAG checker * Easy * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Zobacz oryginalne wyzwanie" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Od binarnej do sprawdzonej odpowiedzi" @@ -7166,7 +7166,7 @@ msgstr "Od binarnej do sprawdzonej odpowiedzi" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7184,7 +7184,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7201,7 +7201,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7213,7 +7213,7 @@ msgstr "" "poprawna!{ph3}{ph4}Skrypt Pythona rozwiązuje równania. REA przechwytuje " "oryginalny program akceptujący wynik.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7221,14 +7221,14 @@ msgstr "" "Wyzwanie jest autorstwa Josepha, opublikowane w oficjalnym repozytorium " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "W tym studium przypadku" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7236,7 +7236,7 @@ msgstr "{ph0}Znajdź kod kontrolny{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7244,7 +7244,7 @@ msgstr "{ph0}Przeczytaj jedną maskę{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7252,7 +7252,7 @@ msgstr "{ph0}Montaż do czytelnego kodu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7260,7 +7260,7 @@ msgstr "{ph0}Rozwiąż równania{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7268,20 +7268,20 @@ msgstr "{ph0}Sprawdź odpowiedź{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Spróbuj sam{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Znajdź kod kontrolny" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7300,17 +7300,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Twój agent kodowania" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Kopiuj" @@ -7321,7 +7321,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7333,7 +7333,7 @@ msgstr "" "flagę. Wyjaśnij, jak działają kontrole, a następnie zweryfikuj odpowiedź za " "pomocą oryginalnego programu.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7342,12 +7342,12 @@ msgstr "" "Przykładowy monit z pobranym wyzwaniem dostępnym lokalnie i analizą " "podłączonego dostawcy programów kodu maszynowego." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Postępuj zgodnie z monitem wejściowym do jego funkcji" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7356,14 +7356,14 @@ msgstr "" "Odwołanie daje agentowi miejsce do zbadania, mimo że oryginalne nazwy " "funkcji pliku wykonywalnego zostały usunięte." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Przeczytaj kontroler i jego dwóch pomocników" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7375,7 +7375,7 @@ msgstr "" "sumuje wybrane kody i porównuje wynik z zapisaną liczbą. Jego {ph0}- bajtowe" " kroki w poprzek {ph1} bajty dają 26 masek." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7384,12 +7384,12 @@ msgstr "" "Są to wybrane wyniki ze świeżej analizy REA. Lokalna ścieżka docelowa jest " "skrócona do wyświetlania; adresy odnoszą się do importowanego obrazu REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Jeden czek ujawnia jedną postać" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7402,13 +7402,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "Siódmy czek wybiera tylko jedną pozycję. {ph0}Otwórz rysunek{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Odczytaj maskę i jej cel z pliku binarnego" @@ -7417,7 +7417,7 @@ msgstr "Odczytaj maskę i jej cel z pliku binarnego" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7429,12 +7429,12 @@ msgstr "" "dlatego {ph1} oznacza -21. Celem jest liczba całkowita little-endian. Razem " "te bajty mówią agentowi, że {ph2}, więc ta postać jest {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Od instrukcji do czytelnego czeku" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7445,7 +7445,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7453,7 +7453,7 @@ msgstr "{ph0}01{ph1} Start" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7461,7 +7461,7 @@ msgstr "{ph0}02{ph1} Wybierz" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7469,7 +7469,7 @@ msgstr "{ph0}03{ph1} Dodaj" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7477,18 +7477,18 @@ msgstr "{ph0}04{ph1} Advance" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Porównaj" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * wybrane oryginalne instrukcje" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Czytelne podsumowanie C * one-check" @@ -7496,7 +7496,7 @@ msgstr "Czytelne podsumowanie C * one-check" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7504,7 +7504,7 @@ msgstr "{ph0}01 * zacznij od zera · {ph1} {ph2} trzyma bieżącą sumę." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7516,7 +7516,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7528,7 +7528,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7542,7 +7542,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7552,7 +7552,7 @@ msgstr "" "{ph0}05 * Porównaj z zapisanym celem.{ph1} Dzwoniący otrzymuje sumę w {ph2}." " Niedopasowanie skacze do {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7562,12 +7562,12 @@ msgstr "" "podsumowaniem wyjaśniającym z opisowymi nazwami i spłaszczoną pętlą 36 " "komórek." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Rozwiąż 26 równań" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7578,13 +7578,13 @@ msgstr "" "dodaje 16 kodów znaków i wymaga łącznie 1441. Nakładające się zaznaczenia " "dają równania, które mały skrypt Pythona może rozwiązać razem." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * solver fragment" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7598,19 +7598,19 @@ msgstr "" "cyframi, podkreśleniami i nawiasami klamrowymi. Pełne pobieranie obejmuje " "wszystkie 26 masek i celów." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Pobierz kompletny solver" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Sprawdź odpowiedź za pomocą oryginalnego programu" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7622,47 +7622,47 @@ msgstr "" "akceptujący rozwiązaną flagę. Zmiana jednego wybranego znaku z {ph0} do " "{ph1} tworzy pierwszą sumę 1440 zamiast 1441, a program ją odrzuca." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Wejście" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Obserwowane wyjście" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Kod wyjścia" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Flaga solvera" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Jedna postać się zmieniła" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Pokaż odzyskaną flagę i przechwycone dane wyjściowe" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * oryginalne wyjście programu" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Kopiuj flagę" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7672,12 +7672,12 @@ msgstr "" "organizatorów metadanych wyzwania, sprawdzonych po rozwiązaniu pliku " "binarnego." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Źródło, tożsamość docelowa i szczegóły analizy" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7688,7 +7688,7 @@ msgstr "" "r.przy użyciu REA 4.1.0 z Ghidra 12.1.4 na Linux x64. Plik binarny to " "pozbawiony x86-64 ELF, 15 248 bajtów." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7711,7 +7711,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7721,12 +7721,12 @@ msgstr "" "{ph0}Porównaj ze źródłem organizatorów{ph1} · {ph2}Metadane wyzwania i " "flaga{ph3} · {ph4} REA dowody uwagi{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Spróbuj sam" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7735,13 +7735,13 @@ msgstr "" "Pobierz oryginalne wyzwanie i solver do jednego folderu. Użyj powyższego " "monitu, aby zbadać sprawę z agentem lub uruchom dołączony skrypt." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * Rozwiąż i uruchom" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7753,7 +7753,7 @@ msgstr "" "potrzeb Python i {ph0}. Uruchomienie oryginalnego pliku wykonywalnego wymaga" " Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Skonfiguruj REA z agentem kodującym" @@ -7774,27 +7774,27 @@ msgstr "" "DownUnderCTF. Znajdź funkcje sprawdzania, wyodrębnij maski i porównaj " "odzyskaną flagę z oryginalnym programem." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF flag-checker case study" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Skopiuj przykładowy monit CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "Równanie maski CTF; przewijaj poziomo na mniejszych ekranach" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7805,42 +7805,42 @@ msgstr "" "Tylko ta komórka przyczynia się do sumy. Wymagany kod znaku to 55, co " "oznacza, że znak to 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Postępuj zgodnie z kontrolą CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Kopiuj zespół CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Kopiuj czytelny czek CTF" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Skopiuj fragment CTF solver" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Skopiuj odzyskaną flagę" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Kopiuj polecenia CTF solver" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -7849,25 +7849,25 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Spis treści{ph1} / {ph2}Gabloty{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Studium przypadku * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Przebudowa DX-Ball {ph0}z jego pliku wykonywalnego." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7876,14 +7876,14 @@ msgstr "" "Celem jest utrzymanie wersji C gry Windows z 1996 roku. REA pomaga agentowi" " sprawdzić oryginalną, jedną funkcję na raz." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7895,14 +7895,14 @@ msgstr "" " rozmówców i odczyty danych; projekt rekonstrukcji implementuje i testuje " "wynik. {ph0}Otwórz rysunek{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "W tym studium przypadku" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7910,7 +7910,7 @@ msgstr "{ph0}Projekt{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7918,7 +7918,7 @@ msgstr "{ph0}Sound pan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7926,23 +7926,23 @@ msgstr "{ph0}Sprawdzanie wyniku{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Kontynuuj pracę{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "utrzymywane funkcje C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "porównania z oryginalnym kodem" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "funkcje z dopasowanymi skompilowanymi bajtami" @@ -7953,7 +7953,7 @@ msgstr "funkcje z dopasowanymi skompilowanymi bajtami" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7963,12 +7963,12 @@ msgstr "" "Punkt kontrolny projektu: 7 października 2026 r. {ph0}Progress ledger{ph1} ·" " {ph2}Pokrycie testu{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Dotychczasowy projekt" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7982,12 +7982,12 @@ msgstr "" "inspekcyjne i bibliotekę analiz. Prace nad grywalną grą kontynuowane są z " "fizyką piłki i wiosła, obsługą zasilania i integracją Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Znalezienie obliczenia lewej / prawej pozycji dźwięku" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8006,17 +8006,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Twój agent kodowania" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Kopiuj" @@ -8027,7 +8027,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8038,7 +8038,7 @@ msgstr "" "pozycjonowanie dźwięku stereo. Wyjaśnij obliczenia i pokaż " "kod.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8049,7 +8049,7 @@ msgstr "" "wykonywalnym. Poniższe dochodzenie pokazuje zapytania REA i dowody stojące " "za odpowiedzią." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8063,7 +8063,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8077,12 +8077,12 @@ msgstr "" "zmiennoprzecinkowe. Ta rozbieżność dała agentowi konkretny powód do dalszego" " dochodzenia." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Pierwszy widok dekompilatora" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8091,18 +8091,18 @@ msgstr "" "Wyjście pokazuje wywołanie konwersji. Czytanie poniższych instrukcji ujawnia" " wejście i podawanie obliczeń, które wywołanie." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Trzy pytania odpowiedział przez REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Odzyskaj brakujące dane wejściowe" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8112,14 +8112,14 @@ msgstr "" "Wynik funkcji zawiera instrukcje obok pseudokodu i rozmówców. Tutaj, {ph0} " "ujawnia dane wejściowe całkowite brakujące w widoku dekompilatora." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Postępuj zgodnie z rozmówcą, aby zrozumieć Dane wejściowe" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8129,12 +8129,12 @@ msgstr "" "REA zidentyfikował tego rozmówcę w pierwszym wyniku. Jego poprzednia skala " "instrukcji {ph0} przez 30; dodanie 20 daje współrzędną ekranu Cegły, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Przeczytaj wartości za adresami pamięci" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8143,12 +8143,12 @@ msgstr "" "Zwracane bajty ustanawiają dwie stałe arytmetyczne i początkową skalę " "przesuwania. Agent ma teraz wartości potrzebne do wyrażenia C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Od ustaleń REA do C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8159,7 +8159,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8167,7 +8167,7 @@ msgstr "{ph0}01{ph1} Wejście" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8175,7 +8175,7 @@ msgstr "{ph0}02{ph1} Pomnóż" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8183,7 +8183,7 @@ msgstr "{ph0}03{ph1} Odejmij" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8191,18 +8191,18 @@ msgstr "{ph0}04{ph1} Skala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Powrót" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Oryginalny x86 * fragment" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Zrekonstruowany C" @@ -8212,7 +8212,7 @@ msgstr "Zrekonstruowany C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8232,7 +8232,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8248,7 +8248,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8266,7 +8266,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8283,7 +8283,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8295,7 +8295,7 @@ msgstr "" "zidentyfikowane w wynikach callee REA. C rzuca wynik do {ph4}; oryginał-" "porównania x86 sprawdzają zwróconą wartość." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8306,23 +8306,23 @@ msgstr "" " lista poniżej obejmuje również interwencyjne sklepy oraz konfigurację i " "czyszczenie funkcji." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Pełne zgromadzenie i dowody potwierdzające" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "Wynik REA * 0x406400 · 0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Co dostarcza rozmówca" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8332,54 +8332,54 @@ msgstr "" "Funkcja brick-hit w {ph0} skaluje współrzędną płytki o 30, dodaje 20, a " "następnie popycha ją przed wywołaniem:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Co odczytują dane" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "Bajt REA odczytuje, dekoduje jako mało - endian podwaja" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Adres" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Wartość" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Używany do" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Pierwsze mnożenie" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Odejmowanie" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} początkowo" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Przechowywana skala patelni" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8395,7 +8395,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8405,12 +8405,12 @@ msgstr "" "{ph0}Utrzymane źródło{ph1} · {ph2}Notatki z dochodzenia i odniesienia do " "dowodów{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Sprawdzanie odzyskanej funkcji" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8419,12 +8419,12 @@ msgstr "" "Odzyskana Funkcja Przechodzi dwa kontrole: jej wartości zwracane są zgodne z" " oryginałem, a skompilowane bajty są zgodne z plikiem wykonywalnym." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3205 przypadków zachowania" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8435,12 +8435,12 @@ msgstr "" "utrzymanym C. obejmują każdą pozycję całkowitą od 0 do 640 w pięciu skalach " "pan: 0, 0,5, 1, 20 i -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 pasujące bajty" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8451,7 +8451,7 @@ msgstr "" "kompilatora pasuje do pełnej funkcji po zastosowaniu sprawdzonych relokacji " "i sprawdzeniu przywoływanych stałych." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8466,18 +8466,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Przeczytaj szczegóły powtórki kompilatora{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Kontynuuj dochodzenie" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8488,7 +8488,7 @@ msgstr "" "wybuchowych i generowania premii: sprawdź odpowiednie funkcje, Odzyskaj ich " "stan i zależności, a następnie porównaj implementację z oryginałem." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8498,7 +8498,7 @@ msgstr "" " instrukcjami konfiguracji projektu DX-Ball i podaj odpowiadający jej " "oryginalny cel. Następnie uruchom:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "W kasie DX-Ball" @@ -8507,7 +8507,7 @@ msgstr "W kasie DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8521,7 +8521,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8537,7 +8537,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8561,14 +8561,14 @@ msgstr "" "Wykonaj rekonstrukcję DX-Ball z analizy binarnej przez REA do utrzymywanych " "testów C, original-x86 i dopasowywania skompilowanych bajtów funkcji." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" "DX-Ball sound-pan investigation; przewijanie poziomo na mniejszych ekranach" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8583,70 +8583,70 @@ msgstr "" "Utrzymane C jest sprawdzane niezależnie od oryginalnego x86 w 3205 " "przypadkach i przez kompilator VC4.0 replay pasujący do 63 bajtów." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Studium przypadku rekonstrukcji DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Skopiuj przykładowy monit" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Postępuj zgodnie z obliczeniem lewej / prawej pozycji dźwięku" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Skopiuj oryginalny fragment zespołu" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Kopiuj dźwięk-funkcja panoramowania" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Skopiuj kompletny montaż dźwięku" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Skopiuj polecenie analizy DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Spis treści{ph1} / Gabloty" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA case studies." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8655,17 +8655,17 @@ msgstr "" "Android, Gry, Electron i wyzwanie CTF, z kodem, liczbami i sprawdzonymi " "wynikami." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * analiza APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Jak authenticator generuje kod logowania" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8676,22 +8676,22 @@ msgstr "" "generowania za pomocą REA, a następnie przesuń zegar demonstracyjny, aby " "zobaczyć, dlaczego kod zmienia się co 30 sekund." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Przeczytaj studium przypadku Androida" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Analiza programów kodu maszynowego" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Rozwiąż sprawdzanie flag CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8702,22 +8702,22 @@ msgstr "" "kontrolne, zamień maski i sumy w równania, a następnie zweryfikuj rozwiązaną" " flagę za pomocą oryginalnego programu." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Przeczytaj studium przypadku CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Natywna * Rekonstrukcja" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball obliczenie lewej / prawej pozycji dźwięku" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8729,22 +8729,22 @@ msgstr "" "do małej funkcji C, sprawdzonej pod kątem oryginalnego zachowania i " "wszystkich 63 skompilowanych bajtów." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Przeczytaj studium przypadku DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * śledzenie funkcji" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Jak Notion kopiuje tekst i HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8756,22 +8756,22 @@ msgstr "" "następnie zobacz, jak mały znacznik HTML utrzymuje bogate dane blokowe " "połączone z kopią." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Przeczytaj studium przypadku Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 dos * rekonstrukcja" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Jak TH04 celuje w pierścień kul" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8782,17 +8782,17 @@ msgstr "" "operacje mnożenia, dzielenia i koordynowania do czytelnego C++, a następnie " "zobacz, jak wytwarzają pierścień skierowany do gracza." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Przeczytaj studium przypadku TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Przewodniki krok po kroku" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8801,7 +8801,7 @@ msgstr "" "Przewodniki przechodzą przez natywne obliczenia, eksport Electron i żądanie " "przeglądarki. Każdy zaczyna się od podpowiedzi i konkretnego celu." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Przeczytaj przewodniki" @@ -8821,12 +8821,12 @@ msgstr "" "Android authenticator , DX-Ball , Notion, TH04 i kontroler flagi " "DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -8835,25 +8835,25 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Spis treści{ph1} / {ph2}Gabloty{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Studium przypadku * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Jak kopie Notion{ph0}tekst i HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8862,12 +8862,12 @@ msgstr "" "Śledź wywołanie schowka z interfejsu API strony Notion, poprzez wstępne i " "główny proces, do programu do zapisywania schowka Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 * JavaScript * REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Mostek wewnątrz pakietu biurkowego Notion" @@ -8879,7 +8879,7 @@ msgstr "Mostek wewnątrz pakietu biurkowego Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8896,7 +8896,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8913,7 +8913,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8930,7 +8930,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8941,13 +8941,13 @@ msgstr "" "dostarczony tekst i HTML.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Jeden kanał łączy dwie strony: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8956,14 +8956,14 @@ msgstr "" "Spakowany kod używa tego samego kanału w procesie ładowania wstępnego i " "głównego. Rozwiązanie opakowań ujawnia wywołania Electron za tymi nazwami." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "W tym studium przypadku" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8971,7 +8971,7 @@ msgstr "{ph0}Podążaj za mostkiem schowka{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8979,19 +8979,19 @@ msgstr "{ph0}Utrzymanie struktury bloku{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Więcej przykładów i źródeł{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Gdzie idzie operacja kopiowania?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9011,17 +9011,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Twój agent kodowania" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Kopiuj" @@ -9032,7 +9032,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9043,7 +9043,7 @@ msgstr "" "tekst i HTML do schowka systemowego. Pokaż kod na każdym " "kroku.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9052,12 +9052,12 @@ msgstr "" "Przykładowy monit z lokalnym pakietem aplikacji Notion Dostępny dla agenta " "kodującego." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA znajduje, gdzie zacząć czytać" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9068,13 +9068,13 @@ msgstr "" "wystawiony na stronę i wywołanie, które wysyła żądanie IPC. Oba ustalenia " "pochodzą z zakresów źródłowych w minified bundle:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA → dwa miejsca do otwarcia" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9087,7 +9087,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9101,12 +9101,12 @@ msgstr "" "agentowi coś precyzyjnego, czego można szukać w głównym pakiecie. Cztery " "fragmenty poniżej pokazują trasę, którą łączy." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Cztery krótkie fragmenty kodu" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9115,13 +9115,13 @@ msgstr "" "Uproszczony z pakowanego JavaScript, z czytelnymi nazwami zmiennych. " "Niepowiązani członkowie są pomijani." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Zacznij od interfejsu API wyświetlanego na stronie" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9131,13 +9131,13 @@ msgstr "" "Ten członek podaje nazwę kanału. Realizacja {ph0} informuje nas, w jaki " "sposób żądanie opuszcza proces strony." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Rozwiąż opakowanie wstępnego obciążenia" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9147,14 +9147,14 @@ msgstr "" "Zwrócona funkcja przekazuje argumenty za pośrednictwem IPC żądania i " "odpowiedzi Electron. Możemy teraz szukać {ph0} po stronie głównej-proces." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Sprawdź, jak zarejestrowany jest odbiorca" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9164,12 +9164,12 @@ msgstr "" "Główny proces wykorzystuje inne opakowanie. Jego {ph0} metoda rejestruje " "{ph1} odbiornik dla tego kanału." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Znajdź zapis i sprawdzenie jego nadawcy" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9180,13 +9180,13 @@ msgstr "" "dostarczone dane do interfejsu API schowka Electron. Kanał i dwa rozwiązane " "opakowania łączą odsłoniętą metodę z tym wywołaniem." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Jak skopiowany blok zachowuje swoją strukturę?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9197,27 +9197,27 @@ msgstr "" "dane bloku lokalnie i umieszcza identyfikator w skopiowanym kodzie HTML, aby" " je połączyć." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Linki HTML do zapisanych danych blokowych" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Przeczytaj identyfikator HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Znajdź ten sam lokalny identyfikator" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Przywróć dane bloku Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9226,7 +9226,7 @@ msgstr "" "Tekst ilustracyjny i ID. Nagrany test modułu przywraca dane bloku, gdy " "identyfikatory są zgodne; Nieaktualny wpis zwraca tylko tekst i HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9235,23 +9235,23 @@ msgstr "" "Po wklejeniu Notion szuka identyfikatora HTML i sprawdza go z zapisaną " "kopią. Pasujące identyfikatory przywracają dane bloku." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Format schowka nagrany z zasobów internetowych buforowanych 13 lipca 2026 r." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Więcej przykładów i źródeł" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Inny przykład: tabele przeceny" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9260,12 +9260,12 @@ msgstr "" "Notion analizuje Markdown na dane blokowe. Ten przykład pokazuje, jak tabela" " staje się nagłówkiem i wierszami danych." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Tabela za pośrednictwem parsera Markdown Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9274,13 +9274,13 @@ msgstr "" "Nagrane wyjście z wyodrębnionego parsera przeceny. Tabela staje się " "wierszami i komórkami." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Inna ścieżka: połączenie offline SQLite" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9293,7 +9293,7 @@ msgstr "" "wiadomości i daje jeden port rendererowi, a drugi procesowi narzędziowemu " "SQLite. Kolejne partie wyciągów i wyniki przemieszczają się przez ten port." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9302,7 +9302,7 @@ msgstr "" "Po tym przekazaniu wyjaśniono, gdzie działa baza danych i dlaczego śledzenie" " tylko początkowego żądania IPC pomija późniejszą rozmowę." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Źródła i jak czytać fragmenty" @@ -9310,7 +9310,7 @@ msgstr "Źródła i jak czytać fragmenty" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9328,7 +9328,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9344,7 +9344,7 @@ msgstr "" "moduły i małe wiązki; ich wyjścia opisują te sondy, a nie przechwyconą sesję" " interfejsu użytkownika pulpitu." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9359,7 +9359,7 @@ msgstr "" "pakiecie." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9377,7 +9377,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9391,7 +9391,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9417,52 +9417,52 @@ msgstr "" "i główny proces, z krótkimi fragmentami kodu i spojrzeniem na jego bogaty " "format schowka." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron case study" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Skopiuj monit o analizę Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Kopia Notion preload fragment" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Kopiuj Notion wywołaj fragment opakowania" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Kopia Notion obsługi wrapper fragment" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Skopiuj fragment odbiornika schowka Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Przywracanie bogatych danych schowka po wklejeniu" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Do góry" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -9471,25 +9471,25 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Spis treści{ph1} / {ph2}Gabloty{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Studium przypadku * Touhou 4: Lotus Land Story" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Rekonstrukcja TH04{ph0}wzory pocisków." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9499,17 +9499,17 @@ msgstr "" "sprawdzić oryginalną funkcję DOS, a następnie postępuj zgodnie z jej " "instrukcjami w czytelnym C++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * 16-bitowy DOS · C++ i montaż" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Zobacz rekonstrukcję TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Od oryginalnych instrukcji do sprawdzonego źródła" @@ -9520,7 +9520,7 @@ msgstr "Od oryginalnych instrukcji do sprawdzonego źródła" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9536,7 +9536,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9554,7 +9554,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9570,7 +9570,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9582,7 +9582,7 @@ msgstr "" "bajtów{ph3}{ph4}Zarejestrowane kontrole kompilatora obejmują kod generowania" " punktorów, który zawiera ten Pomocnik.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9591,14 +9591,14 @@ msgstr "" "REA zwraca oryginalny kod i jego dowody analizy. Projekt TH04 zapewnia " "utrzymywane kontrole źródła i kompilatora." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "W tym studium przypadku" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9606,7 +9606,7 @@ msgstr "{ph0}Pierścień kuli{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9614,7 +9614,7 @@ msgstr "{ph0}Co zwraca REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9622,7 +9622,7 @@ msgstr "{ph0}Montaż do C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9630,18 +9630,18 @@ msgstr "{ph0}Sprawdzanie źródła{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Pełny projekt{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Jak pierścień celuje w gracza" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9660,16 +9660,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Twój agent kodowania" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Kopiuj" @@ -9680,7 +9680,7 @@ msgstr "Kopiuj" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9690,7 +9690,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Użyj REA, aby dowiedzieć się, jak TH04 tworzy pierścień " "pocisków i celuje w gracza. Wyjaśnij obliczenia i pokaż kod.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9700,7 +9700,7 @@ msgstr "" "dostępną lokalnie." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9714,7 +9714,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9724,12 +9724,12 @@ msgstr "" "Ilustracja odzyskanej matematyki kąta dla liczby 16, kierunku gracza 40 i " "obrotu szablonu 0. {ph0}Otwórz rysunek{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Szablon wypalania w odzyskanym źródle" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Atak pierścienia Elly * fragment źródłowy" @@ -9738,7 +9738,7 @@ msgstr "Atak pierścienia Elly * fragment źródłowy" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9748,13 +9748,13 @@ msgstr "" "Linie te wybierają wzór przed trudnością i strojeniem wydajności. " "{ph0}Przeczytaj źródło ataku{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Co zwraca REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9766,12 +9766,12 @@ msgstr "" "REA zwraca instrukcje, pseudokod i odwołania. Trzy części tego wyniku " "wyjaśniają wzór." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Sprawdź obraz DOS przed przeczytaniem jego kodu" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9780,7 +9780,7 @@ msgstr "" "Sprawdzenie wiąże załadowany kod i rekordy relokacji z dostarczonym plikiem " "wykonywalnym. Ścieżka powyżej jest skrócona do wyświetlania." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Przeczytaj mnożenie i dzielenie pierścienia" @@ -9788,7 +9788,7 @@ msgstr "Przeczytaj mnożenie i dzielenie pierścienia" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9800,12 +9800,12 @@ msgstr "" "podział wykorzystuje liczbę odczytaną z {ph1}. Utrzymane nazwy źródłowe tego" " pola {ph2}. Pełna sekwencja pojawia się poniżej." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Znajdź, gdzie wzór obraca się w kierunku gracza" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9818,12 +9818,12 @@ msgstr "" "pierścienia. Nazwy źródeł sprawiają, że adresy te są czytelne; REA pozwala " "agentowi sprawdzić oryginalne operacje za nimi." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Od zestawu do czytelnego C++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9836,7 +9836,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9844,7 +9844,7 @@ msgstr "{ph0}01{ph1} Indeks" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9852,7 +9852,7 @@ msgstr "{ph0}02{ph1} Kosmos" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9860,7 +9860,7 @@ msgstr "{ph0}03{ph1} Aim" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9868,18 +9868,18 @@ msgstr "{ph0}04{ph1} Rotate" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Sklep" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * oryginalne 16-bitowe instrukcje" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Czytelne podsumowanie C++ · aimed-ring" @@ -9887,7 +9887,7 @@ msgstr "Czytelne podsumowanie C++ · aimed-ring" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9901,7 +9901,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9917,7 +9917,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9932,7 +9932,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9947,7 +9947,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9961,7 +9961,7 @@ msgstr "" "odlewanie bez znaku. Otaczające źródło również przekształca ten kąt i " "prędkość w prędkość." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9972,7 +9972,7 @@ msgstr "" "magazyn. Powyższy C++ jest czytelnym podsumowaniem. Poniższe kontrole " "kompilatora dotyczą utrzymywanego źródła w połączonym projekcie." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Przeczytaj utrzymane źródło pierścienia i celu" @@ -9989,7 +9989,7 @@ msgstr "Przeczytaj utrzymane źródło pierścienia i celu" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9999,12 +9999,12 @@ msgstr "" "{ph0}Makro pierścienia{ph1} · {ph2}Cel i źródło prędkości{ph3} · " "{ph4}Reprezentacja kąta{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Sprawdzanie utrzymywanego źródła" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10013,12 +10013,12 @@ msgstr "" "Zarejestrowane kontrole projektu TH04 kompilują kod generowania pocisków, w " "tym ten pomocnik, z przypiętym łańcuchem narzędzi Turbo C++ 4.0 J." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2139 pasujących bajtów" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10027,12 +10027,12 @@ msgstr "" "Skompilowany kod generowania punktorów pasuje do 2139-bajtowej sekcji " "oryginalnego pliku wykonywalnego." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Dwie czyste Kompilacje" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10045,7 +10045,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10053,59 +10053,59 @@ msgstr "" "Zarejestrowany 3 października 2026 roku. {ph0}Przeczytaj kontrole " "kompilatora{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Tożsamość celu i zakres analizy" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Oryginalny cel" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156 258 bajtów, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Wpis pomocnika" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} w załadowanym obrazie REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Oryginalny plik offset" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, zwrócony przez {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Rejestrowana Kontrola kodu" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 października 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10115,7 +10115,7 @@ msgstr "" "pomocnika. Porównują również wkład Mapy i nakładające się relokacje." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10130,7 +10130,7 @@ msgstr "" "powyżej znajdują się w tych zgłaszanych zakresach." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10147,7 +10147,7 @@ msgstr "" "repozytorium, a niezależne pochodzenie nieskazitelnego zrzutu jest nadal " "otwarte." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10158,12 +10158,12 @@ msgstr "" "sprzętowe PC-98 mają oddzielne kontrole środowiska wykonawczego w projekcie " "rekonstrukcji." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Pełna rekonstrukcja TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10176,7 +10176,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10188,7 +10188,7 @@ msgstr "{ph0}Poznaj repozytorium TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10204,7 +10204,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10220,7 +10220,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10246,22 +10246,22 @@ msgstr "" " montażem i odzyskanym C++, aby zobaczyć, jak pierścień pocisków jest " "rozmieszczony i wycelowany w gracza." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 bullet-pattern case study" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Skopiuj przykładowy monit TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10269,7 +10269,7 @@ msgstr "" "TH04 stałe i wycelowane pierścienie pocisku; przewijaj poziomo na mniejszych" " ekranach" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10282,27 +10282,27 @@ msgstr "" "wartość; podświetlona pierwsza wypunktowanie wskazuje na gracza. Oba " "zachowują odstęp 16 jednostek kąta lub 22,5 stopnia." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Kopiuj szablon TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Postępuj zgodnie z obliczeniem pierścienia celowanego TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Skopiuj fragment zespołu TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Kopiuj czytelne wyliczenie pierścienia" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Do góry" @@ -10789,597 +10789,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Ten sam odstęp: 256 ÷ 16 = 16 jednostek kąta = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Przykłady" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Pierwsze kroki" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Poradniki" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Kod źródłowy" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Licencja MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Dołącz do społeczności" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Obserwuj na X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * wybrane źródło skryptu" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Kod źródłowy" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Oczekiwany formatowanie wyjście" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Instrukcje" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Dzwoniący" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Stałe" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Funkcja C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Przycisk" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "Preload API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Plik CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Twoje kliknięcie" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Przechwycone żądanie" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Skrypt eksportu" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA wynik * podsumowanie.fragment ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA Instrukcja fragment * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA fragment dzwoniącego * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Wyniki bajtów REA * interpretowane jako podwaja się little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Odzyskany fragment C ·" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Gabloty →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Wybrane ustawienia z kontrolowanego skryptu" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Czytelne podsumowanie % obsługi" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * wybrane oryginalne instrukcje" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Identyfikatory operatora * Źródło Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → agent * wybrane wyniki" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → agent * metody i rozmówcy" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * wybrana zdekompilowana Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Czytelne podsumowanie * interpretacja agenta" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, kompletne ciało" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Pobierz Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Pobierz Android analysis provider" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → agent * wybrane wyniki" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agent * wybrane instrukcje" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agent → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → agent * siódme wpisy" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Oryginalny plik wykonywalny * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Pobierz oryginalne wyzwanie" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Pobierz solver" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Wynik REA * fragment pseudokodu" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agent * fragment instrukcji" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → agent * fragment dzwoniącego" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agent → REA * dwa {ph0} wnioski" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Wyniki bajtów REA * dekodowane jako podwójne" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Zacznij od własnego celu" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Generowanie kodu" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Odzyskana reguła" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Regulowany zegar" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binarny" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Sprawdzanie kodu" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Równania" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Zgadza się!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Plik wykonywalny" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Odzyskane C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Walidacja" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Pakowana aplikacja" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Exposed API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Owijarki IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Schowek" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Oryginalny kod DOS" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA instrukcje" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Obliczanie kąta" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Bullet ring" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Exposed page API" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Renderer IPC call" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Wysłane do schowka systemowego" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Zapisane lokalnie przez Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Wejście Markdown" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Ustrukturyzowane wyjście parsera * fragment" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analizuj własną aplikację" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → agent * wybrane pola" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agent * fragment instrukcji" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Ta sama funkcja wynik * aim fragment" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Odpowiadający utrzymywany C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Pierścień makro * TH04 oddział, fragment" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Kąt i prędkość * fragment źródła" @@ -11413,7 +11413,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11430,7 +11430,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11451,7 +11451,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11472,7 +11472,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11491,7 +11491,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11504,14 +11504,14 @@ msgstr "" "sprawdź instalację.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Rekonstrukcja * {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11522,7 +11522,7 @@ msgstr "" "przejrzyj proponowane zmiany." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11531,7 +11531,7 @@ msgstr "Dostarczony przykład * {ph0} i npm * Twój agent kodujący" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11550,7 +11550,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11566,7 +11566,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11585,7 +11585,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11596,7 +11596,7 @@ msgstr "" "{ph7} i zapisuje plik.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11611,7 +11611,7 @@ msgstr "{ph0} * linie 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11624,7 +11624,7 @@ msgstr "" "prognozę i rzeczywistą wydajność.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11636,17 +11636,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Będziesz potrzebować {ph0} 22 (22.23.4+), 24 (24.22.1+) lub 26+ (>=26.12.1). npm pochodzi z" -" {ph1}." +"Będziesz potrzebować {ph0} 22 (22.23.4+), 24 (24.22.1+) lub 26+ (>=26.12.1)." +" npm pochodzi z {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11654,20 +11655,20 @@ msgstr "Nie masz {ph0}, czy nie jesteś pewien?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Jeśli {ph0} drukuje v22.23.4+, v24.22.1+ lub v26.12.1+, jesteś gotowy. Jeśli " -"wydrukuje starszą wersję lub \"nie rozpoznano\" / \"nie znaleziono " +"Jeśli {ph0} drukuje v22.23.4+, v24.22.1+ lub v26.12.1+, jesteś gotowy. Jeśli" +" wydrukuje starszą wersję lub \"nie rozpoznano\" / \"nie znaleziono " "polecenia\", zainstaluj {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11681,7 +11682,7 @@ msgstr "{ph0} * przykładowy fragment źródła" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11692,9 +11693,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11702,7 +11703,7 @@ msgstr "{ph0} * przykładowe źródło" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11717,7 +11718,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11734,7 +11735,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11745,7 +11746,7 @@ msgstr "" "daje 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11759,7 +11760,7 @@ msgstr "REA * załadowany {ph0} * wybrane linie" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11778,7 +11779,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11791,28 +11792,28 @@ msgstr "" "małe demo, w którym mogę zmieniać czas.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view / {ph0} * członek API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view / {ph0} * IPC helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "główna/{ph0} * Pomocnik obsługi" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11831,7 +11832,7 @@ msgstr "Przełącz na ciemny motyw" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11846,18 +11847,18 @@ msgstr "" "Everywhere, aby analizować zapisany ruch z agentem." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Modele specjalistyczne{ph0}Esej" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Czy inżynieria odwrotna potrzebuje większego modelu?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11866,12 +11867,12 @@ msgstr "" "Co rekonstrukcja Touhou mówi o modelach ogólnych, modelach specjalistycznych" " i uczeniu się na podstawie informacji zwrotnych z kompilatora." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Przez N0zoM1z0 · 13 października 2026 r" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Przejdź do treści" @@ -11880,38 +11881,38 @@ msgstr "Przejdź do treści" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}Strona główna{ph1} / {ph2}Blog{ph3} / Modele i inżynieria odwrotna" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Esej" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Czy inżynieria odwrotna potrzebuje większego modelu?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Przez N0zoM1z0 · 13 października 2026 r" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Najważniejsze" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11924,7 +11925,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11938,7 +11939,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11951,7 +11952,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11964,7 +11965,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11975,14 +11976,14 @@ msgstr "" "kosztów.{ph1} Właśnie to chcę zmierzyć w przypadku pełnego przepływu pracy " "agenta AI." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "W tym artykule" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11990,7 +11991,7 @@ msgstr "{ph0}Co zmieniły silniejsze modele{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11998,7 +11999,7 @@ msgstr "{ph0}Dlaczego się specjalizować?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12006,7 +12007,7 @@ msgstr "{ph0}Gdzie należy przechowywać to doświadczenie?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12014,7 +12015,7 @@ msgstr "{ph0}Nauka kolejnego przydatnego eksperymentu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12022,7 +12023,7 @@ msgstr "{ph0}Inżynieria odwrotna i uczenie się przez wzmacnianie{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12030,7 +12031,7 @@ msgstr "{ph0}Gdy osoba sprawdzająca myli się{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12038,18 +12039,18 @@ msgstr "{ph0}Porównanie warte przeprowadzenia{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Jakiego rodzaju agenta AI to sugeruje?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Co zmieniły silniejsze modele" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12064,7 +12065,7 @@ msgstr "" "Ponieważ zmieniałem modele, repozytoria prowadziły rejestr tego, co udało " "się odzyskać w każdej sesji." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12078,12 +12079,12 @@ msgstr "" "model odniesie sukces tam, gdzie wcześniejsze prace utknęły w martwym " "punkcie, zmiany źródłowe pokazują, co umożliwiło ten postęp." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Zmienne tymczasowe wymagały nakładających się okresów istnienia" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12104,7 +12105,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12118,7 +12119,7 @@ msgstr "" "zbadał problem{ph3}, zaproponował użyteczną hipotezę dotyczącą czasu życia " "tych zmiennych tymczasowych." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12135,7 +12136,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12150,7 +12151,7 @@ msgstr "" "{ph0}czysta rekompilacja ze źródła potwierdziła, że ​​pełna funkcja jest " "zgodna{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12162,7 +12163,7 @@ msgstr "" "kierunek. Informacje zwrotne od kompilatora pomogły mu udoskonalić tę " "hipotezę w celu uzyskania pasującego układu kodu źródłowego." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Inny wykres przepływu sterowania" @@ -12171,7 +12172,7 @@ msgstr "Inny wykres przepływu sterowania" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12193,7 +12194,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12211,7 +12212,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12225,7 +12226,7 @@ msgstr "" "możliwości modelu ogólnego: agent może przez długi czas testować lokalne " "odmiany, zanim znajdzie lepszy sposób na wyrażenie otaczającej pracy." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12240,7 +12241,7 @@ msgstr "" "porównanie pomogłoby oddzielić wpływ modelu od odziedziczonego przez niego " "doświadczenia." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12255,13 +12256,13 @@ msgstr "" "znanym kompilatorem. Ile z tego wymaga szerokiej zdolności rozumowania? Ile " "model może się nauczyć, wielokrotnie pracując z tym kompilatorem i kodem?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" "Dlaczego wyspecjalizowany model sztucznej inteligencji może się sprawdzić?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12276,7 +12277,7 @@ msgstr "" "przydatnymi przykładami: powiązane pętle i układy pomocnicze dostarczyły " "hipotez w różnych grach." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12296,7 +12297,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12312,7 +12313,7 @@ msgstr "" "wzorzec nazewnictwa, który wpłynął na wybór kompilatora. Sugerowało to " "bardziej obiecującą hipotezę dotyczącą {ph2}rekonstrukcji {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12322,7 +12323,7 @@ msgstr "" "wymagany układ bez dodawania pamięci. Pełna funkcja została wówczas " "dopasowana." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12335,7 +12336,7 @@ msgstr "" "takich przypadków i dowiedzieć się, które odmiany kodu źródłowego warto " "przetestować w pierwszej kolejności." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12354,7 +12355,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12374,14 +12375,14 @@ msgstr "" " oczekiwania, ale każdy cel mówi nam, czy ma to zastosowanie. Aby rozróżnić " "te konteksty, potrzebny byłby wyspecjalizowany model." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Gdzie należy przechowywać to doświadczenie?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12397,7 +12398,7 @@ msgstr "" "projektu. Pamięć ta obejmuje lekcje kompilatora wraz ze źródłem i nieudanymi" " eksperymentami, które uczyniły je użytecznymi." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12414,7 +12415,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12433,7 +12434,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12450,7 +12451,7 @@ msgstr "" "wynik przy następnej próbie. Znajomość odpowiedniego wzorca to dopiero " "początek tego procesu." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12464,12 +12465,12 @@ msgstr "" "lepsze generowanie kandydatów, lepsze decyzje po otrzymaniu informacji " "zwrotnej lub jedno i drugie." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Nauka kolejnego przydatnego eksperymentu" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12483,7 +12484,7 @@ msgstr "" "wynik może zawęzić pozostałe możliwości i zasugerować bardziej przydatny " "następny eksperyment." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12495,32 +12496,32 @@ msgstr "" "układ, który zadziałał, ale trasa do tego źródła zawiera więcej informacji. " "Każdy z poniższych eksperymentów pomógł określić, co należy jeszcze zmienić." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Eksperyment" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Czego nauczył nas jego wynik" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Wypróbuj inny sposób kopiowania wyników" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Kod kopiowania zmienia się, ale funkcja nadal jest inna." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Użyj bezpośrednio zwróconych wartości" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12528,12 +12529,12 @@ msgstr "" "Kopiowanie odbywa się według oryginalnego wzorca, ale przechowywanie " "tymczasowe nadal się różni." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Zachowaj ważność wszystkich zmiennych tymczasowych w tym samym czasie" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12542,17 +12543,17 @@ msgstr "" "Dostają oddzielną pamięć, ale jedna z nich nadal pokrywa się z wartością " "używaną później do sprawdzania kolizji." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Zachowaj wartość kontroli kolizji oddzielnie" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "Czysta rekompilacja ze źródła potwierdza pełne dopasowanie." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12561,7 +12562,7 @@ msgstr "" "Wybrane eksperymenty z powyższej rekonstrukcji funkcji ataku, pogrupowane " "według tego, czego nas nauczyły." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12577,7 +12578,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12593,7 +12594,7 @@ msgstr "" "ponownego przejrzenia reprezentacji źródłowej lub ponownego sprawdzenia " "dowodów." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12606,14 +12607,14 @@ msgstr "" "kompilowania kolejnej edycji. Sztywna sekwencja wymaganych przeróbek usunie " "ten wybór wraz z częścią zachowań, których ma się nauczyć model." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" "Dlaczego inżynieria odwrotna jest interesująca w uczeniu się przez " "wzmacnianie" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12626,7 +12627,7 @@ msgstr "" "kodem źródłowym zapewnia szybką, powtarzalną informację zwrotną. Agent może " "skompilować kandydata, sprawdzić różnice i wybrać następny krok." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12643,7 +12644,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12666,7 +12667,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12683,7 +12684,7 @@ msgstr "" "obsługiwał obliczenia zmiennoprzecinkowe{ph1}. Zanim agent mógł przetestować" " użyteczną korektę, musiał ustalić, co należy zmierzyć." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12695,12 +12696,12 @@ msgstr "" "sprawdzić, jak daleko może zajść w tym przypadku wyuczona polityka " "wyszukiwania." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Gdy osoba sprawdzająca myli się" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12712,7 +12713,7 @@ msgstr "" "Nawet powtarzalną odpowiedź trzeba rozumieć w granicach tego, co " "rzeczywiście sprawdza." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12735,7 +12736,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12750,7 +12751,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12767,7 +12768,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12784,7 +12785,7 @@ msgstr "" "dopasowanie instrukcji należy rozumieć w kategoriach bajtów i danych, które " "sprawdza." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12803,7 +12804,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12816,12 +12817,12 @@ msgstr "" "otrzymywaną informację zwrotną, tym ważniejsze jest zrozumienie tej " "informacji." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Porównanie warte przeprowadzenia" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12837,7 +12838,7 @@ msgstr "" "nadzorowana specjalizacja i wersja przeszkolona przez RL pozwolą nam " "sprawdzić, co dodaje szkolenie." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12851,7 +12852,7 @@ msgstr "" "Powtarzane próby pomogłyby odróżnić niezawodną strategię wyszukiwania od " "potencjalnego rozwiązania, które odniosło sukces przez przypadek." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12867,7 +12868,7 @@ msgstr "" "ogólnego przeznaczenia wykonuje większość pracy potrzebnej do jego " "osiągnięcia. Zmierzenie ich osobno ujawniłoby ten podział pracy." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12882,7 +12883,7 @@ msgstr "" "powiązanego kodu źródłowego i trzymał ich zweryfikowane odpowiedzi poza " "danymi szkoleniowymi i biblioteką pobierania." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12897,7 +12898,7 @@ msgstr "" "czasu i kosztów, w tym kompilacji, pokazałby, czy ta jakość zapewnia " "efektywny przepływ pracy. Koszty szkoleń należy mierzyć osobno." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12915,7 +12916,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12937,7 +12938,7 @@ msgstr "" "diagnostyka może pomóc w kolejnym eksperymencie, ale każdą nagrodę za " "„zbliżenie się” porównałbym z pełną kontrolą akceptacji." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12953,12 +12954,12 @@ msgstr "" "Odpowiedzi pomogłyby nam zdecydować, gdzie każdy rodzaj modelu jest " "najbardziej przydatny." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Jakiego rodzaju agenta AI to sugeruje?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12973,7 +12974,7 @@ msgstr "" "wyniki przestają mieć sens, agent ogólny może wrócić do danych celu albo " "zbadać sam pomiar." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12984,7 +12985,7 @@ msgstr "" " w miarę rozwoju dochodzenia. Agent zachowuje swobodę zmiany kierunku, co " "umożliwiło wcześniejsze przełomy." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12998,7 +12999,7 @@ msgstr "" " pytanie, które decyzje wymagają szerokiego osądu, a które można poprawić " "dzięki wielokrotnemu doświadczeniu z konkretnym rzemiosłem." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13015,7 +13016,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13025,12 +13026,12 @@ msgstr "" "{ph0}Repozytoria umożliwiają nam przetestowanie pytania.{ph1} Chciałbym użyć" " tego rekordu do stworzenia porównania i zobaczenia, czego się dowiemy." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Dowody i modelowe przypisanie" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13044,7 +13045,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13070,7 +13071,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13095,7 +13096,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13120,7 +13121,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13147,7 +13148,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13159,7 +13160,7 @@ msgstr "" "zmiennoprzecinkowej{ph3}, {ph4}TH08 badanie numeryczne{ph5} i {ph6}TH09 " "rekonstrukcja z zachowaniem powtórki{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13185,22 +13186,22 @@ msgstr "" "specjalistycznych i nauce proponowania lepszych hipotez na podstawie " "informacji zwrotnych od kompilatora." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Na tej stronie" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modele i esej o inżynierii odwrotnej" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Wybrane eksperymenty rekonstrukcyjne" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Do góry" @@ -13209,7 +13210,7 @@ msgstr "Do góry" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13221,68 +13222,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Przykłady{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA case studies." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * analiza APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Jak authenticator generuje kod logowania" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Przeczytaj studium przypadku Androida" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * śledzenie funkcji" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Jak Notion kopiuje tekst i HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Przeczytaj studium przypadku Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Natywna * Rekonstrukcja" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball obliczenie lewej / prawej pozycji dźwięku" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Przeczytaj studium przypadku DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Opcje konfiguracji" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13293,7 +13294,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13305,7 +13306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13313,7 +13314,7 @@ msgstr "{ph0}1. Przygotuj komputer{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13321,7 +13322,7 @@ msgstr "{ph0}2. Wybierz agenta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13329,7 +13330,7 @@ msgstr "{ph0}3. Połącz REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13337,18 +13338,18 @@ msgstr "{ph0}4. Spróbuj zbadać aplikację{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Inne cele i narzędzia analizy{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Przygotuj komputer" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13357,7 +13358,7 @@ msgstr "" "Użyj komputera, na którym znajdują się badane pliki. Lokalny agent " "programistyczny może je czytać i uruchamiać narzędzia za Ciebie." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13368,7 +13369,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13379,7 +13380,7 @@ msgstr "Jeśli winget jest niedostępny, {ph0}pobierz instalator Node.js{ph1}." #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13390,17 +13391,17 @@ msgstr "" " scripts is disabled on this system\"{ph1}, użyj zamiast tego {ph3}. W " "przypadku npm użyj {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Utwórz folder roboczy dla agenta" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "W terminalu utwórz folder na ćwiczenie, a następnie przejdź do niego:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13409,12 +13410,12 @@ msgstr "" "Zostaw ten terminal otwarty do następnego kroku. Jeśli masz już folder " "roboczy, otwórz go zamiast nowego." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Wybierz agenta programistycznego" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13424,12 +13425,12 @@ msgstr "" "programów. Wybierz jedną aplikację kliencką poniżej; jeśli jeszcze jej nie " "znasz, otwórz instrukcje." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · użyj swojego konta ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13440,39 +13441,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Instalacja Codex i logowanie{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf lub VS Code · użyj edytora" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Zainstaluj edytor dla swojego systemu operacyjnego i zaloguj się." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Otwórz folder rea-work utworzony w kroku 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · użyj swojego konta Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Zainstaluj za pomocą komendy dla swojego systemu operacyjnego:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13486,13 +13487,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Instalacja Claude Code i opcje konta{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · użyj czatu w aplikacji desktopowej" @@ -13502,7 +13503,7 @@ msgstr "Claude Desktop · użyj czatu w aplikacji desktopowej" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13514,7 +13515,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13526,19 +13527,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Instalacja OpenCode i konfiguracja modelu{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Wszystkie obsługiwane klienty i identyfikatory konfiguracji" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13548,12 +13549,12 @@ msgstr "" "Wydanie 6.4.0 w npm obsługuje klienty wymienione poniżej. Aby wskazać " "konkretny klient, użyj jego identyfikatora z {ph0}." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Klient" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Identyfikator konfiguracji" @@ -13563,7 +13564,7 @@ msgstr "Identyfikator konfiguracji" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13582,7 +13583,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13592,13 +13593,13 @@ msgstr "" "{ph0}Konfiguracja klientów i rozwiązywanie problemów{ph1} · {ph2}Dostępność " "w wydaniach{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · połącz na komputerze, na którym działa" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13611,29 +13612,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Instrukcje połączenia Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Połącz REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Wklej to polecenie do swojego agenta programistycznego:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Dla konkretnego klienta dodaj jego identyfikator konfiguracji:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13645,7 +13646,7 @@ msgstr "" " Na liście klientów REA poruszaj się strzałkami, zaznacz swój klient " "klawiszem Space i naciśnij Enter, aby kontynuować." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13654,7 +13655,7 @@ msgstr "" "MCP to połączenie, przez które agent wywołuje REA. Umiejętność daje mu " "sposób postępowania przy badaniu programów." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13665,7 +13666,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13675,21 +13676,21 @@ msgstr "" "Zastąp {ph0} identyfikatorem konfiguracji swojego klienta. Poprawna kontrola" " zwraca {ph1}. Następnie poproś agenta:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Sprawdź, czy REA jest połączone, i pokaż, z jakich narzędzi REA możesz " "korzystać." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Spróbuj pierwszego badania" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13701,7 +13702,7 @@ msgstr "" "notatki{ph1} przycisk. Twój agent może sprawdzić swój kod bez instalowania " "lub uruchamiania Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Twój agent programistyczny" @@ -13715,7 +13716,7 @@ msgstr "Twój agent programistyczny" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13729,7 +13730,7 @@ msgstr "" "Pokaż gdzie {ph4} jest napisane, które pola zawiera, oraz odpowiednie pliki " "i wiersze.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Poszukaj krótkiego wyjaśnienia z odniesieniami do plików i linii:" @@ -13738,7 +13739,7 @@ msgstr "Poszukaj krótkiego wyjaśnienia z odniesieniami do plików i linii:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13751,13 +13752,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Sprawdź przewidywanie w ćwiczeniu krok po kroku →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Pobierz przykład samodzielnie lub użyj własnej aplikacji" @@ -13765,14 +13766,14 @@ msgstr "Pobierz przykład samodzielnie lub użyj własnej aplikacji" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Pobierz przykład ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13783,7 +13784,7 @@ msgstr "" "Daj mu drogę do {ph0} folder i to samo pytanie o eksport." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13793,12 +13794,12 @@ msgstr "" "Użyj REA do zbadania aplikacji pod ścieżką {ph0}. Znajdź, jak eksportuje " "dane, i pokaż odpowiednie pliki oraz linie." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Zbadaj inny rodzaj oprogramowania" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13807,13 +13808,13 @@ msgstr "" "Wybierz sekcję dla swojego celu. Dostawca analizy to lokalne narzędzie, " "którego REA używa do badania tego rodzaju oprogramowania." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" "Pliki wykonywalne i biblioteki kodu maszynowego · Hopper, Ghidra lub IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13822,47 +13823,47 @@ msgstr "" "Zainstaluj jedno narzędzie analizy na komputerze, na którym działa REA. Host" " to Twój system operacyjny, a cel to program, który chcesz zbadać." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Dostawca analizy" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Niedostępne" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Obsługiwane dystrybucje" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · eksperymentalnie" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Zweryfikowane profile" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Zweryfikowany profil bez interfejsu graficznego" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Zobacz przewodnik dostawcy" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · pozwól konfiguratorowi go zainstalować lub połączyć" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13874,7 +13875,7 @@ msgstr "" "demonstracyjny lub aktywuj licencję. W Linux konfigurator przygotowuje " "obsługiwaną wersję demonstracyjną i osobny ekran dla niej." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13884,7 +13885,7 @@ msgstr "" "Omarchy. Hopper to oprogramowanie komercyjne; ograniczenia wersji " "demonstracyjnej określa producent." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13898,18 +13899,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Konfiguracja Hopper i rozwiązywanie problemów{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · zainstaluj bezpłatne narzędzie analizy i Javę" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13919,7 +13920,7 @@ msgstr "" " pakiet pasujący do architektury Twojego komputera." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13932,7 +13933,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13947,7 +13948,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13955,7 +13956,7 @@ msgstr "{ph0}Pobierz JDK{ph1} · {ph2}Pobierz Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13965,7 +13966,7 @@ msgstr "" "Sprawdź Javę. Pierwsza komenda wyświetla {ph0}; użyj tego folderu jako " "{ph1}. Druga potwierdza, że kompilator jest zainstalowany:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13983,7 +13984,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13993,12 +13994,12 @@ msgstr "" "{ph0}Konfiguracja Ghidra i wymagania architektury{ph1} · {ph2}Przewodnik po " "Ghidra w Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · połącz istniejącą instalację" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14010,7 +14011,7 @@ msgstr "" "jest oryginalny plik binarny, lub z nadzorcą bez interfejsu graficznego, " "który otwiera osobną bazę danych." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14022,7 +14023,7 @@ msgstr "" "macOS arm64 z IDA Professional 9.1. Opcjonalny natywny most do GUI ma własne" " wymagania dotyczące wersji i platformy." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14034,14 +14035,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Profile IDA, przykłady rejestracji i zweryfikowane platformy{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14052,18 +14053,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Przejdź przez przykład analizy kodu maszynowego{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Witryny, Android, .NET, firmware i inne cele" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14072,110 +14073,110 @@ msgstr "" "Otwórz przewodnik dla swojego celu. Każdy podaje dodatkowe narzędzia, " "obsługiwane hosty i pierwszą komendę." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Cel" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Narzędzia do przygotowania" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Przewodnik" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Otwórz przewodnik{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Witryna" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / pakiety" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Urządzenie Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Zasoby Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Projekt JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / awaria Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Sygnały logiczne" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Zachowanie procesu" @@ -14191,7 +14192,7 @@ msgstr "Zachowanie procesu" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14201,18 +14202,18 @@ msgstr "" "{ph0}Przewodnik po Flutter{ph1} · {ph2}Pakiety i zasoby{ph3} · {ph4}Bajtkod " "EVM{ph5} · {ph6}Wszystkie przewodniki badania{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Używaj REA z terminala" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Komendy CLI, instalacja globalna i curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14222,7 +14223,7 @@ msgstr "" "Zastąp {ph0} nazwą lub adresem funkcji z listy funkcji celu. Najpierw trzeba" " skonfigurować Ghidra." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14231,7 +14232,7 @@ msgstr "" "W macOS lub Linux po przygotowaniu Node.js możesz również użyć instalatora " "przez curl:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14241,12 +14242,12 @@ msgstr "" " W edytorach włącz REA w ustawieniach MCP i zezwól na jego narzędzia w " "czacie agenta." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL i ścieżki ze spacjami" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14258,17 +14259,17 @@ msgstr "" " w nim ścieżek Linux. Dostawcy bez interfejsu graficznego działają na tym " "samym hoście co REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Komenda konfiguracji dla Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Zaktualizuj lub usuń REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14279,7 +14280,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14293,52 +14294,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Szczegóły aktualizacji i usuwania{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Kopiuj komendę konfiguracji REA dla Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Kopiuj komendę" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Skopiuj uwagi dochodzenie prompt" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14348,12 +14349,12 @@ msgstr "" "Jeśli brakuje curl lub unzip, najpierw je zainstaluj. W Debian lub Ubuntu " "wykonaj {ph0}; w innych dystrybucjach użyj swojego menedżera pakietów." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Zamknij terminal, otwórz go ponownie, a następnie wykonaj:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14368,7 +14369,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14378,19 +14379,19 @@ msgstr "" "{ph0}Konfiguracja Cursor{ph1} · {ph2}Konfiguracja Windsurf / Devin " "Desktop{ph3} · {ph4}Konfiguracja VS Code i Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · wybierz model AI" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Przygotuj plik rejestracji IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14406,7 +14407,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14419,7 +14420,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14432,22 +14433,22 @@ msgstr "" " binarny w IDA i uruchom wtyczkę po stronie IDA, zanim poprosisz REA o jego " "zbadanie." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Baza danych SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bajtkod EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Zainstaluj Codex za pomocą komendy dla swojego systemu operacyjnego:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14458,7 +14459,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14469,12 +14470,12 @@ msgstr "" "(.pkg){ph1}, otwórz go i postępuj zgodnie z instrukcjami. Następnie ponownie" " otwórz Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Korzystasz już z Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14486,7 +14487,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14496,7 +14497,7 @@ msgstr "" "Przejrzyj i zatwierdź plan, ponownie otwórz Claude, a następnie {ph0}sprawdź" " połączenie w kroku 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14507,12 +14508,12 @@ msgstr "" "instalacji w macOS lub Linux arm64 przed kontynuowaniem skompiluj natywny " "dekompilator dla swojego komputera." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Skompiluj natywny dekompilator Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14525,7 +14526,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14535,7 +14536,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14545,19 +14546,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · instrukcje natywnej kompilacji{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Następnie sprawdź Ghidra i zapisz jego ścieżki dla swojego klienta:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14565,13 +14566,13 @@ msgstr "Dlaczego {ph0} daje 220 w Kalkulatorze?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Jak to działa{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14580,22 +14581,22 @@ msgstr "" "Zapytaj swojego agenta programistycznego o aplikację, grę lub stronę. REA " "daje mu narzędzia do zbadania kodu stojącego za odpowiedzią." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Pierwsze kroki" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Zobacz przykład ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Jak to działa" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14606,47 +14607,47 @@ msgstr "" "badanie samego programu. Z REA twój agent może śledzić kod, wyjaśnić funkcję" " i pomóc ją odtworzyć." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Zapytaj o jedną funkcję" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Przekaż agentowi program lub stronę i zadaj pytanie." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Zbadaj program" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA zwraca kod, odwołania i obserwacje z działania programu." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Zrozum, a potem wypróbuj zmianę" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "Agent wykorzystuje wyniki, aby wyjaśnić lub odtworzyć funkcję." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Śledź instrukcje krok po kroku" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Zadaj agentowi to samo pytanie" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14655,7 +14656,7 @@ msgstr "" "Zacznij od 6. Dodaj 0.001 każda aktualizacja bez kolizji, podczas gdy " "prędkość jest poniżej 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14663,7 +14664,7 @@ msgstr "" "Poznaj funkcję wydanej aplikacji lub gry wraz z kodem i sprawdzonymi " "wynikami." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14672,7 +14673,7 @@ msgstr "" "Prześledź sześciocyfrowy kod logowania Aegis w wydanym APK, a potem przesuń " "zegar demonstracyjny, aby zobaczyć, dlaczego kod zmienia się co 30 sekund." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14681,7 +14682,7 @@ msgstr "" "Prześledź JavaScript w pakiecie Notion aż do schowka systemowego i zobacz, " "jak kopiowanie zachowuje bogate dane bloków." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14690,12 +14691,12 @@ msgstr "" "Odtwórz, jak pozycja piłki zmienia się w dźwięk z lewej lub prawej strony w " "grze Windows z 1996 roku." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Wybierz cel." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14706,7 +14707,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14724,7 +14725,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -14732,7 +14733,7 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Przykładowy monit * strona " "internetowa" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Tak, ten." @@ -14745,7 +14746,7 @@ msgstr "Tak, ten." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14760,7 +14761,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14774,18 +14775,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Zobacz studium przypadku DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Skopiuj monit projektu witryny" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Skopiuj monit o rekonstrukcję gry" @@ -14797,7 +14798,7 @@ msgstr "Skopiuj monit o rekonstrukcję gry" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14809,7 +14810,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14817,23 +14818,23 @@ msgstr "{ph0}Studia przypadków →{ph1} — badania i interaktywne demonstracje #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — metody i notatki o odtwarzaniu oprogramowania." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Zobacz całe badanie Kalkulatora" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Wypróbuj większy projekt" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14842,7 +14843,7 @@ msgstr "" "Wypróbujmy dwa przykłady: zmieńmy prędkość gry, a potem odtwórzmy przycisk %" " Kalkulatora." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14851,7 +14852,7 @@ msgstr "" "Gra przyspiesza w miarę biegu. Aby odtworzyć ją z regulacją prędkości, " "najpierw musimy ustalić, jak zmienia się prędkość." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Zapytaj o prędkość" @@ -14864,7 +14865,7 @@ msgstr "1. Zapytaj o prędkość" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14873,12 +14874,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Przykładowe pytanie · Gra z " "dinozaurem" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Znajdź regułę prędkości" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14887,12 +14888,12 @@ msgstr "" "REA pozwala agentowi czytać kod działającej gry. Prędkość zaczyna się od 6 i" " rośnie nieco przy każdej aktualizacji, dopóki jest mniejsza niż 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Zagraj w odtworzoną grę" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14901,7 +14902,7 @@ msgstr "" "Odtworzyliśmy tę regułę w minigrze poniżej i dodaliśmy suwak prędkości. " "Uruchom grę, a potem wybierz własne tempo." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14910,7 +14911,7 @@ msgstr "" "Włącz JavaScript, aby grać. Nadal możesz przeczytać regułę i otworzyć kod " "źródłowy poniżej." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14919,7 +14920,7 @@ msgstr "" "Przycisk % działa inaczej po + i ×. Znajdźmy obie reguły i wypróbujmy je w " "małym kalkulatorze." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Zapytaj o przycisk %" @@ -14932,19 +14933,19 @@ msgstr "1. Zapytaj o przycisk %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Przykładowe pytanie · Kalkulator" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Znajdź obie reguły" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14952,12 +14953,12 @@ msgid "" msgstr "" "REA pomaga agentowi czytać kod przycisku %. Kod stosuje dwie różne reguły:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Wypróbuj przycisk %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -14966,7 +14967,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14974,7 +14975,7 @@ msgstr "{ph0}Przeczytaj FAQ{ph1} — konfiguracja i częste pytania." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14984,13 +14985,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — zgłoś błąd lub zaproponuj funkcję." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Konfiguracja dla twojej platformy:" @@ -14998,14 +14999,14 @@ msgstr "Konfiguracja dla twojej platformy:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Inne sposoby instalacji: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15020,7 +15021,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15035,7 +15036,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15047,7 +15048,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15059,7 +15060,7 @@ msgstr "" "konfiguracji to {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15071,67 +15072,67 @@ msgstr "" "funkcje i ciągi znaków, a następnie wyjaśnij część obsługującą dane " "użytkownika, podając odwołania do kodu." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Współtwórcy" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Przejdź do treści" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Strona główna{ph1} / Współtwórcy" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Tworzymy razem." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Dziękujemy wszystkim, którzy pomagają ulepszać REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15140,22 +15141,22 @@ msgstr "" "Kod, dokumentacja, testy, tłumaczenia i pomysły — jest wiele sposobów, by " "się zaangażować." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Jak współtworzyć" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Dołącz do rozmowy →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Współtwórcy" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Znajdź współtwórcę" @@ -15163,14 +15164,14 @@ msgstr "Znajdź współtwórcę" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" "Na podstawie {ph0}listy współtwórców na GitHubie{ph1} · Aktualizacja: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -15187,12 +15188,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "Poznaj osoby, które rozwijają kod, dokumentację, testy i pomysły REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nazwa użytkownika GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Do góry" diff --git a/website/locales/pt-BR/messages.po b/website/locales/pt-BR/messages.po index a01b40db865..d0e0f4b2727 100644 --- a/website/locales/pt-BR/messages.po +++ b/website/locales/pt-BR/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Casa{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Reflexões sobre engenharia reversa." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Reconstrução do jogo{ph0}Ensaio" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "A Revolução industrial na engenharia reversa" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "O manual RE e reconstrução TH08, TH095 e TH04 me ensinou sobre agentes, " "verificação e conhecimento que compostos entre projetos." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Leia o artigo" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Por N0zoM1z0 * 10 de outubro de 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Reflexões sobre engenharia reversa, com base na experiência prática com " "agentes REA e AI." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA-descubra como o software funciona. Engenharia reversa com seu agente de " "codificação." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Página inicial do REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Navegação principal" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA no GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Participe do Discord do REA" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Siga o REA no X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -265,35 +265,35 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Casa{ph1} / {ph2}Blogue{ph3} / Reconstrução de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Ensaio * reconstrução de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "A Revolução industrial na engenharia reversa." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Por N0zoM1z0 * 10 de outubro de 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Pontos principais" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -356,65 +356,65 @@ msgstr "" "{ph0}Estamos nos primeiros dias da Revolução industrial da RE.{ph1} Os " "métodos continuam a tomar forma. Ainda há muito para explorar." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Como experiência compostos" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Direcção humana{ph1} * Objectivo e critérios de aceitação" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Autonomia" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Agente" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Escolha uma experiência.{ph0}Propor uma hipótese." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Verificação" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Referência de validação" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Ensaio contra a{ph0}referência concreta." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Repositório" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Memória de trabalho" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -423,7 +423,7 @@ msgstr "Código, elementos de prova,{ph0}verificações e lições." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -432,26 +432,26 @@ msgstr "Incompatibilidade{ph0}{ph1}Rever a hipótese{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Um melhor{ph0}{ph1}ponto de partida{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Reutilização" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Passe{ph1} * Conservar o resultado e as suas provas" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -460,14 +460,14 @@ msgstr "" "Cada projecto deixa o próximo com um melhor ponto de partida. Isso inclui a " "fixação dos controlos quando descobrimos uma lacuna." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Neste artigo" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -475,7 +475,7 @@ msgstr "{ph0}Agosto 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -483,7 +483,7 @@ msgstr "{ph0} TH08: a continuação{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -491,7 +491,7 @@ msgstr "{ph0}Duas abordagens{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -499,7 +499,7 @@ msgstr "{ph0} TH095: composição{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -507,7 +507,7 @@ msgstr "{ph0} TH04: entre arquiteturas{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -515,7 +515,7 @@ msgstr "{ph0}Do exato ao legível{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -523,18 +523,18 @@ msgstr "{ph0}A mudança industrial{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}O que se torna possível{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "O que mudou em agosto de 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -549,7 +549,7 @@ msgstr "" " meu próprio tempo na próxima função. Também significava manter uma imagem " "cada vez maior na minha cabeça." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -563,7 +563,7 @@ msgstr "" " método pode ser útil em outros lugares, mas cada campo precisa estabelecer " "o que pode verificar em relação a uma referência confiável." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -576,7 +576,7 @@ msgstr "" " ferramentas de desenvolvimento comuns. A reconstrução de Touhou deu-me um " "projecto substancial para descobrir." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -593,7 +593,7 @@ msgstr "" "essa liberdade fez a diferença: eu poderia dedicar mais atenção à direcção " "do projecto e à fiabilidade dos seus controlos." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -604,7 +604,7 @@ msgstr "" "sobreviveria além do projeto atual. O próximo jogo beneficiaria de tudo o " "que acabámos de aprender?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: baseando-se no trabalho humano" @@ -613,7 +613,7 @@ msgstr "TH08: baseando-se no trabalho humano" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -627,7 +627,7 @@ msgstr "" "substancial. Veio com o conhecimento da construção e uma história de " "contribuições que preservei na continuação." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -639,7 +639,7 @@ msgstr "" "agosto, o livro-razão registou a fonte para todas as 1.107 funções do jogo " "identificadas." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -650,7 +650,7 @@ msgstr "" " de onze dias após o início da continuação. Seguiu-se uma edição Web. A " "versão nativa Linux de 64 bits chegou em 30 de agosto." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -666,7 +666,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -684,12 +684,12 @@ msgstr "" "exercida atinge o estado esperado. O agente propõe uma explicação e testa - " "a; uma incompatibilidade dá-lhe algo específico para investigar." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Uma correspondência exata com a constante errada" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -700,7 +700,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -713,7 +713,7 @@ msgstr "" "do jogador contra {ph0}. O original utilizado {ph1}, o limiar de potência " "máxima." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -728,13 +728,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "{ph0}No entanto, a função já havia passado na comparação exata.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -749,7 +749,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -765,7 +765,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -780,7 +780,7 @@ msgstr "" "flutuante. Encontrou outras doze referências incorrectas em cinco funções " "aceites." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -794,7 +794,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -804,7 +804,7 @@ msgstr "" "{ph0}A referência de verificação (oráculo) também precisava de ser " "reconstruída.{ph1} Repará-lo fazia parte da reparação do jogo." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -822,7 +822,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -839,7 +839,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -849,7 +849,7 @@ msgstr "" "{ph0}Um lote bem sucedido proporcionou-nos tanto o código recuperado como um" " ambiente melhor para o próximo lote.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Duas ideias diferentes de reconstrução" @@ -858,7 +858,7 @@ msgstr "Duas ideias diferentes de reconstrução" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -870,7 +870,7 @@ msgstr "" "tipo de trabalho. O aviso anuncia que o desenvolvimento adicional ocorrerá " "em particular até a conclusão. Uma passagem diz:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -880,7 +880,7 @@ msgstr "" "tirando do nosso trabalho, pinta uma imagem ruim para futuros esforços de " "descompilação…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -897,7 +897,7 @@ msgstr "" "disso. O desacordo que quero discutir é sobre como a reconstrução deve " "prosseguir e como uma contribuição deve ser julgada." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -911,7 +911,7 @@ msgstr "" " importava porque grande parte do raciocínio acontecia enquanto eles " "trabalhavam." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -922,7 +922,7 @@ msgstr "" "ferramentas. O que mudou para mim foi que um agente poderia usar esse " "conhecimento para prosseguir a próxima investigação por conta própria." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -937,7 +937,7 @@ msgstr "" "pessoa possa examinar a razão pela qual escolhemos uma implementação, mesmo " "que um agente tenha feito a maior parte do trabalho." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -950,7 +950,7 @@ msgstr "" "Isso levanta questões reais sobre o crédito. Também altera o que os " "mantenedores precisam saber antes de aceitar uma contribuição." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -965,7 +965,7 @@ msgstr "" "processo e reconhecer quando sua saída está errada. Diferentes comunidades " "podem escolher quanto dessa mudança querem assumir." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -990,7 +990,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1003,14 +1003,14 @@ msgstr "" "abreviado. De TH08 {ph4}créditos e proveniência{ph5} registre o limite de " "continuação." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: a experiência começa a compor" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1025,7 +1025,7 @@ msgstr "" "sabíamos muito mais sobre como iniciar uma reconstrução e como mantê-la em " "movimento." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1039,7 +1039,7 @@ msgstr "" "marcada como jogável em 10 de setembro, cerca de doze dias após a " "inicialização." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1050,7 +1050,7 @@ msgstr "" " alvo poderia beneficiar do trabalho realizado noutro jogo. A experiência já" " estava presente nas Ferramentas e na forma como o projecto foi organizado." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1065,7 +1065,7 @@ msgstr "" "trabalhar em conjunto. Essa lição ajudou a moldar a forma como abordamos a " "construção de todo o programa do TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1078,7 +1078,7 @@ msgstr "" "continuar ajudando depois que eu seguir em frente. O próximo agente pode " "utilizar o resultado sem repetir a investigação que o conduziu." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1093,7 +1093,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1105,7 +1105,7 @@ msgstr "" "jogo.{ph1} Podemos gastar mais do esforço do próximo projecto naquilo que é " "realmente novo sobre o seu objectivo." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1118,7 +1118,7 @@ msgstr "" "continuar o trabalho. Não têm de reconstruir toda a história do projecto " "para descobrir porque é que a fonte se parece com ela." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: o fluxo de trabalho sobrevive a uma arquitetura diferente" @@ -1127,7 +1127,7 @@ msgstr "TH04: o fluxo de trabalho sobrevive a uma arquitetura diferente" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1143,7 +1143,7 @@ msgstr "" "diferentes dos jogos Windows. Existente {ph2}Trabalho ReC98{ph3} deu-nos " "também aqui conhecimentos valiosos e material de origem." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1156,7 +1156,7 @@ msgstr "" "trabalho atual é uma porta nativa de 64 bits. O estabelecimento de uma " "versão DOS funcional dá, em primeiro lugar, a essa porta uma referência." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1169,7 +1169,7 @@ msgstr "" "trabalho. Mas o agente ainda pode seguir uma pergunta até um resultado e " "deixar que esse resultado guie a próxima experiência." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1184,7 +1184,7 @@ msgstr "" "os controlos estejam disponíveis, um agente pode resolver a questão da mesma" " forma que fez com um título Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1196,7 +1196,7 @@ msgstr "" " arquitetura definiu o problema; o fluxo de trabalho ainda nos deu uma " "maneira de resolvê-lo." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1213,7 +1213,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1224,12 +1224,12 @@ msgstr "" " manuais{ph1} · {ph2}Porta de 64 bits{ph3}. O porto continua em " "desenvolvimento." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Do código exato ao código legível" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1238,7 +1238,7 @@ msgstr "" "Uma vez que uma reconstrução funcione, quero que outra pessoa possa " "compreendê-la." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1253,7 +1253,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1270,7 +1270,7 @@ msgstr "" " raciocínio com a fonte para que a próxima pessoa possa ver de onde veio " "essa interpretação." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1285,14 +1285,14 @@ msgstr "" "esse estado. Para mover o comportamento com segurança, precisamos recuperar " "a relação por trás do antigo acesso à memória." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "A ordem que eu uso agora é:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1308,7 +1308,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1325,7 +1325,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1341,7 +1341,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1356,7 +1356,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1373,7 +1373,7 @@ msgstr "" "reconstruído continua a construir e a comportar-se correctamente ao longo " "dos caminhos que exercemos." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1387,7 +1387,7 @@ msgstr "" "disponíveis dá ao Agente uma falha concreta em investigar antes de levar " "mais longe um refatorador." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1405,7 +1405,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1424,7 +1424,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1435,12 +1435,12 @@ msgstr "" "torna utilizável o conhecimento recuperado.{ph1} Um porto pode então basear-" "se em ambos." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "O que torna esta mudança industrial" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1454,7 +1454,7 @@ msgstr "" "fazer. Uma ferramenta melhor poderia ajudar em todas as funções posteriores " "que dela necessitassem." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1468,7 +1468,7 @@ msgstr "" " esperar que eu prescreva cada passo, grande parte do trabalho continua " "ligada à minha atenção." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1481,7 +1481,7 @@ msgstr "" "lo a entender o erro o suficiente para tentar novamente. Ainda tenho de " "decidir se as provas acumuladas apoiam um marco do projecto." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1496,7 +1496,7 @@ msgstr "" "verificações de referência. O agente pode usá-los para testar a fonte que " "propõe e ver onde está a sua explicação." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1514,7 +1514,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1535,7 +1535,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1553,7 +1553,7 @@ msgstr "" " que afectou. O próximo projecto pode então herdar uma ferramenta mais " "forte." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1569,7 +1569,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1581,7 +1581,7 @@ msgstr "" "aos projectos uma forma partilhada de levar adiante os seus controlos e " "lições. Trabalhar num jogo pode melhorar as condições de partida para outro." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1593,12 +1593,12 @@ msgstr "" "essas ferramentas muda o quanto a próxima pessoa—ou o próximo agente—pode " "fazer." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Os projectos que podemos agora considerar" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1610,7 +1610,7 @@ msgstr "" "própria atenção do que eu poderia realisticamente dar. Muitos projectos " "continuariam a ser ideias." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1628,7 +1628,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1639,7 +1639,7 @@ msgstr "" "feedback e conhecimento acumulado permitiriam que um agente trabalhasse de " "forma fiável?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1650,12 +1650,12 @@ msgstr "" " em paz. Cada um pode melhorar a forma como abordamos o próximo. Quero " "continuar a explorar até onde isso nos pode levar." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Marcos e fontes do projecto" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1690,7 +1690,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1724,7 +1724,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1742,7 +1742,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1766,7 +1766,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1789,7 +1789,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1805,7 +1805,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1827,7 +1827,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1842,7 +1842,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1863,27 +1863,27 @@ msgstr "" " agentes de IA e como o conhecimento se compõe em TH08 , TH095 e PC-98 TH04 " "." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Experiência realizada entre projectos" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Ensaio de reconstrução de Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -1892,18 +1892,18 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Casa{ph1}{ph2}/{ph3}Dinosaur speed lab" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Inspeccionar valuetech" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Reconstrua a regra da velocidade do dinossauro." @@ -1912,7 +1912,7 @@ msgstr "Reconstrua a regra da velocidade do dinossauro." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1924,15 +1924,15 @@ msgstr "" "sua velocidade. {ph0} REA retornou o script em execução;{ph1} usámos a sua " "regra para construir este mini-jogo com {ph2}velocidade ajustável.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Nesta página" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1940,7 +1940,7 @@ msgstr "{ph0}Jogue e mude a velocidade{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1948,7 +1948,7 @@ msgstr "{ph0}Leia a regra recuperada{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1956,18 +1956,18 @@ msgstr "{ph0}Verificar a reconstrução{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Experimente a análise{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Jogue e mude a velocidade" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1979,49 +1979,49 @@ msgstr "" "muda para uma velocidade fixa. Selecione a regra recuperada para começar em " "6 e acelerar gradualmente novamente." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Jogue a reconstrução" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Jogar" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Pular ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Reiniciar" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Velocidade" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Use a regra de aceleração recuperada" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regra Original: comece em 6, depois aumente para 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Mova o controle deslizante para definir sua própria velocidade. Espaço ou " "salto limpa um cacto." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2030,7 +2030,7 @@ msgstr "" "Permitir que o JavaScript reproduza a reconstrução. O código e a explicação " "acima permanecem legíveis." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Leia o script REA retornado" @@ -2038,7 +2038,7 @@ msgstr "Leia o script REA retornado" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2053,7 +2053,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2063,18 +2063,18 @@ msgstr "" "As configurações são {ph0}, {ph1} e {ph2}. O jogo executa este ramo em uma " "atualização sem colisão." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Use a mesma regra no novo jogo" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2091,19 +2091,19 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Baixe a regra da velocidade{ph1} · {ph2}Leia o código do jogo{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Verificar a reconstrução" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2114,27 +2114,27 @@ msgstr "" "programação automática desativada. Compare essas velocidades registadas com " "uma repetição da regra recuperada." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Actualizações" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Jogo Original" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Regra reconstruída" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Execute a verificação de velocidade" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2144,14 +2144,14 @@ msgstr "" "adicionar, de modo que o incremento final pode ter velocidade um pouco acima" " de 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Experimente você mesmo a análise" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2160,7 +2160,7 @@ msgstr "{ph0}Configurar REA {ph1} com o seu agente de codificação." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2169,7 +2169,7 @@ msgstr "" "Siga o {ph0}etapas de conexão do navegador{ph1}, utilizando {ph2} como o URL" " da página." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2186,7 +2186,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2198,7 +2198,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}O seu agente de codificação" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2212,7 +2212,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2227,7 +2227,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2253,12 +2253,12 @@ msgstr "" "Leia a regra de Velocidade do jogo de dinossauros com REA, reconstrua-a, " "depois altere a velocidade e jogue." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Reconstrução da velocidade dos dinossauros" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2267,52 +2267,52 @@ msgstr "" "Mini-jogo de dinossauros. Use o botão de salto ou pressione espaço enquanto " "o jogo está focado." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Copiar regra de velocidade reconstruída" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie o alerta da análise do dinossauro" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Casa{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA FAQ." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Configuração, atualizações, análise e resolução de problemas." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Temas" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2320,7 +2320,7 @@ msgstr "{ph0}Configuração e atualizações{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2328,7 +2328,7 @@ msgstr "{ph0}Análise{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2336,31 +2336,31 @@ msgstr "{ph0}Resolução de problemas{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Dados e partilha{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Configuração e atualizações" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Como instalo o REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal * configuração do agente" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Copiar" @@ -2368,7 +2368,7 @@ msgstr "Copiar" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2382,12 +2382,12 @@ msgstr "" "caminho do arquivo e uma pergunta. O {ph0}guia de configuração{ph1} explica " "os pré-requisitos e a primeira análise." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Que agentes de codificação podem utilizar REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2402,18 +2402,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Ligue o seu agente de codificação{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Como atualizo o REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2422,13 +2422,13 @@ msgstr "" "O REA é lançado com frequência, incluindo correções de bugs. Se você " "instalou o CLI com npm :" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * CLI instalado" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2438,14 +2438,14 @@ msgstr "" "Siga o comando setup refresh impresso pela atualização. Se configurar o seu " "agente através de {ph0}, correr:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal * configuração do agente de atualização" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2458,14 +2458,14 @@ msgstr "" "usar a nova versão. Para um comando avulso na CLI, coloque o comando depois " "de {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Está instalando a habilidade de skills.sh chega?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2477,24 +2477,24 @@ msgstr "" "Configuração REA{ph1} para conectar o servidor MCP e instalar a habilidade " "correspondente, reinicie o agente para que ele possa chamar as ferramentas." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Análise" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "O que posso analisar com REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Comece com o tipo de software que você tem:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2506,7 +2506,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2518,7 +2518,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2528,7 +2528,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2540,12 +2540,12 @@ msgstr "" "Android, firmware e recursos empacotados. {ph0}Ver os estudos de caso{ph1} " "para investigações trabalhadas." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Preciso de Hopper, Ghidra ou IDA ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2558,7 +2558,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2571,12 +2571,12 @@ msgstr "" "pode ser usado. {ph0}Configurar a análise de programas de código de " "máquina{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Posso usar REA sem um agente de codificação?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2585,14 +2585,14 @@ msgstr "" "Sim. O CLI utiliza os mesmos fluxos de trabalho de análise. Para uma " "aplicação local JavaScript ou Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * análise estática da aplicação" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2603,13 +2603,13 @@ msgstr "" "{ph0}Utilizar o CLI {ph1} para opções de instalação." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "Que código o REA retorna?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2624,7 +2624,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2636,12 +2636,12 @@ msgstr "" " testar uma implementação. O {ph0} Cálculo DX-Ball{ph1} e {ph2}Verificador " "de bandeira CTF{ph3} mostre como esse processo funciona." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "O que devo perguntar ao meu agente?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2658,7 +2658,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2666,7 +2666,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}O seu agente de codificação" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2676,18 +2676,18 @@ msgstr "" "Substitua o caminho pelo seu alvo. O {ph0}guias{ph1} forneça prompts para " "exemplos nativos, Electron e navegadores." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Resolução de problemas" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Por Que meu agente não pode ver as ferramentas REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2697,7 +2697,7 @@ msgstr "" "Reinicie ou reconecte seu agente após a configuração. Verifique seu registro" " REA com {ph0}; para Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * verificar um cliente" @@ -2705,7 +2705,7 @@ msgstr "Terminal * verificar um cliente" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2716,14 +2716,14 @@ msgstr "" "relatório mostrar um registo em falta ou obsoleto, execute a configuração " "para esse cliente:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * reparar a configuração de um cliente" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2735,14 +2735,14 @@ msgstr "" "as ferramentas permanecerem ausentes, Verifique o erro de conexão MCP do " "cliente. {ph0}Mais diagnósticos de configuração{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Preciso iniciar o Hopper primeiro?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2754,14 +2754,14 @@ msgstr "" "escolha de modo de demonstração ou ativação de licença antes da análise " "autônoma. {ph0}Consulte Configuração do provedor nativo{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "O que faço se encontrar um bug?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2773,7 +2773,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2786,17 +2786,17 @@ msgstr "" " o nome do Fornecedor quando o problema envolver a análise de programas de " "código de máquina." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Dados e partilha" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "O REA carrega a minha aplicação?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2806,7 +2806,7 @@ msgstr "" "Política de dados do respetivo Fornecedor modelo aplica-se a esses " "resultados." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Como posso partilhar um exemplo ou contribuir?" @@ -2815,7 +2815,7 @@ msgstr "Como posso partilhar um exemplo ou contribuir?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2831,7 +2831,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2857,77 +2857,77 @@ msgstr "" "de análise, agentes de codificação, solução de problemas e exemplos de " "compartilhamento." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Perguntas frequentes sobre REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Copiar o comando de configuração REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Copiar comando de actualização REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Comando de atualização de configuração do agente de cópia" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Copiar comando de análise REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Copiar exemplo de pedido de análise" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Comando Copy client diagnosis" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Comando de configuração com escopo de cópia" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Casa{ph1} / Sua primeira investigação" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Descubra onde{ph0}notas exportadas vão." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2936,14 +2936,14 @@ msgstr "" "Use o REA para inspecionar um pequeno aplicativo, siga o botão Exportar " "notas e verifique você mesmo um detalhe." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Neste exercício" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2951,7 +2951,7 @@ msgstr "{ph0}1. Configurar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2959,7 +2959,7 @@ msgstr "{ph0}2. Pergunte sobre exportação{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2967,7 +2967,7 @@ msgstr "{ph0}3. Siga a resposta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2975,13 +2975,13 @@ msgstr "{ph0}4. Verificar uma previsão{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Faça outra pergunta{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Ligue o seu agente ao REA" @@ -2994,30 +2994,30 @@ msgstr "1. Ligue o seu agente ao REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}O seu agente de codificação" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Ou execute este comando no seu terminal:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3026,14 +3026,14 @@ msgstr "" "Revise o plano, aprove a configuração e reinicie o agente. Já está ligado? " "Continue abaixo." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Pergunte onde está escrito o CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3045,7 +3045,7 @@ msgstr "" "exportação{ph1} botão. Seu agente pode inspecionar seu código sem instalar " "ou iniciar o Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3057,14 +3057,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Baixar exemplo ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3074,12 +3074,12 @@ msgstr "" "Se o seu agente não puder baixar arquivos, Descompacte este arquivo você " "mesmo. Dê-lhe o caminho para o {ph0} pasta e a mesma questão de exportação." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Siga a resposta de volta ao código" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Procure uma breve explicação com referências de arquivo e linha:" @@ -3088,7 +3088,7 @@ msgstr "Procure uma breve explicação com referências de arquivo e linha:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3100,12 +3100,12 @@ msgstr "" "CSV e escreve {ph1} na pasta Downloads do utilizador. As colunas são {ph2} e" " {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Do botão ao gravador de arquivos" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3114,7 +3114,7 @@ msgstr "" "A análise estática do REA emparelha a mensagem com o seu manipulador. O " "destino é lido a partir do Código." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3126,7 +3126,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." @@ -3134,12 +3134,12 @@ msgstr "" "{ph0}Veja o rastreamento completo do código e o resultado REA " "registrado{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Verificar uma previsão" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3148,29 +3148,29 @@ msgstr "" "Uma vírgula separa as colunas CSV. O que acontece quando o próprio título de" " uma nota contém uma vírgula ou aspas?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Execute o cheque você mesmo" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Abrir um terminal no desembalado {ph0} pasta:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Faça outra pergunta" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Tente um acompanhamento na mesma conversa:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3179,7 +3179,7 @@ msgstr "" "O que acontece se o ficheiro não puder ser gravado? Siga o erro de volta à " "página." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3192,7 +3192,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3206,7 +3206,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3220,7 +3220,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3245,116 +3245,116 @@ msgstr "" "pergunte para onde vão as notas exportadas e verifique o formatador CSV com " "um título de amostra." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Sua primeira investigação REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Copiar o aviso de instalação do REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Comando Copiar configuração" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Copiar notas pedido de investigação" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Copiar o pedido de verificação CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Comando Copiar verificação do formatador" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Casa{ph1} / Começar" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Configurar REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Abrir um terminal e verificar:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Copiar" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3366,7 +3366,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3378,7 +3378,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3389,7 +3389,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3397,7 +3397,7 @@ msgstr "{ph0}Utilizar o CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3411,18 +3411,18 @@ msgstr "{ph0}Obter ajuda{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Seu agente de programação" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Ou execute a configuração você mesmo" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Como abrir um terminal?" @@ -3431,7 +3431,7 @@ msgstr "Como abrir um terminal?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3447,7 +3447,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3461,7 +3461,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3476,7 +3476,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3486,7 +3486,7 @@ msgstr "" "Colar um comando com {ph0} {ph1} (macOS : {ph2} {ph3}; Terminais Linux: " "{ph4} {ph5} {ph6}) e, em seguida, prima Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3497,7 +3497,7 @@ msgstr "" "conexão MCP e a habilidade de investigação correspondente, mantendo um " "backup da configuração existente. Pergunta antes de aplicar as alterações." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Como faço para reiniciar meu cliente?" @@ -3506,7 +3506,7 @@ msgstr "Como faço para reiniciar meu cliente?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3522,7 +3522,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3532,7 +3532,7 @@ msgstr "" "{ph0}Agentes terminais{ph1} (Claude Code, Codex, Gemini CLI ): saia da " "sessão e inicie-a novamente." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Como obtenho o caminho completo de uma pasta?" @@ -3541,7 +3541,7 @@ msgstr "Como obtenho o caminho completo de uma pasta?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3557,7 +3557,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3569,7 +3569,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3579,14 +3579,14 @@ msgstr "" "{ph0}Qualquer sistema:{ph1} arraste a pasta para uma janela de terminal e " "seu caminho será exibido." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "Em um terminal, coloque aspas em torno de um caminho que contém espaços." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3595,14 +3595,14 @@ msgstr "" "Analisar uma pasta de Aplicação JavaScript ou Electron ou um arquivo ASAR " "sem executar a aplicação:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Análise estática da aplicação" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3612,13 +3612,13 @@ msgstr "" "Substitua o caminho pelo diretório do aplicativo extraído ou {ph0} ficheiro." " Em Windows, um caminho como {ph1} trabalha aqui." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Onde encontro o arquivo .asar de um aplicativo?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3629,7 +3629,7 @@ msgstr "Os aplicativos Electron geralmente o mantêm em um {ph0} pasta:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3641,7 +3641,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3654,14 +3654,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} muitas vezes {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3669,7 +3669,7 @@ msgstr "" "Alguns aplicativos são instalados em outro lugar. Pesquise na pasta do " "aplicativo {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3681,36 +3681,36 @@ msgstr "" "resolvidas estão marcadas no resultado." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Se quiser ter o comando {ph0} sempre disponível no seu shell:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Instalar o CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Continue com o Guia de Aplicação JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Conecte sua instalação Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Ligar Ghidra em Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3721,7 +3721,7 @@ msgstr "" "DLLs nativos x86 e x64 PE em unidades NTFS locais fixas. Use uma instalação " "existente do Ghidra 12.1.x e um JDK de 64 bits, versão 21 ou posterior:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3729,7 +3729,7 @@ msgstr "" "Substitua os dois caminhos pelas suas instalações e, em seguida, reveja o " "plano da instalação." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3739,18 +3739,18 @@ msgstr "" "detecta uma instalação existente ou oferece um plano de instalação para sua " "aprovação." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Obter ajuda" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Se o seu agente não vir REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3760,22 +3760,22 @@ msgstr "" "Reinicie ou volte a ligar o cliente após a configuração. Verificar a ligação" " REA com {ph0}; para Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Se um fornecedor precisar de atenção" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Verifique o fornecedor que está a utilizar. Para Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Verificar um fornecedor" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "O relatório apresenta a verificação falhada e sugere o próximo passo." @@ -3784,7 +3784,7 @@ msgstr "O relatório apresenta a verificação falhada e sugere o próximo passo #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3797,7 +3797,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3811,7 +3811,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3825,7 +3825,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3850,68 +3850,68 @@ msgstr "" "JavaScript ou Electron local a partir do terminal. Configuração, primeiras " "perguntas e guias do provedor nativo." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Copiar a verificação da versão Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Copiar o comando de instalação Node.js para Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Comando de instalação copiar Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Copiar o comando de instalação do fnm para Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Copiar comandos Node.js 24 para Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA guia de introdução" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Copiar o aviso de instalação do REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Copiar comando de análise JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Copiar o comando de instalação do CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Comando de diagnóstico do Fornecedor de cópia" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -3920,20 +3920,20 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Casa{ph1} / {ph2}Guias{ph3} / Observação do navegador" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Veja o que acontece{ph0}quando você clica." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3942,14 +3942,14 @@ msgstr "" "Use um pequeno aplicativo de navegador para conectar uma ação, sua " "solicitação de rede e o JavaScript que cria um download." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Neste guia" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3957,7 +3957,7 @@ msgstr "{ph0}O exemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3965,7 +3965,7 @@ msgstr "{ph0}Abra o navegador{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3973,7 +3973,7 @@ msgstr "{ph0}Pergunte ao seu agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3981,13 +3981,13 @@ msgstr "{ph0}Captura a partir de CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Ler o pedido e o guião{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "O que acontece quando você clica em Exportar?" @@ -3997,7 +3997,7 @@ msgstr "O que acontece quando você clica em Exportar?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4009,7 +4009,7 @@ msgstr "" "botão. Clicar nele carrega {ph4}, Formata as duas notas como CSV e inicia um" " download." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Do clique ao download do CSV" @@ -4020,7 +4020,7 @@ msgstr "Do clique ao download do CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4036,7 +4036,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4055,7 +4055,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4065,17 +4065,17 @@ msgstr "" "{ph0}03 * o seu agente{ph1}{ph2}Ler o código de exportação{ph3}{ph4}Ligar o " "pedido observado ao {ph5} em {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Inicie a captura antes de clicar em Exportar notas." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Abrir Chrome com depuração remota" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4084,21 +4084,21 @@ msgstr "" "Abra o exemplo do hosted Notes com um perfil de navegador separado e uma " "porta de depuração local. Em Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Inicie o navegador de exemplo" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Copiar" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4107,7 +4107,7 @@ msgstr "" "Use o caminho executável do navegador instalado em macOS ou Windows . Você " "pode substituir o URL da página por outra página que deseja inspecionar." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4116,7 +4116,7 @@ msgstr "" "REA se conecta a este navegador existente. Você mantém o controle da página," " executa a ação e fecha o navegador quando terminar." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Peça ao seu agente para assistir a uma ação" @@ -4129,7 +4129,7 @@ msgstr "Peça ao seu agente para assistir a uma ação" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4141,7 +4141,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}O seu agente de codificação" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4152,7 +4152,7 @@ msgstr "" "Exportar notas. Que Pedido faz e como é construído o CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4162,7 +4162,7 @@ msgstr "" "Exemplo de alerta. Dê ao seu agente o ponto de extremidade de depuração, " "{ph0}, e o URL da página. Deixe-o iniciar a captura antes de clicar." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4173,23 +4173,23 @@ msgstr "" "lê as evidências resultantes. Ele pode então inspecionar o script por trás " "da exportação." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Ou captura a partir do terminal" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Encontrar o ID de destino da página:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Encontre a página" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4199,14 +4199,14 @@ msgstr "" "Escolha o destino com o URL de exemplo do Notes. Substituir {ph0} abaixo com" " o seu ID, em seguida, executar:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Capture os próximos dez segundos" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4217,7 +4217,7 @@ msgstr "" "exportação{ph1} nesse navegador. O resultado chega após o fim da janela de " "observação." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4228,49 +4228,49 @@ msgstr "" "durante essa janela e a forma da resposta JSON. Os pedidos anteriores estão " "fora desta captura." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Leia o script de solicitação e exportação" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Gravado com REA 4.1.0 no exemplo de notas locais" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Facto capturado" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Valor" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Pedido" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Resposta" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Iniciador do pedido" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * roteiro" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Estrutura de resposta" @@ -4278,19 +4278,19 @@ msgstr "Estrutura de resposta" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} com {ph1} e {ph2} campos" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Ler os scripts carregados" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4302,7 +4302,7 @@ msgstr "" "usados:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4315,7 +4315,7 @@ msgstr "" "solicitado {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4327,7 +4327,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4352,65 +4352,65 @@ msgstr "" "Observe uma exportação de notas com REA: selecione uma página do navegador, " "capture um clique, inspecione a solicitação e siga o script de exportação." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Observação do navegador" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Copiar iniciar o navegador de exemplo" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Copiar exemplo de pedido" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Copiar encontrar a página" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Copiar capturar os próximos dez segundos" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Copiar ler os scripts carregados" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Casa{ph1} / Guias" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Guias REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4419,38 +4419,38 @@ msgstr "" "Analise uma função nativa, uma exportação Electron ou uma solicitação do " "navegador. Cada guia inclui um aviso, código e resultados." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Primeira investigação" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Configurar REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" "Ligue o seu agente de codificação ou utilize o REA a partir do terminal." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Começar a utilizar REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Programas de código de máquina" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Recuperar um cálculo da posição sonora esquerda/direita" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4459,22 +4459,22 @@ msgstr "" "Comece com um executável de jogo Windows. Inspecione as instruções, siga um " "chamador, leia constantes numéricas e verifique o C recuperado." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Análise do Guia de programas de código de máquina" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Seguir uma exportação CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4484,14 +4484,14 @@ msgstr "" "carregamento e processo principal. Use REA para conectar a API, o canal IPC " "e o gravador de arquivos." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & guia Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4499,17 +4499,17 @@ msgstr "" "Para um aplicativo empacotado maior, siga {ph0} Notion's clipboard " "bridge{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Comportamento do navegador" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Observe um clique" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4518,7 +4518,7 @@ msgstr "" "Abra um exemplo de notas de trabalho, capture uma solicitação de exportação " "e encontre o código que transforma sua resposta em um download." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Guia de observação do navegador" @@ -4537,12 +4537,12 @@ msgstr "" "Aprenda REA através de exemplos curtos trabalhados: um cálculo nativo, uma " "exportação Electron CSV e uma solicitação do navegador." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -4551,20 +4551,20 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Casa{ph1} / {ph2}Guias{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Rastrear um Electron {ph0} Exportação CSV." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4573,14 +4573,14 @@ msgstr "" "Siga um clique de botão da API da página, através do Electron IPC, até o " "gravador de arquivos CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Neste guia" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4588,7 +4588,7 @@ msgstr "{ph0}O exemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4596,7 +4596,7 @@ msgstr "{ph0}Pergunte ao seu agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4604,7 +4604,7 @@ msgstr "{ph0}Rastrear o código de exportação{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4612,20 +4612,20 @@ msgstr "{ph0}Experimente o exemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Inspecionar o gravador CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Para onde vão as\" notas de exportação\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4637,7 +4637,7 @@ msgstr "" "exportação{ph1} chama uma API na página, cruza para o processo principal e " "grava um CSV . O comportamento está espalhado por vários arquivos." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "A exportação CSV através dos processos Electron" @@ -4651,7 +4651,7 @@ msgstr "A exportação CSV através dos processos Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4668,7 +4668,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4685,7 +4685,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4698,13 +4698,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} Formata as notas7 {ph1} escreve {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4715,14 +4715,14 @@ msgstr "" "exposta. O caminho é inferido do Código; uma captura de tempo de execução " "pode verificar o que é executado." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Pergunte sobre a exportação CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4740,14 +4740,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}O seu agente de codificação" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Copiar" @@ -4758,7 +4758,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4769,7 +4769,7 @@ msgstr "" "notas neste app. Onde é criado o CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4779,7 +4779,7 @@ msgstr "" "Exemplo de alerta. Inclua o caminho absoluto para a pasta do aplicativo ou " "{ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4790,17 +4790,17 @@ msgstr "" "módulos e limites do processo. Seu agente usa esse mapa para restringir a " "investigação ao recurso de exportação." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Rastrear o código de exportação" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "A página chama uma pequena API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4811,7 +4811,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4823,7 +4823,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4834,7 +4834,7 @@ msgstr "" "notas e o processo principal escreve {ph1} na pasta Transferências do " "utilizador." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4843,7 +4843,7 @@ msgstr "" "Gravado por REA 4.1.0 no exemplo para download abaixo. Os locais de origem " "acompanham as descobertas da API, do canal e do manipulador." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Analise você mesmo o exemplo" @@ -4851,25 +4851,25 @@ msgstr "Analise você mesmo o exemplo" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Baixar exemplo ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Procurar os seis ficheiros de origem" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Análise estática da aplicação" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4880,7 +4880,7 @@ msgstr "" " canal IPC e um manipulador correspondente em {ph0}. Os locais de origem " "estão em {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4891,13 +4891,13 @@ msgstr "" "caminho ASAR. Um agente pode seguir uma string literal, nome de API ou canal" " IPC com as ferramentas de rastreamento de recursos do REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Inspecionar o gravador CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4907,7 +4907,7 @@ msgstr "" "Seguir {ph0} ao seu manipulador. Quais entradas atingem o gravador CSV e o " "que acontece se a gravação do arquivo falhar?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4922,7 +4922,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4936,7 +4936,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4950,7 +4950,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4976,32 +4976,32 @@ msgstr "" "pré-carga e manipulador IPC com REA . Inclui ficheiros de exemplo " "descarregáveis e um resultado de análise verificado." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Copiar exemplo de pedido" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Copiar análise estática da aplicação" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -5010,7 +5010,7 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5018,14 +5018,14 @@ msgstr "" "{ph0}Casa{ph1} / {ph2}Guias{ph3} / Análise de programas de código de máquina" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" "Recuperar o de DX-Ball{ph0}cálculo da posição sonora esquerda/direita." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5034,14 +5034,14 @@ msgstr "" "Inspecione as instruções originais, identifique a entrada e as constantes e," " em seguida, verifique o C recuperado." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Neste guia" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5049,7 +5049,7 @@ msgstr "{ph0}O exemplo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5057,7 +5057,7 @@ msgstr "{ph0}Pergunte ao seu agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5065,7 +5065,7 @@ msgstr "{ph0}Leia os resultados do REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5073,18 +5073,18 @@ msgstr "{ph0}Recuperar e verificar{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Use seu próprio binário{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Calcular o posicionamento do som estéreo esquerdo / direito" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5095,7 +5095,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5107,7 +5107,7 @@ msgstr "" "para {ph1}. REA também retorna suas instruções e chamadores, que dão ao " "Agente uma maneira de investigar a aritmética ausente." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Novo nestes Termos?" @@ -5116,7 +5116,7 @@ msgstr "Novo nestes Termos?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5128,7 +5128,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5141,7 +5141,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5154,7 +5154,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5166,7 +5166,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5176,7 +5176,7 @@ msgstr "" "{ph0}Constantes:{ph1} números fixos armazenados no programa, lidos como " "bytes brutos e decodificados." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Três elementos de prova, um cálculo" @@ -5187,7 +5187,7 @@ msgstr "Três elementos de prova, um cálculo" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5204,7 +5204,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5222,7 +5222,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5232,7 +5232,7 @@ msgstr "" "{ph0}03 * bytes de dados{ph1}{ph2}As constantes numéricas{ph3}{ph4}Os bytes " "referenciados descodificam para {ph5}, {ph6} e um valor de escala.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5241,7 +5241,7 @@ msgstr "" "REA fornece as instruções, a relação função-chamada e os bytes. O agente " "interpreta-os em conjunto." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Pergunte sobre o comportamento" @@ -5250,7 +5250,7 @@ msgstr "Pergunte sobre o comportamento" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5261,19 +5261,19 @@ msgstr "" " de análise de programas de código de máquina{ph3}, forneça o executável " "local e uma pergunta:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Que Ferramenta de análise devo utilizar?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA precisa de um destes para ler programas nativos:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5287,7 +5287,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5300,7 +5300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5311,7 +5311,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5327,14 +5327,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}O seu agente de codificação" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Copiar" @@ -5345,7 +5345,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5356,7 +5356,7 @@ msgstr "" "posicionamento do som estéreo. Explique o cálculo e mostre o " "código.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5367,7 +5367,7 @@ msgstr "" "Ball 1.07. REA não inclui DX-Ball, então use sua própria cópia ou Faça o " "mesmo tipo de pergunta sobre outro pequeno programa Windows que você possui." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Como obtenho o caminho completo de um ficheiro?" @@ -5376,7 +5376,7 @@ msgstr "Como obtenho o caminho completo de um ficheiro?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5392,7 +5392,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5405,7 +5405,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5415,17 +5415,17 @@ msgstr "" "{ph0}Qualquer sistema:{ph1} arraste o arquivo para uma janela de terminal e " "seu caminho será exibido." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Leia os resultados do REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Leia a entrada" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5435,13 +5435,13 @@ msgstr "" " ponto flutuante. Esta é a entrada ausente da primeira visualização de " "pseudocódigo." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Siga o chamador" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5452,12 +5452,12 @@ msgstr "" "multiplicam a coordenada do bloco por 30; adicionando {ph0} (20) indica a " "posição do ecrã do tijolo." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Leia as constantes referenciadas" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5467,12 +5467,12 @@ msgstr "" "os valores reais; a ordem de instrução informa ao agente como eles são " "usados." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Escrever e verificar a função recuperada" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5483,7 +5483,7 @@ msgstr "" "-500, 0 e 500 antes da conversão de inteiros. O cálculo coloca o centro da " "tela no centro do campo estéreo." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5496,21 +5496,21 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" "{ph0}Ver o inquérito completo e a comparação entre a montagem e a c{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Experimente com seu próprio binário" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5524,7 +5524,7 @@ msgstr "" " para investigar. Perguntas iniciais úteis incluem \"como este arquivo é " "analisado?\"ou\" qual função lida com esta ação do menu?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5533,13 +5533,13 @@ msgstr "" "Se já souber o nome ou endereço de uma função, pode consultá-la a partir do " "terminal. Para uma instalação Ghidra configurada:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Análise de funções" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5553,7 +5553,7 @@ msgstr "" "fecha sua sessão. As consultas MCP do seu agente reutilizam o binário " "importado enquanto essa sessão está aberta." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5577,50 +5577,50 @@ msgstr "" "Recupere um cálculo nativo com REA: inspecione as instruções, siga um " "chamador, leia constantes e verifique c reconstruído." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Análise de programas de código de máquina" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Copiar exemplo de pedido" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Análise da função de cópia" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Configurar REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5628,7 +5628,7 @@ msgstr "{ph0}Configurar REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5636,7 +5636,7 @@ msgstr "{ph0}Jogo de dinossauros{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5644,7 +5644,7 @@ msgstr "{ph0}Calculadora{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5652,25 +5652,25 @@ msgstr "{ph0}Experimente REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Aprofunde-se{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Engenharia reversa, com seu agente de codificação" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Descubra como{ph0}o software funciona." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Copie este prompt para seu agente de programação:" @@ -5683,33 +5683,33 @@ msgstr "Copie este prompt para seu agente de programação:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}O seu agente de codificação" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Copiar" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Ou execute este comando no terminal:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Revise e aprove as alterações propostas. Depois, reinicie seu agente." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5717,7 +5717,7 @@ msgstr "{ph0}01{ph1} Descodificar ramificações" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5725,7 +5725,7 @@ msgstr "{ph0}02{ph1} Rastrear chamadas" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5735,20 +5735,20 @@ msgstr "{ph0}03{ph1} Recuperar a regra" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Original x64 · instruções seleccionadas{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * que ramo?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5758,29 +5758,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Dois saltos para o mesmo lugar. Que operadores são " "estes?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Procure os IDs do comando e, em seguida, rotule a ramificação." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Dividir ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Multiplicar ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · O que fazem as funções chamadas?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5790,24 +5790,24 @@ msgstr "" "\"100 é claro. As chamadas são apenas endereços. {ph0}Qual deles divide? Que" " valor entra?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Inspecione as funções auxiliares e rastreie os valores armazenados." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Dividir" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * Qual é a regra?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5817,19 +5817,19 @@ msgstr "" "\"Este caminho multiplica-se pela outra entrada. Então {ph0}10% significa " "10% de 200{ph1} depois de +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Nomeie os operandos e verifique os dois caminhos do operador." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Raciocínio ilustrativo de peritos" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5847,21 +5847,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Exemplo de alerta * Calculadora" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Exemplo de resposta * com base nas conclusões" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5869,67 +5869,67 @@ msgid "" msgstr "" "Depois de+, o botão % leva {ph0}uma percentagem do primeiro número.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "O REA fornece" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Instruções do manipulador, código descompilado e chamadas." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Seu agente explica" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Qual ramificação se aplica, o que calcula e como reconstruí-la." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Exemplo 01 * jogo de dinossauros de Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Por que o dinossauro fica mais rápido?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Jogar" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Pular ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Reiniciar" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Velocidade" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Use a regra de aceleração recuperada" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Regra Original: comece em 6, depois aumente para 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5942,7 +5942,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5956,7 +5956,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -5964,12 +5964,12 @@ msgstr "" "Alvo inspeccionado: {ph0}edição de navegador derivada do Chromium da " "wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Abrir o laboratório de velocidade" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "O que cada parte faz" @@ -5980,7 +5980,7 @@ msgstr "O que cada parte faz" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5996,7 +5996,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6013,7 +6013,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6023,13 +6023,13 @@ msgstr "" "{ph0}03 * Você{ph1}{ph2}Alterar a velocidade e jogar{ph3}{ph4}Experimente a " "aceleração original e escolha o seu próprio ritmo.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Veja o script, verificações e como tentar a análise" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6039,7 +6039,7 @@ msgstr "" "O REA inspecionou a edição do navegador HTTP por meio de uma conexão de " "depuração local e retornou {ph0}, incluindo a sua fonte e digestão." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6053,7 +6053,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6070,7 +6070,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6088,7 +6088,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6097,34 +6097,34 @@ msgstr "" "{ph0}Código de velocidade inspeccionado{ph1} · {ph2} Chromium autores * " "licença BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Exemplo 02 * Calculadora Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Recrie o botão % da calculadora." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Redefinir" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% de 200 = 20. Então 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Ilustração interactiva da regra das percentagens inspeccionadas." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6136,7 +6136,7 @@ msgstr "Para este exemplo, {ph0} e {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6148,7 +6148,7 @@ msgstr "" "Recupere as regras depois de + E7X, em seguida, construir uma pequena " "calculadora que usa ambos.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Com +" @@ -6156,13 +6156,13 @@ msgstr "Com +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Pegue 10% do primeiro número.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Com a ×" @@ -6170,13 +6170,13 @@ msgstr "Com a ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Transformar 10% em 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Do aplicativo instalado para um botão % funcional" @@ -6188,7 +6188,7 @@ msgstr "Do aplicativo instalado para um botão % funcional" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6205,7 +6205,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6217,12 +6217,12 @@ msgstr "" "regras{ph3}{ph4}Verifique o ramo com a fonte da Microsoft e, em seguida, " "tente + e elimi acima.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Veja o código real e como a resposta foi verificada" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6243,7 +6243,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6253,17 +6253,17 @@ msgstr "" "{ph0}Percentagem de execução{ph1} · {ph2}Casos de teste da Microsoft{ph3} · " "{ph4}Guia de configuração nativo{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Sua primeira investigação" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Tente REA em um pequeno aplicativo." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6272,17 +6272,17 @@ msgstr "" "Baixe nosso exemplo de notas, Rastreie sua exportação CSV e verifique uma " "entrada alterada." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Experimente o exemplo guiado" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Programas de código de máquina" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6291,17 +6291,17 @@ msgstr "" "Inspecione funções, strings, referências e relações de chamada de função em " "executáveis e bibliotecas." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Análise do Guia de programas de código de máquina" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6310,17 +6310,17 @@ msgstr "" "Mapeie módulos, rotas, IPC e dependências nativas de uma pasta de aplicativo" " ou arquivo ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Fluxos de trabalho da aplicação" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Atividade do navegador e do tempo de execução" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6329,12 +6329,12 @@ msgstr "" "Capture a atividade selecionada do navegador ou do processo e compare os " "resultados entre as execuções." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Guia de observação do navegador" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Alguma dúvida?" @@ -6354,27 +6354,27 @@ msgstr "" " seu agente de codificação. Siga guias claros e experimente exemplos " "interativos com REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Copiar o aviso de instalação do REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Comando Copiar configuração" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Siga a análise manual da calculadora" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Pergunta percentual da calculadora de cópia" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6383,27 +6383,27 @@ msgstr "" "Mini-jogo de dinossauros. Use o botão de salto ou pressione espaço enquanto " "o jogo está focado." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Copie o alerta da análise do dinossauro" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Escolha o cálculo" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Cópia Calculadora análise prompt" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -6412,25 +6412,25 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Casa{ph1} / {ph2}Vitrines{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Estudo de caso · autenticador Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Como é que um autenticador{ph0}gerar um código de login?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6440,17 +6440,17 @@ msgstr "" "cálculo em um APK Android, em seguida, reconstruí-lo com um relógio que você" " pode controlar." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * lançamento oficial APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Ver Aegis em GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "De um APK a um código que pode reproduzir" @@ -6461,7 +6461,7 @@ msgstr "De um APK a um código que pode reproduzir" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6479,7 +6479,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6496,7 +6496,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6508,14 +6508,14 @@ msgstr "" "código.{ph3}{ph4}Uma nova demonstração do navegador reproduz a regra e " "verifica-a em relação a casos de referência públicos.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Neste estudo de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6523,7 +6523,7 @@ msgstr "{ph0}Pergunte ao seu agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6531,7 +6531,7 @@ msgstr "{ph0}Experimente o gerador de código{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6539,7 +6539,7 @@ msgstr "{ph0}Encontre o código com REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6547,7 +6547,7 @@ msgstr "{ph0}Leia o cálculo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6555,20 +6555,20 @@ msgstr "{ph0}Verificar a reconstrução{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Inspecione você mesmo o APK{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Pergunte ao seu agente" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6586,21 +6586,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}O seu agente de codificação" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Copiar" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6610,14 +6610,14 @@ msgstr "" "Um exemplo de prompt para o APK baixado, com a análise Android do REA " "configurada. {ph0}Obter o APK e a configuração de análise{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Experimente o gerador de código" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6629,33 +6629,33 @@ msgstr "" "o número do bloco com a chave da conta para gerar um código. A mesma chave e" " bloco produzem o mesmo código." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Mova o relógio em 60 segundos" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Tempo" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "segundos" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Nosso exemplo de relógio ajustável" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "Bloco de 30 segundos" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Bloco" @@ -6664,35 +6664,35 @@ msgstr "Bloco" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 segundos{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Código gerado" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Chave de conta + bloco7 seis dígitos" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Tempo de exemplo, em segundos" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 segundos" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 segundos" @@ -6701,7 +6701,7 @@ msgstr "60 segundos" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6713,7 +6713,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6723,7 +6723,7 @@ msgstr "" "A chave é fixa, pública {ph0}Dados do ensaio RFC 6238{ph1}. A demonstração " "implementa o cálculo recuperado do APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6732,18 +6732,18 @@ msgstr "" "O diagrama mostra o resultado em 59 segundos. Habilite o JavaScript para " "alterar o relógio." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Encontre o código com REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Reduzir o APK a três classes" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6754,14 +6754,14 @@ msgstr "" "progresso e às contas importadas. TOTP significa uma senha de uso único " "baseada no tempo." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Ligue o gerador ao ecrã da aplicação" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6773,7 +6773,7 @@ msgstr "" "chamando {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6783,14 +6783,14 @@ msgstr "" "As solicitações mostram um caminho de entrada reduzido. Os nomes das classes" " de resultado omitem o comum {ph0} prefixo." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Leia o cálculo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6805,7 +6805,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6813,7 +6813,7 @@ msgstr "{ph0}01{ph1} Bloco de tempo" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6821,7 +6821,7 @@ msgstr "{ph0}02{ph1} Chave + bloco" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6829,7 +6829,7 @@ msgstr "{ph0}03{ph1} Seis dígitos" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6841,7 +6841,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6855,7 +6855,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6870,7 +6870,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6881,7 +6881,7 @@ msgstr "" "exibição. O painel da direita é um Resumo Explicativo. {ph0} O código Aegis " "é GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Dentro do gerador" @@ -6890,7 +6890,7 @@ msgstr "Dentro do gerador" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6900,7 +6900,7 @@ msgstr "" "O APK lançado coloca {ph0} em {ph1}. REA segue a chamada de {ph2} e retorna" " este corpo; a fonte original chama o ajudante {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6917,20 +6917,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Comparar com a fonte de lançamento correspondente{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Verificar a reconstrução" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6943,29 +6943,29 @@ msgstr "" "independente em {ph0}133 casos de ensaio{ph1}, incluindo limites de bloqueio" " de tempo e códigos que começam com zero." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Tempo de exemplo" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Código de seis dígitos" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 segundos" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 segundos" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6975,17 +6975,17 @@ msgstr "" "O gerador também corresponde aos seis casos de referência SHA-1 publicados " "em {ph0}RFC 6238{ph1}. Verifique a implementação do navegador contra eles:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Executar verificações de referência" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Leia o cálculo da demonstração" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6994,7 +6994,7 @@ msgstr "" "Os casos de referência utilizam oito dígitos. O controlo verifica igualmente" " os seus resultados de seis dígitos." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7003,14 +7003,14 @@ msgstr "" "A verificação executa métodos Java extraídos e a nova demonstração. O " "Android APK foi inspeccionado estaticamente." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Inspecione você mesmo o APK" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7022,7 +7022,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7032,18 +7032,18 @@ msgstr "" "A análise do Android precisa de um JDK 17 completo ou posterior. Selecione-o" " com {ph0} ou {ph1}. Este caso utilizou o JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Aponte REA para o ficheiro do fornecedor e inspecione o APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7055,7 +7055,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7065,7 +7065,7 @@ msgstr "" "Uma próxima pergunta: {ph0}o que acontece quando uma conta utiliza oito " "dígitos ou um intervalo de tempo diferente?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Fontes" @@ -7081,7 +7081,7 @@ msgstr "Fontes" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7095,7 +7095,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7103,7 +7103,7 @@ msgstr "" "{ph0}RFC 6238 casos de referência{ph1} · {ph2}Dados do teste de " "demonstração{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7128,37 +7128,37 @@ msgstr "" "Inspecione o Aegis Android APK com REA, recupere seu cálculo de código de " "login de seis dígitos e tente uma reconstrução com um relógio ajustável." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK estudo de caso" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Copiar o prompt de exemplo Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Siga o cálculo do código de login" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Copiar comando de inspecção APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -7167,26 +7167,26 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Casa{ph1} / {ph2}Vitrines{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Estudo de caso * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Encontre a bandeira em{ph0}um binário CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7197,18 +7197,18 @@ msgstr "" "suas regras em equações e encontrar uma entrada que faça o programa original" " imprimir {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" "verificador Mascarado da bandeira dos quadrados * fácil * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Veja o desafio original" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "De um binário para uma resposta verificada" @@ -7219,7 +7219,7 @@ msgstr "De um binário para uma resposta verificada" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7237,7 +7237,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7255,7 +7255,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7267,21 +7267,21 @@ msgstr "" "Correct!{ph3}{ph4}Um script Python resolve as equações. REA captura o " "programa original aceitando o resultado.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" "O desafio é de joseph, publicado no repositório oficial da DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Neste estudo de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7289,7 +7289,7 @@ msgstr "{ph0}Encontrar o código de verificação{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7297,7 +7297,7 @@ msgstr "{ph0}Leia uma máscara{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7305,7 +7305,7 @@ msgstr "{ph0}Montagem em código legível{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7313,7 +7313,7 @@ msgstr "{ph0}Resolver as equações{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7321,20 +7321,20 @@ msgstr "{ph0}Verifique a resposta{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Experimente você mesmo{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Encontrar o código de verificação" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7352,17 +7352,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}O seu agente de codificação" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Copiar" @@ -7373,7 +7373,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7385,7 +7385,7 @@ msgstr "" "sinalizador. Explique como funcionam as verificações e, em seguida, " "verifique a resposta com o programa original.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7394,12 +7394,12 @@ msgstr "" "Um exemplo de alerta, com o desafio baixado disponível localmente e uma " "análise do provedor de programas de código de máquina conectado." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Siga o prompt de entrada para sua função" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7408,14 +7408,14 @@ msgstr "" "A referência dá ao Agente um local para investigar, mesmo que os nomes das " "funções originais do executável tenham sido removidos." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Leia o verificador e seus dois ajudantes" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7428,7 +7428,7 @@ msgstr "" " com um número memorizado. Sua {ph0}- passos byte através {ph1} bytes dar 26" " máscaras." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7438,12 +7438,12 @@ msgstr "" "destino local é encurtado para exibição; os endereços referem-se à imagem " "importada de REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Uma verificação revela um carácter" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7456,14 +7456,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" "A sétima verificação selecciona apenas uma posição. {ph0}Figura aberta{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Leia a máscara e seu alvo a partir do binário" @@ -7472,7 +7472,7 @@ msgstr "Leia a máscara e seu alvo a partir do binário" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7484,12 +7484,12 @@ msgstr "" " {ph1} meios -21. O alvo é um número inteiro little-endian. Juntos, esses " "bytes informam ao agente que {ph2}, então esse personagem é {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Das instruções a um controlo legível" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7500,7 +7500,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7508,7 +7508,7 @@ msgstr "{ph0}01{ph1} Comece" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7516,7 +7516,7 @@ msgstr "{ph0}02{ph1} Seleccionar" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7524,7 +7524,7 @@ msgstr "{ph0}03{ph1} Adicionar" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7532,18 +7532,18 @@ msgstr "{ph0}04{ph1} Adiantamento" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Comparar" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * instruções originais selecionadas" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "C · resumo de uma verificação legível" @@ -7551,7 +7551,7 @@ msgstr "C · resumo de uma verificação legível" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7559,7 +7559,7 @@ msgstr "{ph0}01 * Comece em zero.{ph1} {ph2} detém a soma corrente." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7571,7 +7571,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7583,7 +7583,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7597,7 +7597,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7607,7 +7607,7 @@ msgstr "" "{ph0}05 * comparar com o alvo armazenado.{ph1} O chamador recebe a soma em " "{ph2}. Uma incompatibilidade salta para {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7616,12 +7616,12 @@ msgstr "" "As instruções vêm do Auxiliar de Somação e do seu interlocutor. O C é um " "Resumo Explicativo com nomes descritivos e um loop de 36 células achatado." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Resolva as 26 equações" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7633,13 +7633,13 @@ msgstr "" "seleções sobrepostas fornecem equações que um pequeno script Python pode " "resolver juntos." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * trecho do solver" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7653,19 +7653,19 @@ msgstr "" "com letras, dígitos, sublinhados e chaves. O download completo inclui todas " "as 26 Máscaras e alvos." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Baixe o solucionador completo" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Verifique a resposta com o programa original" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7677,47 +7677,47 @@ msgstr "" "sinalizador resolvido. Alterar um carácter seleccionado de {ph0} para {ph1} " "faz a primeira soma 1440 em vez de 1441, e o programa rejeita-a." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Entrada" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Resultados observados" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Código de saída" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Bandeira do Solver" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Um caractere alterado" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Mostrar o sinalizador recuperado e a saída capturada" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * saída original do programa" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Copiar bandeira" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7727,12 +7727,12 @@ msgstr "" "Desafio publicados pelos organizadores, verificados após a resolução do " "binário." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Fonte, identidade do alvo e dados de análise" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7743,7 +7743,7 @@ msgstr "" " REA 4.1.0 com Ghidra 12.1.4 em Linux x64. O binário é um Elf x86-64 " "despojado, 15.248 bytes." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7767,7 +7767,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7777,12 +7777,12 @@ msgstr "" "{ph0}Compare com a fonte dos organizadores{ph1} · {ph2}Metadados do Desafio " "e sinalizador{ph3} · {ph4} REA notas de prova{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Experimente você mesmo" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7791,13 +7791,13 @@ msgstr "" "Baixe o desafio original e o solucionador em uma pasta. Use o prompt acima " "para investigar com seu agente ou execute o script incluído." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * resolver e executar" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7809,7 +7809,7 @@ msgstr "" "Resolvendo necessidades Python e {ph0}. A execução do executável original " "Precisa de Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Configurar REA com o seu agente de codificação" @@ -7831,27 +7831,27 @@ msgstr "" "DownUnderCTF. Encontre as funções de verificação, extraia as máscaras e " "compare uma bandeira recuperada com o programa original." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Estudo de caso CTF flag-checker" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Copiar o prompt de exemplo do CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "Equação da máscara CTF; rolar horizontalmente em telas menores" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7862,42 +7862,42 @@ msgstr "" " 14. Só essa célula contribui para a soma. Seu código de caracteres exigido " "é 55, o que significa que o caractere é 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Siga a verificação do CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Copiar montagem CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Cópia de verificação CTF legível" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Copiar trecho do solucionador CTF" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Copiar bandeira recuperada" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Copiar comandos do solucionador CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -7906,25 +7906,25 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Casa{ph1} / {ph2}Vitrines{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Estudo de caso * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "Reconstrução DX-Ball {ph0}do seu executável." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7933,14 +7933,14 @@ msgstr "" "O objetivo é uma versão c sustentável do jogo Windows de 1996. REA ajuda o " "agente a inspecionar o original, uma função de cada vez." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7952,14 +7952,14 @@ msgstr "" "chamadores e as leituras dos dados; o projecto de reconstrução implementa e " "testa o resultado. {ph0}Figura aberta{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Neste estudo de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7967,7 +7967,7 @@ msgstr "{ph0}O projecto{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7975,7 +7975,7 @@ msgstr "{ph0}Som pan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7983,23 +7983,23 @@ msgstr "{ph0}Verificando o resultado{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Continuar o trabalho{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "funções C mantidas" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "comparações com o código original" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "funções com correspondência de bytes compilados" @@ -8010,7 +8010,7 @@ msgstr "funções com correspondência de bytes compilados" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8020,12 +8020,12 @@ msgstr "" "Ponto de verificação do projeto: 7 de outubro de 2026. {ph0}Razão de " "progresso{ph1} · {ph2}Cobertura do ensaio{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "O projecto até agora" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8040,12 +8040,12 @@ msgstr "" "jogo jogável continua com física de bola e remo, manipulação de power-up e " "integração Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Determinação do cálculo da posição sonora esquerda/direita" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8064,17 +8064,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}O seu agente de codificação" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Copiar" @@ -8085,7 +8085,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8096,7 +8096,7 @@ msgstr "" "posicionamento do som estéreo. Explique o cálculo e mostre o " "código.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8107,7 +8107,7 @@ msgstr "" "local disponível. A investigação que se segue mostra as questões REA e os " "elementos de prova subjacentes à resposta." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8121,7 +8121,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8135,12 +8135,12 @@ msgstr "" "e operações de ponto flutuante. Essa discrepância deu ao Agente uma razão " "concreta para continuar a investigar." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "A primeira vista decompiladora" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8149,18 +8149,18 @@ msgstr "" "A saída mostra uma chamada de conversão. A leitura das instruções abaixo " "revela a entrada e o cálculo que alimentam essa chamada." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Três perguntas respondidas através de REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Recuperar a entrada em falta" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8171,14 +8171,14 @@ msgstr "" "chamadores. Aqui, {ph0} expõe a entrada inteira ausente da visualização " "decompiler." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Siga o chamador para entender a entrada" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8189,12 +8189,12 @@ msgstr "" "instruções anteriores {ph0} por 30; adicionar 20 dá a coordenada da tela do " "tijolo, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Ler os valores por detrás dos endereços de memória" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8203,12 +8203,12 @@ msgstr "" "Os bytes retornados estabelecem as duas constantes aritméticas e a escala " "pan inicial. O agente agora tem os valores necessários para a expressão C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Das conclusões do REA até C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8219,7 +8219,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8227,7 +8227,7 @@ msgstr "{ph0}01{ph1} Entrada" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8235,7 +8235,7 @@ msgstr "{ph0}02{ph1} Multiplicar" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8243,7 +8243,7 @@ msgstr "{ph0}03{ph1} Subtrair" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8251,18 +8251,18 @@ msgstr "{ph0}04{ph1} Escala" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Retorno" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Original x86 * excerto" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Reconstrução C" @@ -8272,7 +8272,7 @@ msgstr "Reconstrução C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8292,7 +8292,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8308,7 +8308,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8326,7 +8326,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8343,7 +8343,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8355,7 +8355,7 @@ msgstr "" " identificado nos resultados do receptor do REA. O C lança o resultado para " "{ph4}; comparações originais-x86 verificam o valor devolvido." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8366,23 +8366,23 @@ msgstr "" "retorno. A lista completa abaixo também inclui os armazenamentos " "intermediários e a configuração e limpeza de funções." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Conjunto completo e elementos de prova de apoio" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA resultado · 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "O que o chamador fornece" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8392,54 +8392,54 @@ msgstr "" "A função brick-hit em {ph0} dimensiona sua coordenada de bloco em 30, " "adiciona 20 e, em seguida, empurra-a antes da chamada:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "O que os dados indicam" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA Byte lê, decodificado como Little-Endian duplica" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Endereço" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Valor" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Usado para" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Primeira multiplicação" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Subtração" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} inicialmente" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Escala armazenada da bandeja" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8455,7 +8455,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8465,12 +8465,12 @@ msgstr "" "{ph0}Fonte mantida{ph1} · {ph2}Notas de investigação e referências de " "elementos de prova{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Verificação da função recuperada" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8479,12 +8479,12 @@ msgstr "" "A função recuperada passa por duas verificações: seus valores de retorno " "correspondem ao original e seus bytes compilados correspondem ao executável." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 casos de comportamento" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8495,12 +8495,12 @@ msgstr "" "com o C mantido.cobrem todas as posições inteiras de 0 a 640 em cinco " "escalas pan: 0, 0,5, 1, 20 e -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 bytes correspondentes" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8511,7 +8511,7 @@ msgstr "" "do compilador corresponde à função completa após aplicar as relocações " "revisadas e verificar as constantes referenciadas." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8526,18 +8526,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Leia os detalhes do replay do compilador{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Prosseguir o inquérito" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8549,7 +8549,7 @@ msgstr "" "recuperar o seu estado e dependências e, em seguida, comparar a " "implementação com a original." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8559,7 +8559,7 @@ msgstr "" "configuração do projeto DX-Ball e forneça seu alvo original correspondente. " "Em seguida, execute:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "No checkout DX-Ball" @@ -8568,7 +8568,7 @@ msgstr "No checkout DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8582,7 +8582,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8598,7 +8598,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8623,7 +8623,7 @@ msgstr "" "mantido, testes originais-x86 e correspondência de bytes de função " "compilados." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8631,7 +8631,7 @@ msgstr "" "DX-Ball sound-Pan investigation; deslocar horizontalmente em ecrãs mais " "pequenos" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8646,70 +8646,70 @@ msgstr "" "é verificado independentemente em relação ao x86 original em 3.205 casos e " "por repetição do compilador VC4.0 correspondente a 63 bytes." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Estudo de caso de reconstrução DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Copiar exemplo de pedido" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Seguir o cálculo da posição sonora esquerda/direita" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Copiar o excerto original da montagem" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Função de cópia de som-pan" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Copiar o conjunto completo da bandeja de som" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Copiar comando de análise DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Casa{ph1} / Vitrines" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA estudos de caso." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8718,17 +8718,17 @@ msgstr "" "Android, Jogos, Electron e um desafio CTF, com código, números e resultados " "verificados." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * análise APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Como um autenticador gera um código de login" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8739,22 +8739,22 @@ msgstr "" "Rastreie os métodos de geração com REA e, em seguida, mova um relógio de " "demonstração para ver por que o código muda a cada 30 segundos." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Leia o estudo de caso do Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Análise de programas de código de máquina" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Resolver um verificador de bandeira CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8765,22 +8765,22 @@ msgstr "" "verificação, transforme Máscaras e somas em equações e verifique o " "sinalizador resolvido com o programa original." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Leia o estudo de caso do CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Nativo * Reconstrução" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball cálculo da posição sonora esquerda/direita" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8792,22 +8792,22 @@ msgstr "" "numéricas conduzem a uma pequena função C, verificada em relação ao " "comportamento original e a todos os 63 bytes compilados." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Leia o estudo de caso DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * rastreio de características" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Como Notion copia texto e HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8819,22 +8819,22 @@ msgstr "" " veja como um pequeno marcador HTML mantém os dados de bloco ricos " "conectados a uma cópia." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Leia o estudo de caso Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 dos * reconstrução" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Como TH04 aponta um anel de balas" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8845,17 +8845,17 @@ msgstr "" "operações de multiplicação, divisão e coordenação com C++ legível e veja " "como elas produzem um anel voltado para o jogador." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Leia o estudo de caso TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Guias passo a passo" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8865,7 +8865,7 @@ msgstr "" "solicitação do navegador. Cada um começa com um objectivo imediato e um " "objectivo Concreto." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Leia os guias" @@ -8885,12 +8885,12 @@ msgstr "" " autenticador Android, DX-Ball , Notion , TH04 e um verificador de " "sinalizador DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -8899,25 +8899,25 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Casa{ph1} / {ph2}Vitrines{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Estudo de caso * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Como cópias Notion{ph0}texto e HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8927,12 +8927,12 @@ msgstr "" "através do processo de pré-carregamento e principal, até o gravador da área " "de transferência do Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 · JavaScript * REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "A ponte dentro do pacote de desktop do Notion" @@ -8944,7 +8944,7 @@ msgstr "A ponte dentro do pacote de desktop do Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8961,7 +8961,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8978,7 +8978,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8995,7 +8995,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9006,13 +9006,13 @@ msgstr "" "Electron escreve o texto fornecido e HTML.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Um canal une os dois lados: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9022,14 +9022,14 @@ msgstr "" "A resolução dos invólucros revela as chamadas Electron por trás desses " "nomes." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Neste estudo de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9037,7 +9037,7 @@ msgstr "{ph0}Siga a Ponte da área de transferência{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9045,19 +9045,19 @@ msgstr "{ph0}Manter a estrutura de um bloco{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Mais exemplos e fontes{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Para onde vai a operação de cópia?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9076,17 +9076,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}O seu agente de codificação" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Copiar" @@ -9097,7 +9097,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9108,7 +9108,7 @@ msgstr "" "área de transferência do sistema. Mostre o código em cada " "etapa.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9117,12 +9117,12 @@ msgstr "" "Um exemplo de prompt com o pacote de aplicativos locais do Notion disponível" " para o seu agente de codificação." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA descobre por onde começar a ler" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9133,13 +9133,13 @@ msgstr "" "chamada que envia uma solicitação IPC. Ambas as descobertas vêm com " "intervalos de origem no pacote reduzido:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA constatações intesti dois lugares a abrir" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9153,7 +9153,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9167,12 +9167,12 @@ msgstr "" "agente algo preciso para procurar no pacote principal. Os quatro trechos " "abaixo mostram a rota que liga." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Quatro pequenos pedaços de código" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9181,13 +9181,13 @@ msgstr "" "Simplificado a partir do pacote JavaScript, com nomes de variáveis legíveis." " Os membros independentes são omitidos." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Comece na API exposta à página" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9197,13 +9197,13 @@ msgstr "" "Este membro fornece o nome do canal. A aplicação do {ph0} diz-nos como o " "pedido sai do processo da página." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Resolver o wrapper da pré-carga" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9214,14 +9214,14 @@ msgstr "" "resposta do Electron. Podemos agora procurar {ph0} do lado do processo " "principal." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Verificar como o recetor está registado" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9231,12 +9231,12 @@ msgstr "" "O processo principal utiliza outro invólucro. Sua {ph0} o método regista uma" " {ph1} receptor para esse canal." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Encontre a gravação e a verificação do remetente" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9247,13 +9247,13 @@ msgstr "" "dados fornecidos para a API da área de transferência do Electron. O canal e " "os dois wrappers resolvidos conectam o método exposto a esta chamada." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Como é que um bloco copiado mantém a sua estrutura?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9263,27 +9263,27 @@ msgstr "" "O editor web do Notion envia texto e HTML através de {ph0}. Ele mantém os " "dados do bloco localmente e coloca um ID no HTML copiado para conectá-los." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Links HTML para dados de bloco salvos" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Leia o ID HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Encontre o mesmo ID local" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Restaurar dados do bloco Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9293,7 +9293,7 @@ msgstr "" " quando os IDs correspondem; uma entrada obsoleta retorna apenas texto e " "HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9302,24 +9302,24 @@ msgstr "" "Ao colar, Notion procura o ID HTML e verifica-o em relação à cópia salva. Os" " IDs correspondentes restauram os dados do bloco." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Formato da área de transferência gravado a partir de ativos da web " "armazenados em cache em 13 de julho de 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Mais exemplos e fontes" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Outro exemplo: tabelas de remarcação" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9328,12 +9328,12 @@ msgstr "" "Notion analisa Markdown em dados de bloco. Este exemplo mostra como uma " "tabela se torna cabeçalho e linhas de dados." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Uma tabela através do analisador Markdown do Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9342,13 +9342,13 @@ msgstr "" "Saída gravada de um analisador Markdown extraído. A tabela torna-se linhas e" " células." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Outro caminho: a conexão SQLite offline" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9362,7 +9362,7 @@ msgstr "" " processo utilitário SQLite. Os lotes de declaração subsequentes e os " "resultados percorrem esse Porto." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9372,7 +9372,7 @@ msgstr "" "executado e por que o rastreamento apenas da solicitação IPC inicial perde a" " conversa posterior." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Fontes e como ler os excertos" @@ -9380,7 +9380,7 @@ msgstr "Fontes e como ler os excertos" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9398,7 +9398,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9415,7 +9415,7 @@ msgstr "" "sondas em vez de uma sessão de interface do usuário da área de trabalho " "capturada." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9430,7 +9430,7 @@ msgstr "" "Pacote." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9448,7 +9448,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9462,7 +9462,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9488,52 +9488,52 @@ msgstr "" "Electron, invólucros IPC e processo principal, com trechos de código curtos " "e uma olhada em seu Rico formato de área de transferência." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron estudo de caso" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Copiar o pedido de análise Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Copiar trecho de pré-carga Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Copiar Notion invocar o excerto do Invólucro" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Copiar o excerto do invólucro do manipulador Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Cópia Notion clipboard receiver excerto" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Restaurando dados ricos da área de transferência na pasta" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Voltar ao topo" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -9542,25 +9542,25 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Casa{ph1} / {ph2}Vitrines{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Estudo de caso · Touhou 4: História da Lotus Land" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "Reconstrução de TH04{ph0}padrões de bala." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9570,17 +9570,17 @@ msgstr "" "inspecionar a função DOS original e, em seguida, siga suas instruções em " "C++legível." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 · 16-bit DOS * C++ e montagem" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Ver a reconstrução TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Das instruções originais à fonte verificada" @@ -9591,7 +9591,7 @@ msgstr "Das instruções originais à fonte verificada" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9607,7 +9607,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9625,7 +9625,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9641,7 +9641,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9653,7 +9653,7 @@ msgstr "" " verificações do compilador gravadas cobrem o código de geração de " "marcadores que contém este auxiliar.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9662,14 +9662,14 @@ msgstr "" "REA retorna o código original e sua evidência de análise. O projeto TH04 " "fornece as verificações de origem e compilador mantidas." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Neste estudo de caso" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9677,7 +9677,7 @@ msgstr "{ph0}O anel bala{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9685,7 +9685,7 @@ msgstr "{ph0}O que REA retorna{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9693,7 +9693,7 @@ msgstr "{ph0}Montagem Em C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9701,18 +9701,18 @@ msgstr "{ph0}Verificação da fonte{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}O projecto completo{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Como um anel visa o jogador" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9731,16 +9731,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}O seu agente de codificação" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Copiar" @@ -9751,7 +9751,7 @@ msgstr "Copiar" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9761,7 +9761,7 @@ msgstr "" "{ph0}›{ph1}{ph2}Use REA para descobrir como TH04 cria um anel de balas e o " "aponta para o jogador. Explique o cálculo e mostre o código.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9771,7 +9771,7 @@ msgstr "" " disponíveis localmente." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9785,7 +9785,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9795,12 +9795,12 @@ msgstr "" "Uma ilustração da matemática do ângulo recuperado para a contagem 16, " "direção do jogador 40 e rotação do Modelo 0. {ph0}Figura aberta{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "O modelo de disparo na fonte recuperada" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly's ring attack * trecho da fonte" @@ -9809,7 +9809,7 @@ msgstr "Elly's ring attack * trecho da fonte" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9819,13 +9819,13 @@ msgstr "" "Essas linhas selecionam o padrão antes da dificuldade e do ajuste de " "desempenho. {ph0}Leia a fonte do ataque{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "O que REA retorna" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9837,12 +9837,12 @@ msgstr "" " bala. REA retorna suas instruções, pseudocódigo e referências. Três partes" " desse resultado explicam o padrão." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Verifique a imagem do DOS antes de ler seu código" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9851,7 +9851,7 @@ msgstr "" "A verificação vincula o código carregado e os registros de realocação ao " "executável fornecido. O caminho acima é encurtado para exibição." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Leia o anel multiplicar e dividir" @@ -9859,7 +9859,7 @@ msgstr "Leia o anel multiplicar e dividir" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9871,12 +9871,12 @@ msgstr "" "então a divisão usa a contagem lida de {ph1}. Os nomes de origem mantidos " "nesse campo {ph2}. A sequência completa é apresentada abaixo." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Encontre onde o padrão gira em direção ao jogador" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9889,12 +9889,12 @@ msgstr "" "do anel. Os nomes de origem tornam esses endereços legíveis; REA permite que" " o agente verifique as operações originais por trás deles." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Da montagem ao C++legível" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9907,7 +9907,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9915,7 +9915,7 @@ msgstr "{ph0}01{ph1} Índice" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9923,7 +9923,7 @@ msgstr "{ph0}02{ph1} Espaço" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9931,7 +9931,7 @@ msgstr "{ph0}03{ph1} Objectivo" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9939,18 +9939,18 @@ msgstr "{ph0}04{ph1} Rodar" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Loja" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * instruções originais de 16 bits" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "C++ legível · resumo do anel direcionado" @@ -9958,7 +9958,7 @@ msgstr "C++ legível · resumo do anel direcionado" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9972,7 +9972,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9988,7 +9988,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10003,7 +10003,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10018,7 +10018,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10032,7 +10032,7 @@ msgstr "" "byte faz. A fonte circundante também converte este ângulo e velocidade em " "velocidade." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10043,7 +10043,7 @@ msgstr "" "armazenamento final. O C++ acima é um resumo legível. As verificações do " "compilador abaixo se aplicam à fonte mantida no projeto vinculado." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Leia o anel mantido e aim fonte" @@ -10060,7 +10060,7 @@ msgstr "Leia o anel mantido e aim fonte" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10070,12 +10070,12 @@ msgstr "" "{ph0}Anel macro{ph1} · {ph2}Alvo e fonte de velocidade{ph3} · " "{ph4}Representação do ângulo{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Verificação da fonte mantida" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10085,12 +10085,12 @@ msgstr "" "marcadores, incluindo este auxiliar, com a sua cadeia de ferramentas Turbo " "C++ 4.0 j fixada." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2.139 bytes correspondentes" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10099,12 +10099,12 @@ msgstr "" "O código compilado de geração de marcadores corresponde a uma seção de 2.139" " bytes do executável original." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Duas construções limpas" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10117,7 +10117,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10125,59 +10125,59 @@ msgstr "" "Gravado em 3 de outubro de 2026. {ph0}Leia as verificações do " "compilador{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Identidade-alvo e âmbito de análise" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Alvo Original" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156.258 bytes, dos MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Entrada auxiliar" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} na imagem carregada de REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Deslocamento do ficheiro Original" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, devolvido por {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Inspecção do Código registado" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 de outubro de 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10188,7 +10188,7 @@ msgstr "" " mapa e a deslocalização sobreposta." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10203,7 +10203,7 @@ msgstr "" " instruções seleccionadas acima situam-se nesses intervalos comunicados." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10220,7 +10220,7 @@ msgstr "" "fixada por seu manifesto de repositório, com proveniência independente de " "despejo intocado ainda aberta." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10231,12 +10231,12 @@ msgstr "" "temporização e o comportamento do hardware PC-98 têm verificações de tempo " "de execução separadas no projecto de reconstrução." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "A reconstrução completa do TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10249,7 +10249,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10261,7 +10261,7 @@ msgstr "{ph0}Explore o repositório TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10277,7 +10277,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10293,7 +10293,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10319,22 +10319,22 @@ msgstr "" "montagem e recuperou C++ para ver como um anel de balas é espaçado e apontou" " para o jogador." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Estudo de caso com padrão de marcadores TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Copiar o prompt de exemplo TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10342,7 +10342,7 @@ msgstr "" "TH04 anéis de bala fixos e apontados; deslocar horizontalmente em ecrãs mais" " pequenos" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10355,27 +10355,27 @@ msgstr "" "quantidade; o primeiro marcador destacado aponta para o jogador. Ambos " "mantêm um espaçamento de 16 unidades de ângulo, ou 22,5 graus." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Copiar modelo de disparo TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Siga o cálculo do anel direcionado TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Copiar o excerto do conjunto TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Cópia legível cálculo do anel destinado" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Voltar ao topo" @@ -10865,597 +10865,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Mesmo espaçamento: 256 16 = 16 unidades angulares = 22,5" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Casos práticos" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Começar" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Guias" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Código-fonte" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Licença MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Participe da comunidade" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Siga no X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * fonte de script seleccionada" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Código-fonte" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Saída esperada do formatador" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Instruções" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Chamador" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Constantes" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Função C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Botão" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API de pré-carregamento" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Ficheiro CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "O seu clique" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Pedido capturado" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Script de exportação" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA resultado * resumo.excerto do ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "Trecho de instrução REA * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "Trecho do chamador REA * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "Resultados do byte REA * interpretados como duplos little-endian" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Excerto c * recuperado" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Apresenta →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Definições seleccionadas a partir do script inspeccionado" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Resumo legível do manipulador %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * instruções originais selecionadas" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "IDs do operador * fonte da Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agente REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA extraterritorial * resultados seleccionados" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA7AGENTE * métodos e chamadores" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * java descompilado selecionado" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Resumo legível * interpretação do agente" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * gerateotp, corpo completo" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Baixar Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Baixar Android analysis provider" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agente REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA extraterritorial * resultados seleccionados" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA7 agente * instruções seleccionadas" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agente REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA7agente * sétima entrada" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Executável Original * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Baixe o desafio original" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Baixar solver" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA resultado * excerto de pseudocódigo" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA7 agente * excerto de instruções" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA extraterritorial * excerto do autor da chamada" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agente REA * dois {ph0} pedidos" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Resultados do byte REA * descodificados como duplos" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Comece com o seu próprio alvo" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Gerar código" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Regra recuperada" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Relógio ajustável" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Binário" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Código de verificação" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Equações" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Correcto!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Executável" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Conclusões do REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Recuperado C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Validação" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Aplicação empacotada" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "API exposta" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Invólucros IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Área de transferência" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Código DOS Original" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Instruções REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Cálculo do ângulo" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Anel bala" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "API da página exposta" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Chamada IPC do renderizador" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Enviado para a área de transferência do sistema" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Salvo localmente por Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Entrada de redução" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Saída do analisador estruturado * excerto" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Analise seu próprio aplicativo" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agente REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA extraterritorial * campos seleccionados" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agente REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA7 agente * excerto de instruções" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Resultado da mesma função * trecho aim" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "C++mantido correspondente" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Macro do anel * ramificação TH04, excerto" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Ângulo e velocidade * excerto da fonte" @@ -11488,7 +11488,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11505,7 +11505,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11526,7 +11526,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11547,7 +11547,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11566,7 +11566,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11579,14 +11579,14 @@ msgstr "" "aprovação. Depois, verifique a instalação.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Reconstrução * {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11597,7 +11597,7 @@ msgstr "" " codificação e revise as alterações propostas." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11606,7 +11606,7 @@ msgstr "Um exemplo fornecido * {ph0} e npm * seu agente de codificação" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11625,7 +11625,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11641,7 +11641,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11660,7 +11660,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11671,7 +11671,7 @@ msgstr "" "{ph7} e escreve o ficheiro.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11686,7 +11686,7 @@ msgstr "{ph0} * linhas 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11699,7 +11699,7 @@ msgstr "" "Mostrar a previsão e o resultado real.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11711,16 +11711,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Você vai precisar {ph0} 22 (22.23.4+), 24 (24.22.1+) ou 26+ (>=26.12.1). npm vem com {ph1}." +"Você vai precisar {ph0} 22 (22.23.4+), 24 (24.22.1+) ou 26+ (>=26.12.1). " +"npm vem com {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11728,20 +11730,20 @@ msgstr "Não tem {ph0}, ou não tem certeza?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Se {ph0} mostrar v22.23.4+, v24.22.1+ ou v26.12.1+, você já pode continuar. Se " -"mostrar uma versão mais antiga ou \"not recognized\" / \"command not " +"Se {ph0} mostrar v22.23.4+, v24.22.1+ ou v26.12.1+, você já pode continuar. " +"Se mostrar uma versão mais antiga ou \"not recognized\" / \"command not " "found\", instale {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11755,7 +11757,7 @@ msgstr "{ph0} * exemplo de excerto da fonte" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11765,9 +11767,9 @@ msgstr "" "{ph0}Abra o exemplo{ph1} · {ph2}Baixar {ph3}{ph4} · {ph5}Baixar {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11775,7 +11777,7 @@ msgstr "{ph0} * fonte de exemplo" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11790,7 +11792,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11807,7 +11809,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11818,7 +11820,7 @@ msgstr "" "{ph3} dão 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11832,7 +11834,7 @@ msgstr "REA * carregado {ph0} * linhas seleccionadas" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11851,7 +11853,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11864,28 +11866,28 @@ msgstr "" "demonstração em que eu possa alterar o horário.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view / {ph0} * membro da API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view / {ph0} * IPC helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "principal/{ph0} * handler helper" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11904,7 +11906,7 @@ msgstr "Alternar para o modo escuro" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11920,18 +11922,18 @@ msgstr "" "agente." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Modelos especializados{ph0}Ensaio" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "A engenharia reversa precisa de um modelo maior?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11940,12 +11942,12 @@ msgstr "" "O que a reconstrução de Touhou sugere sobre modelos gerais, modelos " "especializados e o aprendizado com o retorno do compilador." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Por N0zoM1z0 · 13 de outubro de 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" @@ -11954,38 +11956,38 @@ msgstr "Ir para o conteúdo" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}Página inicial{ph1} / {ph2}Blog{ph3} / Modelos e engenharia reversa" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Ensaio" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "A engenharia reversa precisa de um modelo maior?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Por N0zoM1z0 · 13 de outubro de 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Pontos principais" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11998,7 +12000,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12011,7 +12013,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12024,7 +12026,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12037,7 +12039,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12048,14 +12050,14 @@ msgstr "" " e o custo.{ph1} É isso que quero medir para o fluxo de trabalho completo do" " agente de IA." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Neste artigo" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12063,7 +12065,7 @@ msgstr "{ph0}O que os modelos mais capazes mudaram{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12071,7 +12073,7 @@ msgstr "{ph0}Por que se especializar?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12079,7 +12081,7 @@ msgstr "{ph0}Onde essa experiência deve ser armazenada?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12087,7 +12089,7 @@ msgstr "{ph0}Aprendendo o próximo experimento útil{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12095,7 +12097,7 @@ msgstr "{ph0}Engenharia reversa e aprendizagem por reforço{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12103,7 +12105,7 @@ msgstr "{ph0}Quando o verificador está errado{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12111,18 +12113,18 @@ msgstr "{ph0}Uma comparação que vale a pena fazer{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Que tipo de agente de IA isso sugere?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "O que os modelos mais capazes mudaram" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12137,7 +12139,7 @@ msgstr "" "jogos, especialmente Touhou. Como mudei de modelo, os repositórios " "mantiveram um registro do que cada sessão conseguiu recuperar." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12151,12 +12153,12 @@ msgstr "" "sucedido onde o trabalho anterior estagnou, as mudanças na origem mostram o " "que tornou esse progresso possível." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "As variáveis temporárias precisavam de vidas sobrepostas" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12178,7 +12180,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12192,7 +12194,7 @@ msgstr "" "examinou o problema novamente{ph3}, propôs uma hipótese útil sobre o tempo " "de vida dessas variáveis ​​temporárias." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12209,7 +12211,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12224,7 +12226,7 @@ msgstr "" "direcionados, {ph0}uma recompilação limpa da fonte confirmou que a função " "completa correspondia a{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12236,7 +12238,7 @@ msgstr "" "nova direção. O feedback do compilador ajudou a refinar essa hipótese em um " "arranjo de código-fonte correspondente." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Um gráfico de fluxo de controle diferente" @@ -12245,7 +12247,7 @@ msgstr "Um gráfico de fluxo de controle diferente" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12268,7 +12270,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12286,7 +12288,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12301,7 +12303,7 @@ msgstr "" "tempo antes de encontrar uma maneira melhor de expressar o trabalho " "circundante." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12316,7 +12318,7 @@ msgstr "" "comparação controlada ajudaria a separar o efeito do modelo do efeito da " "experiência herdada." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12332,12 +12334,12 @@ msgstr "" "modelo poderia aprender trabalhando repetidamente com esse compilador e " "código?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Por que um modelo especializado de IA pode funcionar bem?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12352,7 +12354,7 @@ msgstr "" "com exemplos úteis: loops relacionados e arranjos auxiliares forneceram " "hipóteses em todos os jogos." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12372,7 +12374,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12388,7 +12390,7 @@ msgstr "" "um padrão de nomenclatura que afetou a escolha do compilador. Isso sugeriu " "uma hipótese mais promissora para {ph2}reconstruir {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12398,7 +12400,7 @@ msgstr "" " layout necessário sem adicionar armazenamento. A função completa então " "correspondeu." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12410,7 +12412,7 @@ msgstr "" " para este compilador poderia ver muitos desses casos e aprender quais " "variações do código-fonte valem a pena testar primeiro." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12429,7 +12431,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12449,14 +12451,14 @@ msgstr "" " mas cada alvo nos diz se se aplica. Um modelo especializado precisaria " "distinguir esses contextos." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Onde essa experiência deve ser armazenada?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12472,7 +12474,7 @@ msgstr "" "projeto. Essa memória inclui lições de compilador, juntamente com a fonte e " "os experimentos fracassados ​​que os tornaram úteis." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12489,7 +12491,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12508,7 +12510,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12525,7 +12527,7 @@ msgstr "" "que o resultado significa para sua próxima tentativa. Conhecer o padrão " "relevante é apenas o começo desse processo." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12538,12 +12540,12 @@ msgstr "" "experiência nos ajudaria a identificar o que o treinamento agrega: melhor " "geração de candidatos, melhores decisões após feedback ou ambos." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Aprendendo o próximo experimento útil" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12557,7 +12559,7 @@ msgstr "" "restringir as possibilidades restantes e sugerir um próximo experimento mais" " útil." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12570,32 +12572,32 @@ msgstr "" "informações. Cada um dos experimentos a seguir ajudou a identificar o que " "ainda precisava ser mudado." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Experimentar" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "O que seu resultado nos ensinou" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Tente uma maneira diferente de copiar os resultados" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "O código de cópia muda, mas a função ainda é diferente." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Use os valores retornados diretamente" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12603,12 +12605,12 @@ msgstr "" "A cópia segue o padrão original, mas o armazenamento temporário ainda é " "diferente." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Mantenha todas as variáveis temporárias válidas ao mesmo tempo" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12617,17 +12619,17 @@ msgstr "" "Eles obtêm armazenamento separado, mas ainda se sobrepõe a um valor usado " "posteriormente para verificações de colisão." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Mantenha o valor de verificação de colisão separado" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "Uma recompilação limpa da fonte confirma a correspondência completa." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12636,7 +12638,7 @@ msgstr "" "Experimentos selecionados da reconstrução da função de ataque acima, " "agrupados pelo que nos ensinaram." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12652,7 +12654,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12667,7 +12669,7 @@ msgstr "" "locais deixarem de ser informativas, o agente deverá ser capaz de revisitar " "a representação da fonte ou inspecionar as evidências novamente." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12680,13 +12682,13 @@ msgstr "" "sequência rígida de reescritas necessárias eliminaria essa escolha, " "juntamente com parte do comportamento que queremos que o modelo aprenda." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" "Por que a engenharia reversa é interessante para aprendizagem por reforço" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12700,7 +12702,7 @@ msgstr "" "agente pode compilar um candidato, examinar as diferenças e escolher o " "próximo passo." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12718,7 +12720,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12740,7 +12742,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12757,7 +12759,7 @@ msgstr "" "programa original lidava com cálculos de ponto flutuante{ph1}. Antes que o " "agente pudesse testar uma correção útil, ele precisava decidir o que medir." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12769,12 +12771,12 @@ msgstr "" " podemos investigar até onde uma política de pesquisa aprendida pode chegar " "com ela." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Quando o verificador está errado" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12786,7 +12788,7 @@ msgstr "" "oracle. Mesmo uma resposta repetível precisa ser entendida pelos aspectos " "que ela realmente verifica." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12809,7 +12811,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12824,7 +12826,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12841,7 +12843,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12858,7 +12860,7 @@ msgstr "" "correspondência de instrução deve ser entendida em termos dos bytes e dos " "dados que ela verifica." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12876,7 +12878,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12889,12 +12891,12 @@ msgstr "" "feedback que lhe damos, compreender esse feedback também se torna mais " "importante." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Uma comparação que vale a pena fazer" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12910,7 +12912,7 @@ msgstr "" "recuperação. A partir daí, a especialização supervisionada e uma versão " "treinada em RL nos permitiriam examinar o que o treinamento acrescenta." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12924,7 +12926,7 @@ msgstr "" "repetidos ajudariam a distinguir uma estratégia de busca confiável de uma " "solução candidata que tivesse sucesso por acaso." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12939,7 +12941,7 @@ msgstr "" " modelo de IA de uso geral faz grande parte do trabalho necessário para " "alcançá-la. Medi-los separadamente revelaria essa divisão de trabalho." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12954,7 +12956,7 @@ msgstr "" "código-fonte relacionado e manteria suas respostas verificadas fora dos " "dados de treinamento e da biblioteca de recuperação." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12970,7 +12972,7 @@ msgstr "" "se essa qualidade produz um fluxo de trabalho eficiente. Os custos de " "formação devem ser medidos separadamente." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12988,7 +12990,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13011,7 +13013,7 @@ msgstr "" "qualquer recompensa por “chegar mais perto” em relação à verificação de " "aceitação total." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13027,12 +13029,12 @@ msgstr "" "ainda acrescenta? As respostas nos ajudariam a decidir onde cada tipo de " "modelo é mais útil." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Que tipo de agente de IA isso sugere?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13048,7 +13050,7 @@ msgstr "" " sentido, o agente mais amplo poderá retornar à evidência alvo ou investigar" " a própria medição." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13059,7 +13061,7 @@ msgstr "" "escolher à medida que a investigação se desenvolve. O agente mantém a " "liberdade de mudar a direção que tornou possíveis os avanços anteriores." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13073,7 +13075,7 @@ msgstr "" "decisões necessitam de um julgamento amplo e quais melhoram através da " "experiência repetida com uma determinada arte." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13090,7 +13092,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13101,12 +13103,12 @@ msgstr "" "Gostaria de usar esse registro para construir a comparação e ver o que " "aprendemos." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Evidências e atribuição de modelo" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13120,7 +13122,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13146,7 +13148,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13171,7 +13173,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13196,7 +13198,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13223,7 +13225,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13235,7 +13237,7 @@ msgstr "" "ponto flutuante{ph3}, {ph4}TH08 investigação numérica{ph5} e {ph6}TH09 " "reconstrução para salvar replay{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13261,22 +13263,22 @@ msgstr "" "especializados e como aprender a propor melhores hipóteses a partir do " "feedback do compilador." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Nesta página" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modelos e ensaio de engenharia reversa" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Experimentos de reconstrução selecionados" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Voltar ao topo" @@ -13285,7 +13287,7 @@ msgstr "Voltar ao topo" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13297,68 +13299,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Casos práticos{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA estudos de caso." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * análise APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Como um autenticador gera um código de login" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Leia o estudo de caso do Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * rastreio de características" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Como Notion copia texto e HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Leia o estudo de caso Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Nativo * Reconstrução" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball cálculo da posição sonora esquerda/direita" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Leia o estudo de caso DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Opções de configuração" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13369,7 +13371,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13381,7 +13383,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13389,7 +13391,7 @@ msgstr "{ph0}1. Prepare seu computador{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13397,7 +13399,7 @@ msgstr "{ph0}2. Escolha um agente{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13405,7 +13407,7 @@ msgstr "{ph0}3. Conecte o REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13413,18 +13415,18 @@ msgstr "{ph0}4. Experimente uma investigação{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Outros alvos e provedores de análise{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Prepare seu computador" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13434,7 +13436,7 @@ msgstr "" "de programação local pode ler esses arquivos e executar ferramentas por " "você." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13445,7 +13447,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13457,7 +13459,7 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13467,17 +13469,17 @@ msgstr "" "Se depois o PowerShell mostrar {ph0}\"running scripts is disabled on this " "system\"{ph1} ao executar {ph2}, use {ph3} no lugar. Para o npm, use {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Crie uma pasta de trabalho para seu agente" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "No terminal, crie uma pasta para o exercício e entre nela:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13486,12 +13488,12 @@ msgstr "" "Mantenha este terminal aberto para o próximo passo. Se você já tem uma pasta" " de trabalho, abra essa pasta no lugar." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Escolha um agente de programação" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13501,12 +13503,12 @@ msgstr "" "inspeção que ela usa. Escolha um aplicativo cliente abaixo; abra suas " "instruções se nunca o usou antes." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · use sua conta do ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13517,39 +13519,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Instalação e login do Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf ou VS Code · use um editor" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Instale o editor para seu sistema operacional e entre na conta." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Abra a pasta rea-work que você criou no passo 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · use sua conta do Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Instale com o comando correspondente ao seu sistema operacional:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13563,13 +13565,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Instalação do Claude Code e opções de conta{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · use um chat no desktop" @@ -13579,7 +13581,7 @@ msgstr "Claude Desktop · use um chat no desktop" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13591,7 +13593,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13603,19 +13605,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Instalação do OpenCode e configuração de modelos{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Todos os clientes compatíveis e seus IDs de configuração" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13625,12 +13627,12 @@ msgstr "" "A versão 6.4.0 publicada no npm suporta os clientes abaixo. Use o ID com " "{ph0} quando quiser escolher um cliente explicitamente." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Cliente" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID de configuração" @@ -13640,7 +13642,7 @@ msgstr "ID de configuração" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13660,7 +13662,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13670,13 +13672,13 @@ msgstr "" "{ph0}Configuração dos clientes e solução de problemas{ph1} · " "{ph2}Disponibilidade nas versões publicadas{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · conecte no computador hospedado do bot" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13689,29 +13691,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Instruções do conector do Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Conecte o REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Copie este prompt para seu agente de programação:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Para um cliente específico, acrescente seu ID de configuração:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13723,7 +13725,7 @@ msgstr "" "lista de clientes do REA, use as setas para navegar, Espaço para selecionar " "seu cliente e Enter para continuar." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13732,7 +13734,7 @@ msgstr "" "MCP é a conexão que permite ao seu agente chamar o REA. A skill fornece um " "fluxo de trabalho para investigar software." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13743,7 +13745,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13753,21 +13755,21 @@ msgstr "" "Substitua {ph0} pelo ID de configuração do seu cliente. Uma verificação bem-" "sucedida informa {ph1}. Depois, peça ao seu agente:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Verifique se o REA está conectado e me mostre quais ferramentas do REA você " "pode usar." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Experimente sua primeira investigação" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13779,7 +13781,7 @@ msgstr "" "exportação{ph1} botão. Seu agente pode inspecionar seu código sem instalar " "ou iniciar o Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Seu agente de programação" @@ -13793,7 +13795,7 @@ msgstr "Seu agente de programação" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13807,7 +13809,7 @@ msgstr "" "Mostrar onde {ph4} está escrito, quais os campos que contém e os ficheiros e" " linhas relevantes.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Procure uma breve explicação com referências de arquivo e linha:" @@ -13816,7 +13818,7 @@ msgstr "Procure uma breve explicação com referências de arquivo e linha:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13830,13 +13832,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Verifique uma previsão no exercício guiado →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Baixe o exemplo por conta própria ou use seu próprio aplicativo" @@ -13844,14 +13846,14 @@ msgstr "Baixe o exemplo por conta própria ou use seu próprio aplicativo" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Baixar exemplo ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13862,7 +13864,7 @@ msgstr "" "mesmo. Dê-lhe o caminho para o {ph0} pasta e a mesma questão de exportação." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13872,12 +13874,12 @@ msgstr "" "Use o REA para inspecionar o aplicativo em {ph0}. Descubra como ele exporta " "dados e mostre os arquivos e as linhas relevantes." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Analise outro tipo de software" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13886,12 +13888,12 @@ msgstr "" "Escolha a seção correspondente ao seu alvo. Um provedor de análise é a " "ferramenta local que o REA usa para esse tipo de software." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Executáveis e bibliotecas nativas · Hopper, Ghidra ou IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13900,47 +13902,47 @@ msgstr "" "Instale uma ferramenta de análise no computador que executa o REA. O host é " "seu sistema operacional; o alvo é o programa que você quer inspecionar." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Provedor de análise" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Indisponível" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Distribuições compatíveis" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · experimental" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Perfis verificados" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Perfil sem interface gráfica verificado" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Consulte o guia do provedor" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · deixe a configuração instalar ou conectar" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13952,7 +13954,7 @@ msgstr "" "abrir pela primeira vez. No Linux, a configuração prepara a demonstração " "compatível e sua tela privada." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13962,7 +13964,7 @@ msgstr "" "Omarchy. O Hopper é um software comercial; sua demonstração tem limites " "definidos pelo fabricante." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13976,18 +13978,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Configuração do Hopper e solução de problemas{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · instale a ferramenta de análise gratuita e o Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13997,7 +13999,7 @@ msgstr "" "Java. Escolha o pacote correspondente à arquitetura do seu computador." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14010,7 +14012,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14026,7 +14028,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14034,7 +14036,7 @@ msgstr "{ph0}Baixar um JDK{ph1} · {ph2}Baixar o Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14044,7 +14046,7 @@ msgstr "" "Verifique o Java. O primeiro comando mostra {ph0}; use essa pasta para " "{ph1}. O segundo confirma que o compilador está instalado:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14062,7 +14064,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14072,12 +14074,12 @@ msgstr "" "{ph0}Configuração do Ghidra e requisitos de arquitetura{ph1} · {ph2}Guia do " "Ghidra no Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · conecte uma instalação existente" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14089,7 +14091,7 @@ msgstr "" "original aberto ou um supervisor sem interface gráfica que abra um banco de " "dados privado." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14101,7 +14103,7 @@ msgstr "" " macOS arm64 com IDA Professional 9.1. A ponte nativa opcional para a " "interface gráfica tem seus próprios requisitos de versão e plataforma." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14113,14 +14115,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" "{ph0}Perfis do IDA, exemplos de registro e plataformas verificadas{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14131,18 +14133,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Siga um exemplo de análise nativa{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Sites, Android, .NET, firmware e outros alvos" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14151,110 +14153,110 @@ msgstr "" "Abra o guia correspondente ao seu alvo. Cada guia informa as ferramentas " "adicionais, os hosts compatíveis e o primeiro comando." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Alvo" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Ferramentas a preparar" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Guia" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Abrir guia{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Site" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / pacotes" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "APK Android" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Dispositivo Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Recursos Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Projeto JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / falha no Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Sinais lógicos" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Comportamento de processos" @@ -14270,7 +14272,7 @@ msgstr "Comportamento de processos" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14280,18 +14282,18 @@ msgstr "" "{ph0}Guia de Flutter{ph1} · {ph2}Pacotes e recursos{ph3} · {ph4}Bytecode " "EVM{ph5} · {ph6}Todos os guias de investigação{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Use o REA pelo terminal" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Comandos CLI, instalação global e curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14301,7 +14303,7 @@ msgstr "" "Substitua {ph0} por um nome ou endereço de função da lista de funções do " "alvo. O Ghidra precisa estar configurado antes." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14310,7 +14312,7 @@ msgstr "" "No macOS ou Linux, você também pode usar o instalador curl depois de " "preparar o Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14320,12 +14322,12 @@ msgstr "" "clientes que são editores, habilite o REA nas configurações MCP e permita " "suas ferramentas no chat do agente." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL e caminhos com espaços" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14337,17 +14339,17 @@ msgstr "" "Linux e use caminhos Linux ali. Os provedores sem interface gráfica rodam no" " mesmo host que o REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Comando de configuração para Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Atualize ou remova o REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14358,7 +14360,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14372,52 +14374,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Detalhes de atualização e desinstalação{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Copiar o comando de configuração do REA para Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Copiar comando" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Copiar notas pedido de investigação" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14427,12 +14429,12 @@ msgstr "" "Instale primeiro curl e unzip se estiverem faltando. No Debian ou Ubuntu, " "execute {ph0}; em outras distribuições, use seu gerenciador de pacotes." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Feche o terminal, abra novamente e depois execute:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14447,7 +14449,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14457,19 +14459,19 @@ msgstr "" "{ph0}Configuração do Cursor{ph1} · {ph2}Configuração do Windsurf / Devin " "Desktop{ph3} · {ph4}Configuração do VS Code e Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · escolha um modelo de IA" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Prepare o arquivo de registro do IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14485,7 +14487,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14498,7 +14500,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14511,23 +14513,23 @@ msgstr "" "binário original no IDA e inicie o plugin desse servidor antes de pedir ao " "REA para inspecioná-lo." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Banco de dados SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" "Instale o Codex com o comando correspondente ao seu sistema operacional:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14538,7 +14540,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14548,12 +14550,12 @@ msgstr "" "Para uma primeira instalação, baixe o {ph0}instalador do Node.js 24 LTS para" " macOS (.pkg){ph1}, abra e siga suas instruções. Depois, reabra o Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Já usa Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14565,7 +14567,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14575,7 +14577,7 @@ msgstr "" "Revise e aprove o plano, reabra o Claude e {ph0}verifique a conexão no passo" " 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14586,12 +14588,12 @@ msgstr "" "instalação nova no macOS ou Linux arm64, compile o descompilador nativo para" " seu computador antes de continuar." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Compile o descompilador nativo do Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14604,7 +14606,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14614,7 +14616,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14624,19 +14626,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · instruções de compilação nativa{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Depois, verifique o Ghidra e salve seus caminhos para o cliente:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14644,13 +14646,13 @@ msgstr "Por que {ph0} resulta em 220 na Calculadora?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Como funciona{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14659,22 +14661,22 @@ msgstr "" "Pergunte ao seu agente de programação sobre um aplicativo, jogo ou site. O " "REA fornece ferramentas para examinar o código por trás da resposta." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Começar" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Veja um exemplo ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Como funciona" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14685,47 +14687,47 @@ msgstr "" " programa. Com o REA, seu agente pode seguir o código, explicar uma função e" " ajudar você a recriá-la." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Pergunte sobre uma função" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Dê ao seu agente um programa ou página e uma pergunta." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Examine o programa" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "O REA retorna código, referências e observações durante a execução." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Entenda e experimente uma mudança" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "Seu agente usa as descobertas para explicar ou recriar a função." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Siga as instruções passo a passo" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Faça a mesma pergunta ao seu agente" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14734,7 +14736,7 @@ msgstr "" "Comece às 6. Adicionar 0.001 cada atualização sem colisão, enquanto a " "velocidade é inferior 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14742,7 +14744,7 @@ msgstr "" "Explore uma função de um aplicativo ou jogo publicado, com código e " "resultados verificados." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14752,7 +14754,7 @@ msgstr "" "Depois mova o relógio da demonstração para ver por que ele muda a cada 30 " "segundos." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14761,7 +14763,7 @@ msgstr "" "Siga o JavaScript empacotado do Notion até a área de transferência do " "sistema e veja como uma cópia preserva dados ricos dos blocos." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14770,12 +14772,12 @@ msgstr "" "Recupere como a posição da bola se transforma em som à esquerda ou à direita" " em um jogo de Windows de 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Escolha seu alvo." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14786,7 +14788,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14805,13 +14807,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Exemplo de pedido * Sítio Web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Sim, esta." @@ -14824,7 +14826,7 @@ msgstr "Sim, esta." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14839,7 +14841,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14853,18 +14855,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Ver estudo de caso DX-Ball{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Copiar pedido de Projecto do website" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Copiar o prompt de reconstrução do jogo" @@ -14876,7 +14878,7 @@ msgstr "Copiar o prompt de reconstrução do jogo" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14888,7 +14890,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14896,23 +14898,23 @@ msgstr "{ph0}Casos →{ph1} — investigações e demonstrações interativas." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — métodos e notas sobre reconstrução." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Veja a investigação completa da Calculadora" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Experimente um projeto maior" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14921,7 +14923,7 @@ msgstr "" "Vamos experimentar dois exemplos: mudar a velocidade de um jogo e recriar o " "botão % da Calculadora." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14930,7 +14932,7 @@ msgstr "" "O jogo fica mais rápido enquanto você corre. Para recriá-lo com um controle " "de velocidade, primeiro precisamos descobrir como a velocidade muda." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Pergunte sobre a velocidade" @@ -14943,7 +14945,7 @@ msgstr "1. Pergunte sobre a velocidade" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14952,12 +14954,12 @@ msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Pergunta de exemplo · Jogo do " "dinossauro" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Encontre a regra de velocidade" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14967,12 +14969,12 @@ msgstr "" "começa em 6 e aumenta um pouco a cada atualização enquanto estiver abaixo de" " 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Jogue o resultado" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14981,7 +14983,7 @@ msgstr "" "Recriamos essa regra no minijogo abaixo e acrescentamos um controle de " "velocidade. Pressione Jogar e escolha sua velocidade." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14990,7 +14992,7 @@ msgstr "" "Ative JavaScript para jogar. Você ainda pode ler a regra e abrir o código-" "fonte abaixo." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14999,7 +15001,7 @@ msgstr "" "O botão % faz coisas diferentes depois de + e ×. Vamos encontrar as duas " "regras e experimentá-las em uma pequena calculadora." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Pergunte sobre o botão %" @@ -15012,19 +15014,19 @@ msgstr "1. Pergunte sobre o botão %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Pergunta de exemplo · Calculadora" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Encontre as duas regras" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15033,12 +15035,12 @@ msgstr "" "O REA ajuda o agente a ler o código do botão %. Ele aplica duas regras " "diferentes:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Experimente o botão %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15046,7 +15048,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15055,7 +15057,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15065,14 +15067,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "" "{ph0}GitHub issues{ph1} — relate um bug ou solicite uma funcionalidade." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Configuração para sua plataforma:" @@ -15080,14 +15082,14 @@ msgstr "Configuração para sua plataforma:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Outras opções de instalação: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15102,7 +15104,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15117,7 +15119,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15129,7 +15131,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15140,7 +15142,7 @@ msgstr "" "instalador. No Linux, o comando de configuração padrão é {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15152,67 +15154,67 @@ msgstr "" "funções e strings, depois explique a parte que processa a entrada do usuário" " com referências ao código." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Colaboradores" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Ir para o conteúdo" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Início{ph1} / Colaboradores" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Construído em conjunto." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Obrigado a todas as pessoas que ajudam a melhorar o REA." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15221,22 +15223,22 @@ msgstr "" "Código, documentação, testes, traduções e ideias: há muitas formas de " "contribuir." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Como contribuir" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Participe da conversa →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Colaboradores" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Encontrar colaboradores" @@ -15244,13 +15246,13 @@ msgstr "Encontrar colaboradores" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "Da {ph0}lista de colaboradores do GitHub{ph1} · Atualizada em {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Nenhum colaborador encontrado. Tente outro nome de usuário." @@ -15267,12 +15269,12 @@ msgid "" msgstr "" "Conheça quem contribui com código, documentação, testes e ideias para o REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Nome de usuário do GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Voltar ao topo" diff --git a/website/locales/ro/messages.po b/website/locales/ro/messages.po index 15cce4907ff..b495577b56f 100644 --- a/website/locales/ro/messages.po +++ b/website/locales/ro/messages.po @@ -7,282 +7,315 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: website/public/blog/index.html:111 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "" -#: website/public/blog/index.html:121 -#: website/public/blog/reverse-engineering-models/index.html:121 -#: website/public/blog/touhou-reconstruction/index.html:121 -#: website/public/contributors/index.html:122 -#: website/public/examples/dino-lab/index.html:122 website/public/faq/index.html:121 -#: website/public/first-investigation/index.html:121 -#: website/public/get-started/index.html:121 -#: website/public/guides/browser/index.html:121 website/public/guides/index.html:121 -#: website/public/guides/javascript/index.html:121 -#: website/public/guides/native/index.html:121 website/public/index.html:123 -#: website/public/showcase/aegis/index.html:122 -#: website/public/showcase/ctf/index.html:121 -#: website/public/showcase/dx-ball/index.html:121 website/public/showcase/index.html:121 -#: website/public/showcase/notion/index.html:121 -#: website/public/showcase/th04/index.html:121 -msgctxt "shared" -msgid "Get started" -msgstr "" - -#: website/public/blog/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/contributors/index.html:123 -#: website/public/examples/dino-lab/index.html:123 website/public/faq/index.html:122 -#: website/public/first-investigation/index.html:122 -#: website/public/get-started/index.html:122 -#: website/public/guides/browser/index.html:122 website/public/guides/index.html:122 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/native/index.html:122 website/public/index.html:124 -#: website/public/showcase/aegis/index.html:123 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/dx-ball/index.html:122 website/public/showcase/index.html:122 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/th04/index.html:122 -msgctxt "shared" -msgid "Showcases" -msgstr "" - #: website/public/blog/index.html:123 #: website/public/blog/reverse-engineering-models/index.html:123 #: website/public/blog/touhou-reconstruction/index.html:123 #: website/public/contributors/index.html:124 -#: website/public/examples/dino-lab/index.html:124 website/public/faq/index.html:123 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 #: website/public/first-investigation/index.html:123 #: website/public/get-started/index.html:123 -#: website/public/guides/browser/index.html:123 website/public/guides/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 #: website/public/guides/javascript/index.html:123 #: website/public/guides/native/index.html:123 website/public/index.html:125 #: website/public/showcase/aegis/index.html:124 #: website/public/showcase/ctf/index.html:123 -#: website/public/showcase/dx-ball/index.html:123 website/public/showcase/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 #: website/public/showcase/notion/index.html:123 #: website/public/showcase/th04/index.html:123 msgctxt "shared" -msgid "Blog" +msgid "Get started" msgstr "" #: website/public/blog/index.html:124 #: website/public/blog/reverse-engineering-models/index.html:124 #: website/public/blog/touhou-reconstruction/index.html:124 #: website/public/contributors/index.html:125 -#: website/public/examples/dino-lab/index.html:125 website/public/faq/index.html:124 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 #: website/public/first-investigation/index.html:124 #: website/public/get-started/index.html:124 -#: website/public/guides/browser/index.html:124 website/public/guides/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 #: website/public/guides/javascript/index.html:124 #: website/public/guides/native/index.html:124 website/public/index.html:126 #: website/public/showcase/aegis/index.html:125 #: website/public/showcase/ctf/index.html:124 -#: website/public/showcase/dx-ball/index.html:124 website/public/showcase/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 #: website/public/showcase/notion/index.html:124 #: website/public/showcase/th04/index.html:124 msgctxt "shared" -msgid "Guides" +msgid "Showcases" msgstr "" -#: website/public/blog/index.html:126 website/public/blog/index.html:245 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 +msgctxt "shared" +msgid "Blog" +msgstr "" + +#: website/public/blog/index.html:126 #: website/public/blog/reverse-engineering-models/index.html:126 -#: website/public/blog/reverse-engineering-models/index.html:884 #: website/public/blog/touhou-reconstruction/index.html:126 -#: website/public/blog/touhou-reconstruction/index.html:1081 #: website/public/contributors/index.html:127 -#: website/public/contributors/index.html:1132 #: website/public/examples/dino-lab/index.html:127 -#: website/public/examples/dino-lab/index.html:476 website/public/faq/index.html:126 -#: website/public/faq/index.html:574 website/public/first-investigation/index.html:126 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:126 website/public/get-started/index.html:1818 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 #: website/public/guides/browser/index.html:126 -#: website/public/guides/browser/index.html:508 website/public/guides/index.html:126 -#: website/public/guides/index.html:283 website/public/guides/javascript/index.html:126 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:126 -#: website/public/guides/native/index.html:510 website/public/index.html:128 -#: website/public/index.html:1223 website/public/showcase/aegis/index.html:127 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:126 website/public/showcase/ctf/index.html:778 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 #: website/public/showcase/dx-ball/index.html:126 -#: website/public/showcase/dx-ball/index.html:786 website/public/showcase/index.html:126 -#: website/public/showcase/index.html:318 website/public/showcase/notion/index.html:126 -#: website/public/showcase/notion/index.html:632 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 #: website/public/showcase/th04/index.html:126 -#: website/public/showcase/th04/index.html:801 +msgctxt "shared" +msgid "Guides" +msgstr "" + +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:203 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "" -#: website/public/blog/index.html:204 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "" -#: website/public/blog/index.html:205 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "" #. {ph0}:
-#: website/public/blog/index.html:209 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "" -#: website/public/blog/index.html:211 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/index.html:212 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" -"What Touhou reconstruction suggests about general models, specialist models and " -"learning from compiler feedback." +"What Touhou reconstruction suggests about general models, specialist models " +"and learning from compiler feedback." msgstr "" -#: website/public/blog/index.html:216 website/public/blog/index.html:231 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "" -#: website/public/blog/index.html:219 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" #. {ph0}:
-#: website/public/blog/index.html:223 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "" -#: website/public/blog/index.html:225 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "" -#: website/public/blog/index.html:226 +#: website/public/blog/index.html:228 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." +"What manual RE and reconstructing TH08, TH095 and TH04 taught me about " +"agents, verification and knowledge that compounds across projects." msgstr "" -#: website/public/blog/index.html:234 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/index.html:246 -#: website/public/blog/reverse-engineering-models/index.html:885 -#: website/public/blog/touhou-reconstruction/index.html:1082 -#: website/public/contributors/index.html:1133 -#: website/public/examples/dino-lab/index.html:477 website/public/faq/index.html:575 -#: website/public/first-investigation/index.html:536 -#: website/public/get-started/index.html:1819 -#: website/public/guides/browser/index.html:509 website/public/guides/index.html:284 -#: website/public/guides/javascript/index.html:505 -#: website/public/guides/native/index.html:511 website/public/index.html:1224 -#: website/public/showcase/aegis/index.html:810 -#: website/public/showcase/ctf/index.html:779 -#: website/public/showcase/dx-ball/index.html:787 website/public/showcase/index.html:319 -#: website/public/showcase/notion/index.html:633 -#: website/public/showcase/th04/index.html:802 -msgctxt "shared" -msgid "Source" -msgstr "" - -#: website/public/blog/index.html:247 -#: website/public/blog/reverse-engineering-models/index.html:886 -#: website/public/blog/touhou-reconstruction/index.html:1083 -#: website/public/contributors/index.html:1134 -#: website/public/examples/dino-lab/index.html:478 website/public/faq/index.html:576 -#: website/public/first-investigation/index.html:537 -#: website/public/get-started/index.html:1820 -#: website/public/guides/browser/index.html:510 website/public/guides/index.html:285 -#: website/public/guides/javascript/index.html:506 -#: website/public/guides/native/index.html:512 website/public/index.html:1225 -#: website/public/showcase/aegis/index.html:811 -#: website/public/showcase/ctf/index.html:780 -#: website/public/showcase/dx-ball/index.html:788 website/public/showcase/index.html:320 -#: website/public/showcase/notion/index.html:634 -#: website/public/showcase/th04/index.html:803 -msgctxt "shared" -msgid "MIT license" -msgstr "" - #: website/public/blog/index.html:248 #: website/public/blog/reverse-engineering-models/index.html:887 #: website/public/blog/touhou-reconstruction/index.html:1084 #: website/public/contributors/index.html:1135 -#: website/public/examples/dino-lab/index.html:479 website/public/faq/index.html:577 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 #: website/public/first-investigation/index.html:538 #: website/public/get-started/index.html:1821 -#: website/public/guides/browser/index.html:511 website/public/guides/index.html:286 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 #: website/public/guides/javascript/index.html:507 #: website/public/guides/native/index.html:513 website/public/index.html:1226 #: website/public/showcase/aegis/index.html:812 #: website/public/showcase/ctf/index.html:781 -#: website/public/showcase/dx-ball/index.html:789 website/public/showcase/index.html:321 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 #: website/public/showcase/notion/index.html:635 #: website/public/showcase/th04/index.html:804 msgctxt "shared" -msgid "Join the community" +msgid "Source" msgstr "" #: website/public/blog/index.html:249 #: website/public/blog/reverse-engineering-models/index.html:888 #: website/public/blog/touhou-reconstruction/index.html:1085 #: website/public/contributors/index.html:1136 -#: website/public/examples/dino-lab/index.html:480 website/public/faq/index.html:578 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 #: website/public/first-investigation/index.html:539 #: website/public/get-started/index.html:1822 -#: website/public/guides/browser/index.html:512 website/public/guides/index.html:287 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 #: website/public/guides/javascript/index.html:508 #: website/public/guides/native/index.html:514 website/public/index.html:1227 #: website/public/showcase/aegis/index.html:813 #: website/public/showcase/ctf/index.html:782 -#: website/public/showcase/dx-ball/index.html:790 website/public/showcase/index.html:322 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 #: website/public/showcase/notion/index.html:636 #: website/public/showcase/th04/index.html:805 msgctxt "shared" +msgid "MIT license" +msgstr "" + +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 +msgctxt "shared" +msgid "Join the community" +msgstr "" + +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 +msgctxt "shared" msgid "Follow us on X" msgstr "" #. {ph0}: -#: website/public/blog/index.html:254 -#: website/public/blog/reverse-engineering-models/index.html:893 -#: website/public/blog/touhou-reconstruction/index.html:1090 -#: website/public/contributors/index.html:1141 -#: website/public/examples/dino-lab/index.html:485 website/public/faq/index.html:583 -#: website/public/first-investigation/index.html:544 -#: website/public/get-started/index.html:1827 -#: website/public/guides/browser/index.html:517 website/public/guides/index.html:292 -#: website/public/guides/javascript/index.html:513 -#: website/public/guides/native/index.html:519 website/public/index.html:1232 -#: website/public/showcase/aegis/index.html:818 -#: website/public/showcase/ctf/index.html:787 -#: website/public/showcase/dx-ball/index.html:795 website/public/showcase/index.html:327 -#: website/public/showcase/notion/index.html:641 -#: website/public/showcase/th04/index.html:810 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -296,140 +329,164 @@ msgstr "" #: 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 "" - -#: website/public/blog/index.html:83 website/public/blog/index.html:96 -#: website/public/blog/reverse-engineering-models/index.html:83 -#: website/public/blog/reverse-engineering-models/index.html:96 -#: website/public/blog/touhou-reconstruction/index.html:83 -#: website/public/blog/touhou-reconstruction/index.html:96 -#: website/public/contributors/index.html:83 website/public/contributors/index.html:96 -#: website/public/examples/dino-lab/index.html:83 -#: website/public/examples/dino-lab/index.html:96 website/public/faq/index.html:83 -#: website/public/faq/index.html:96 website/public/first-investigation/index.html:83 -#: website/public/first-investigation/index.html:96 -#: website/public/get-started/index.html:83 website/public/get-started/index.html:96 -#: website/public/guides/browser/index.html:83 -#: website/public/guides/browser/index.html:96 website/public/guides/index.html:83 -#: website/public/guides/index.html:96 website/public/guides/javascript/index.html:83 -#: website/public/guides/javascript/index.html:96 -#: website/public/guides/native/index.html:83 website/public/guides/native/index.html:96 -#: website/public/index.html:83 website/public/index.html:96 -#: website/public/showcase/aegis/index.html:83 -#: website/public/showcase/aegis/index.html:96 website/public/showcase/ctf/index.html:83 -#: website/public/showcase/ctf/index.html:96 -#: website/public/showcase/dx-ball/index.html:83 -#: website/public/showcase/dx-ball/index.html:96 website/public/showcase/index.html:83 -#: website/public/showcase/index.html:96 website/public/showcase/notion/index.html:83 -#: website/public/showcase/notion/index.html:96 -#: website/public/showcase/th04/index.html:83 website/public/showcase/th04/index.html:96 +"Thoughts on reverse engineering, drawing on practical experience with REA " +"and AI agents." +msgstr "" + +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" -msgid "REA — Find out how software works. Reverse engineering with your coding agent." -msgstr "" - -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +msgid "" +"REA — Find out how software works. Reverse engineering with your coding " +"agent." +msgstr "" + +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "" -#: website/public/blog/index.html:139 -#: website/public/blog/reverse-engineering-models/index.html:139 -#: website/public/blog/touhou-reconstruction/index.html:139 -#: website/public/contributors/index.html:140 -#: website/public/examples/dino-lab/index.html:140 website/public/faq/index.html:139 -#: website/public/first-investigation/index.html:139 -#: website/public/get-started/index.html:139 -#: website/public/guides/browser/index.html:139 website/public/guides/index.html:139 -#: website/public/guides/javascript/index.html:139 -#: website/public/guides/native/index.html:139 website/public/index.html:141 -#: website/public/showcase/aegis/index.html:140 -#: website/public/showcase/ctf/index.html:139 -#: website/public/showcase/dx-ball/index.html:139 website/public/showcase/index.html:139 -#: website/public/showcase/notion/index.html:139 -#: website/public/showcase/th04/index.html:139 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "" -#: website/public/blog/index.html:159 -#: website/public/blog/reverse-engineering-models/index.html:159 -#: website/public/blog/touhou-reconstruction/index.html:159 -#: website/public/contributors/index.html:160 -#: website/public/examples/dino-lab/index.html:160 website/public/faq/index.html:159 -#: website/public/first-investigation/index.html:159 -#: website/public/get-started/index.html:159 -#: website/public/guides/browser/index.html:159 website/public/guides/index.html:159 -#: website/public/guides/javascript/index.html:159 -#: website/public/guides/native/index.html:159 website/public/index.html:161 -#: website/public/showcase/aegis/index.html:160 -#: website/public/showcase/ctf/index.html:159 -#: website/public/showcase/dx-ball/index.html:159 website/public/showcase/index.html:159 -#: website/public/showcase/notion/index.html:159 -#: website/public/showcase/th04/index.html:159 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "" -#: website/public/blog/index.html:178 -#: website/public/blog/reverse-engineering-models/index.html:178 -#: website/public/blog/touhou-reconstruction/index.html:178 -#: website/public/contributors/index.html:179 -#: website/public/examples/dino-lab/index.html:179 website/public/faq/index.html:178 -#: website/public/first-investigation/index.html:178 -#: website/public/get-started/index.html:178 -#: website/public/guides/browser/index.html:178 website/public/guides/index.html:178 -#: website/public/guides/javascript/index.html:178 -#: website/public/guides/native/index.html:178 website/public/index.html:180 -#: website/public/showcase/aegis/index.html:179 -#: website/public/showcase/ctf/index.html:178 -#: website/public/showcase/dx-ball/index.html:178 website/public/showcase/index.html:178 -#: website/public/showcase/notion/index.html:178 -#: website/public/showcase/th04/index.html:178 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "" -#: website/public/blog/index.html:254 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:111 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "" @@ -438,90 +495,90 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:207 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:210 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:212 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later sessions " -"have solved problems that earlier work left unresolved." +"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later " +"sessions have solved problems that earlier work left unresolved." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:220 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}A familiar compiler gives specialization something concrete to learn.{ph1} Some " -"exact matches depend on narrow, reusable source patterns." +"{ph0}A familiar compiler gives specialization something concrete to " +"learn.{ph1} Some exact matches depend on narrow, reusable source patterns." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:227 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with good " -"retrieval may already know enough to make progress." +"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with " +"good retrieval may already know enough to make progress." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:232 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value of feedback" -" depends on what the checker actually verifies." +"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value " +"of feedback depends on what the checker actually verifies." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:239 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the result I " -"want from the whole agent." +"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the" +" result I want from the whole agent." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -529,7 +586,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -537,7 +594,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -545,7 +602,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -553,7 +610,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -561,7 +618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:257 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -569,7 +626,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -577,47 +634,48 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:259 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:267 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:268 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Since August 2026, I have been exploring how much reverse engineering an agent can " -"carry out with access to a program and a way to check its work. Most of my experience " -"comes from reconstructing games, especially Touhou. As I have changed models, the " -"repositories have kept a record of what each session managed to recover." +"Since August 2026, I have been exploring how much reverse engineering an " +"agent can carry out with access to a program and a way to check its work. " +"Most of my experience comes from reconstructing games, especially Touhou. As" +" I have changed models, the repositories have kept a record of what each " +"session managed to recover." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:276 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Much of that work aims at exact reconstruction: we compile the maintained source under" -" a pinned historical toolchain and check whether it reproduces the target function. " -"When a later model succeeds where earlier work stalled, the source changes show what " -"made that progress possible." +"Much of that work aims at exact reconstruction: we compile the maintained " +"source under a pinned historical toolchain and check whether it reproduces " +"the target function. When a later model succeeds where earlier work stalled," +" the source changes show what made that progress possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:283 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:284 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Much of a TH09 attack function's logic had already been reconstructed, but the " -"compiler still stored temporary results differently from the original. The remaining " -"problem was how long those results needed to stay alive and when their storage could " -"be reused." +"Much of a TH09 attack function's logic had already been reconstructed, but " +"the compiler still stored temporary results differently from the original. " +"The remaining problem was how long those results needed to stay alive and " +"when their storage could be reused." msgstr "" #. {ph0}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:291 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing several ordinary" -" source arrangements. When {ph2}GPT-6.1-Sol returned to the problem{ph3}, it found a " -"useful hypothesis about how long those temporary values needed to stay alive." +"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing " +"several ordinary source arrangements. When {ph2}GPT-6.1-Sol returned to the " +"problem{ph3}, it found a useful hypothesis about how long those temporary " +"values needed to stay alive." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:305 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The function produced temporary results and copied them into animation positions. In " -"C++, a temporary result stays alive until the expression using it finishes. Grouping " -"the real operations into one expression kept those results alive together, so the " -"compiler could no longer reuse the same storage for all of them." +"The function produced temporary results and copied them into animation " +"positions. In C++, a temporary result stays alive until the expression using" +" it finishes. Grouping the real operations into one expression kept those " +"results alive together, so the compiler could no longer reuse the same " +"storage for all of them." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:312 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"One result still shared storage with a value used later for collision checks. Giving " -"that value its own lifetime resolved the remaining overlap. After several targeted " -"experiments, {ph0}a clean rebuild confirmed that the full function matched{ph1}." +"One result still shared storage with a value used later for collision " +"checks. Giving that value its own lifetime resolved the remaining overlap. " +"After several targeted experiments, {ph0}a clean rebuild confirmed that the " +"full function matched{ph1}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:321 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"What interests me is how the discovery and the tests worked together. The lifetime " -"hypothesis gave the agent a new direction; compiler feedback helped it refine that " -"hypothesis into a source arrangement that matched." +"What interests me is how the discovery and the tests worked together. The " +"lifetime hypothesis gave the agent a new direction; compiler feedback helped" +" it refine that hypothesis into a source arrangement that matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:327 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "" @@ -674,14 +735,14 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:328 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A second TH09 function shows why that new direction can matter. Here, the obstacle was" -" how several branches shared their final work. {ph0}GPT-6.1-Sol's earlier work{ph1} " -"got parts of the function to match, but the branches still joined up differently from " -"the original." +"A second TH09 function shows why that new direction can matter. Here, the " +"obstacle was how several branches shared their final work. " +"{ph0}GPT-6.1-Sol's earlier work{ph1} got parts of the function to match, but" +" the branches still joined up differently from the original." msgstr "" #. {ph0}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:339 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main paths now " -"led to a shared final update and return. In that source structure, the compiler " -"combined the branches in the same way as the original. The complete function matched, " -"and a {ph2}separate rebuild check confirmed it{ph3}." +"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main " +"paths now led to a shared final update and return. In that source structure," +" the compiler combined the branches in the same way as the original. The " +"complete function matched, and a {ph2}separate rebuild check confirmed " +"it{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:351 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Changing the representation opened a more productive search space.{ph1} Both " -"cases give me a reason to take general model capability seriously: an agent can keep " -"trying local variations for a long time before finding a better way to express the " -"surrounding work." +"{ph0}Changing the representation opened a more productive search space.{ph1}" +" Both cases give me a reason to take general model capability seriously: an " +"agent can keep trying local variations for a long time before finding a " +"better way to express the surrounding work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:360 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"At the same time, the later sessions started with earlier source and recorded " -"failures. That accumulated work was part of their advantage. The history lets us " -"inspect the discoveries and their checks; a controlled comparison would help separate " -"the effect of the model from the experience it inherited." +"At the same time, the later sessions started with earlier source and " +"recorded failures. That accumulated work was part of their advantage. The " +"history lets us inspect the discoveries and their checks; a controlled " +"comparison would help separate the effect of the model from the experience " +"it inherited." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:367 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This is where the question becomes interesting to me. Some of the progress came from " -"finding a new representation, while much of the remaining work involved testing source" -" forms against a familiar compiler. How much needs broad reasoning ability, and how " -"much could a model learn through repeated experience with that compiler and code?" +"This is where the question becomes interesting to me. Some of the progress " +"came from finding a new representation, while much of the remaining work " +"involved testing source forms against a familiar compiler. How much needs " +"broad reasoning ability, and how much could a model learn through repeated " +"experience with that compiler and code?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:377 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:378 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Touhou gives us a concrete reason to expect that experience to help. Much of the game " -"code comes from the same author, ZUN, so recurring habits are a reasonable starting " -"assumption. The repositories back that up with useful examples: related loops and " -"helper arrangements have supplied hypotheses across games." +"Touhou gives us a concrete reason to expect that experience to help. Much of" +" the game code comes from the same author, ZUN, so recurring habits are a " +"reasonable starting assumption. The repositories back that up with useful " +"examples: related loops and helper arrangements have supplied hypotheses " +"across games." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:385 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Those source patterns become more specific when we include the compiler. Under a " -"particular version and set of options, small changes in source can produce repeatable " -"differences in machine code. Some of those differences are surprisingly obscure." +"Those source patterns become more specific when we include the compiler. " +"Under a particular version and set of options, small changes in source can " +"produce repeatable differences in machine code. Some of those differences " +"are surprisingly obscure." msgstr "" #. {ph0}: @@ -761,310 +827,320 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:391 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"In TH095, for example, {ph0}even the name used for a local variable could change where" -" VC7.1 stored it{ph1}. Moving the declaration alone did not solve the layout, but an " -"earlier background function had revealed a naming pattern that affected the compiler's" -" choice. That gave us a more promising hypothesis for {ph2}the reconstruction of " -"{ph3}{ph4}." +"In TH095, for example, {ph0}even the name used for a local variable could " +"change where VC7.1 stored it{ph1}. Moving the declaration alone did not " +"solve the layout, but an earlier background function had revealed a naming " +"pattern that affected the compiler's choice. That gave us a more promising " +"hypothesis for {ph2}the reconstruction of {ph3}{ph4}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:405 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Reusing that pattern for the file-size variable produced the required layout without " -"adding storage. The full function then matched." +"Reusing that pattern for the file-size variable produced the required layout" +" without adding storage. The full function then matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:410 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This is the sort of narrow detail a general model may not know when it arrives. A " -"specialist trained on this compiler could encounter many such cases and learn which " -"source variations are worth testing first." +"This is the sort of narrow detail a general model may not know when it " +"arrives. A specialist trained on this compiler could encounter many such " +"cases and learn which source variations are worth testing first." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:416 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The opportunity is especially clear in final matching problems where we already " -"understand the behavior. We are then asking which ordinary source form this compiler " -"turns into the observed instructions. Specialization could help the model propose " -"those forms more efficiently, while the target still determines which hypotheses " -"survive." +"The opportunity is especially clear in final matching problems where we " +"already understand the behavior. We are then asking which ordinary source " +"form this compiler turns into the observed instructions. Specialization " +"could help the model propose those forms more efficiently, while the target " +"still determines which hypotheses survive." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:424 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The useful patterns would have to retain their context, though. TH08 uses an earlier " -"Visual C++ version than TH095 and TH09. TH04 uses a different DOS-era compiler, and " -"its {ph0}player reconstruction{ph1} needed different hypotheses about source patterns " -"and how the compiled code was combined into an executable. Shared authorship gives us " -"a prior, but each target tells us whether it applies. Distinguishing those contexts is" -" part of what a specialist would need to learn." +"The useful patterns would have to retain their context, though. TH08 uses an" +" earlier Visual C++ version than TH095 and TH09. TH04 uses a different DOS-" +"era compiler, and its {ph0}player reconstruction{ph1} needed different " +"hypotheses about source patterns and how the compiled code was combined into" +" an executable. Shared authorship gives us a prior, but each target tells us" +" whether it applies. Distinguishing those contexts is part of what a " +"specialist would need to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:440 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:441 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Before deciding to teach those patterns through model training, I would look at the " -"knowledge we already keep in the repository. In the {ph0}previous essay{ph1}, I wrote " -"about it becoming the project's working memory. That memory includes compiler lessons," -" along with the source and failed experiments that made them useful." +"Before deciding to teach those patterns through model training, I would look" +" at the knowledge we already keep in the repository. In the {ph0}previous " +"essay{ph1}, I wrote about it becoming the project's working memory. That " +"memory includes compiler lessons, along with the source and failed " +"experiments that made them useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:450 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"By retrieving that record, an agent can start with a known result and inspect how we " -"reached it. It can also avoid alternatives that have already failed in the same " -"context. The starting point improves without changing the model's weights." +"By retrieving that record, an agent can start with a known result and " +"inspect how we reached it. It can also avoid alternatives that have already " +"failed in the same context. The starting point improves without changing the" +" model's weights." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:456 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max session{ph1} " -"drew a hypothesis from TH08's corresponding source family. That earlier source " -"suggested how to structure the loop and handle failures within it. TH09's own evidence" -" supplied the game-specific details, and clean rebuilds confirmed the complete match." +"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max " +"session{ph1} drew a hypothesis from TH08's corresponding source family. That" +" earlier source suggested how to structure the loop and handle failures " +"within it. TH09's own evidence supplied the game-specific details, and clean" +" rebuilds confirmed the complete match." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:467 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}\"The model did not know that compiler quirk\" and \"the model could not use it\"" -" are different problems.{ph1} Retrieval may solve the first, but turning that fact " -"into a useful candidate still takes work. And if the candidate fails, the model must " -"decide what the result means for its next attempt. Knowing the relevant pattern is " -"only the beginning of that process." +"{ph0}\"The model did not know that compiler quirk\" and \"the model could " +"not use it\" are different problems.{ph1} Retrieval may solve the first, but" +" turning that fact into a useful candidate still takes work. And if the " +"candidate fails, the model must decide what the result means for its next " +"attempt. Knowing the relevant pattern is only the beginning of that process." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:477 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"For that reason, I would include a smaller general model with good retrieval in any " -"comparison. Giving it the same library of experience would help us identify what " -"training adds: better candidate generation, better decisions after feedback, or both." +"For that reason, I would include a smaller general model with good retrieval" +" in any comparison. Giving it the same library of experience would help us " +"identify what training adds: better candidate generation, better decisions " +"after feedback, or both." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:485 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:486 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Those decisions after feedback are what I would most like to study. In agentic " -"reconstruction, the model proposes an explanation and tests it against the program. " -"Even when the candidate fails, the result can narrow the remaining possibilities and " -"suggest a more useful next experiment." +"Those decisions after feedback are what I would most like to study. In " +"agentic reconstruction, the model proposes an explanation and tests it " +"against the program. Even when the candidate fails, the result can narrow " +"the remaining possibilities and suggest a more useful next experiment." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:493 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Consider the temporary-results example again. Its final source shows the arrangement " -"that worked, but the route to that source contains more information. Each of the " -"following experiments helped identify what still needed to change." +"Consider the temporary-results example again. Its final source shows the " +"arrangement that worked, but the route to that source contains more " +"information. Each of the following experiments helped identify what still " +"needed to change." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:506 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:507 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:512 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:513 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:518 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:519 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" -msgid "Copying follows the original pattern, but temporary storage still differs." +msgid "" +"Copying follows the original pattern, but temporary storage still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:525 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:526 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"They get separate storage, but one still overlaps a value used later for collision " -"checks." +"They get separate storage, but one still overlaps a value used later for " +"collision checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:532 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:533 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Selected experiments from the attack-function reconstruction above, grouped by what " -"they taught us." +"Selected experiments from the attack-function reconstruction above, grouped " +"by what they taught us." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:542 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A training record that keeps this sequence can teach more than the final source alone." -" It connects each proposed change to an observed result and the next decision. Keeping" -" ineffective variations matters too: they tell a later agent which hypotheses have " -"already been tested in that context." +"A training record that keeps this sequence can teach more than the final " +"source alone. It connects each proposed change to an observed result and the" +" next decision. Keeping ineffective variations matters too: they tell a " +"later agent which hypotheses have already been tested in that context." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:549 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral result is a " -"reason to reconsider the variation; a changed mismatch may point to another cause. " -"When local edits stop being informative, the agent should be able to revisit the " -"source representation or inspect the evidence again." +"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral " +"result is a reason to reconsider the variation; a changed mismatch may point" +" to another cause. When local edits stop being informative, the agent should" +" be able to revisit the source representation or inspect the evidence again." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:558 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Learning to make those choices requires autonomy. Sometimes the useful next step is " -"inspecting another caller rather than compiling another edit. A rigid sequence of " -"required rewrites would remove that choice, along with part of the behavior we want " -"the model to learn." +"Learning to make those choices requires autonomy. Sometimes the useful next " +"step is inspecting another caller rather than compiling another edit. A " +"rigid sequence of required rewrites would remove that choice, along with " +"part of the behavior we want the model to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:567 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:568 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Bounded reconstruction gives us a practical environment for studying these choices. " -"Once the target and compiler are pinned, many source experiments produce quick, " -"repeatable feedback. The agent can compile a candidate, inspect the mismatch and use " -"that observation to choose its next step." +"Bounded reconstruction gives us a practical environment for studying these " +"choices. Once the target and compiler are pinned, many source experiments " +"produce quick, repeatable feedback. The agent can compile a candidate, " +"inspect the mismatch and use that observation to choose its next step." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:575 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Reinforcement learning could train that decision-making process through the feedback " -"it receives. A candidate accepted by a defined check gives us a concrete outcome, " -"while the sequence of attempts lets us observe how much work it took to reach it." +"Reinforcement learning could train that decision-making process through the " +"feedback it receives. A candidate accepted by a defined check gives us a " +"concrete outcome, while the sequence of attempts lets us observe how much " +"work it took to reach it." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:581 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"There is already research supporting this direction. {ph0}LLM4Decompile{ph1} studies " -"models specialized for decompilation. {ph2}AutoDecompiler{ph3} trains multi-turn " -"refinement using compiler and execution feedback. Their studies focus on functional " -"recovery. For this work, I would use them as a starting point for the related task of " -"finding source that matches a historical compiler's output." +"There is already research supporting this direction. {ph0}LLM4Decompile{ph1}" +" studies models specialized for decompilation. {ph2}AutoDecompiler{ph3} " +"trains multi-turn refinement using compiler and execution feedback. Their " +"studies focus on functional recovery. For this work, I would use them as a " +"starting point for the related task of finding source that matches a " +"historical compiler's output." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:593 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To reach such a well-defined task, though, we may first need to establish what a " -"function owns or devise a new runtime measurement. In TH08, for example, a " -"{ph0}collision difference led back to how the original program handled floating-point " -"calculations{ph1}. Before the agent could test a useful correction, it had to work out" -" what to measure." +"To reach such a well-defined task, though, we may first need to establish " +"what a function owns or devise a new runtime measurement. In TH08, for " +"example, a {ph0}collision difference led back to how the original program " +"handled floating-point calculations{ph1}. Before the agent could test a " +"useful correction, it had to work out what to measure." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:604 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This suggests another role for a broadly capable model: helping make the problem " -"checkable in the first place. Once that check exists, we can investigate how far a " -"learned search policy can get with it." +"This suggests another role for a broadly capable model: helping make the " +"problem checkable in the first place. Once that check exists, we can " +"investigate how far a learned search policy can get with it." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:612 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:613 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Once we train against that check, its coverage becomes part of what the model learns. " -"I call the reference or checker an oracle. Even if it gives a repeatable answer, we " -"still need to understand what that answer covers." +"Once we train against that check, its coverage becomes part of what the " +"model learns. I call the reference or checker an oracle. Even if it gives a " +"repeatable answer, we still need to understand what that answer covers." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:619 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"TH08 showed how much can hide outside that coverage. Some reconstructed functions " -"passed their exact comparisons with wrong floating constants. The comparator adjusted " -"relocated addresses before checking instructions, but it checked the values behind " -"those addresses only when they had been explicitly recorded for verification. Other " -"literal references could pass without their values being examined." +"TH08 showed how much can hide outside that coverage. Some reconstructed " +"functions passed their exact comparisons with wrong floating constants. The " +"comparator adjusted relocated addresses before checking instructions, but it" +" checked the values behind those addresses only when they had been " +"explicitly recorded for verification. Other literal references could pass " +"without their values being examined." msgstr "" #. {ph0}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:628 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in functions that" -" had already been accepted. In one calculation, the reconstructed source added {ph2} " -"where the original added {ph3}." +"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in " +"functions that had already been accepted. In one calculation, the " +"reconstructed source added {ph2} where the original added {ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:638 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "{ph0}A learner rewarded by the old check could learn to produce the wrong " -"reconstruction.{ph1} We had not trained an RL model against this oracle; the observed " -"failure was in the check itself. But using that check as a reward would have made the " -"same blind spot part of the learning environment." +"reconstruction.{ph1} We had not trained an RL model against this oracle; the" +" observed failure was in the check itself. But using that check as a reward " +"would have made the same blind spot part of the learning environment." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:648 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A functional test can have a similar blind spot. {ph0}Differential-fuzzing research on" -" LLM decompilers{ph1} has found behavior differences beyond the supplied tests. " -"Passing those tests therefore needs to be read in terms of the cases they exercise, " -"just as an instruction match needs to be read in terms of the bytes and data it " -"checks." +"A functional test can have a similar blind spot. {ph0}Differential-fuzzing " +"research on LLM decompilers{ph1} has found behavior differences beyond the " +"supplied tests. Passing those tests therefore needs to be read in terms of " +"the cases they exercise, just as an instruction match needs to be read in " +"terms of the bytes and data it checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:658 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Before using either kind of check as a reward, I would test it with deliberate " -"failures. I would also keep final acceptance outside the candidate's editable source, " -"so the model has to satisfy the check through its reconstruction. Otherwise, something" -" like a byte array copied from the target could satisfy a naive score without " -"recovering useful source." +"Before using either kind of check as a reward, I would test it with " +"deliberate failures. I would also keep final acceptance outside the " +"candidate's editable source, so the model has to satisfy the check through " +"its reconstruction. Otherwise, something like a byte array copied from the " +"target could satisfy a naive score without recovering useful source." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:666 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Improving the learner and improving its oracle belong to the same research " -"problem.{ph1} As the learner gets better at optimizing the feedback we give it, " -"understanding that feedback becomes more important too." +"{ph0}Improving the learner and improving its oracle belong to the same " +"research problem.{ph1} As the learner gets better at optimizing the feedback" +" we give it, understanding that feedback becomes more important too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:676 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:677 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"With those checks in place, I would start the comparison on a fixed VC7.1 task family." -" First, I would establish baselines for a strong general model and a smaller one. " -"Adding repository knowledge to the smaller model would show what retrieval changes. " -"From there, supervised specialization and an RL-trained version would let us examine " -"what training adds." +"With those checks in place, I would start the comparison on a fixed VC7.1 " +"task family. First, I would establish baselines for a strong general model " +"and a smaller one. Adding repository knowledge to the smaller model would " +"show what retrieval changes. From there, supervised specialization and an " +"RL-trained version would let us examine what training adds." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:685 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To make those comparisons informative, each model would receive the same target " -"evidence and tools. For the training-specific comparisons, I would keep the base model" -" and available knowledge fixed as well. Repeated trials would help distinguish a " -"reliable search strategy from a lucky candidate." +"To make those comparisons informative, each model would receive the same " +"target evidence and tools. For the training-specific comparisons, I would " +"keep the base model and available knowledge fixed as well. Repeated trials " +"would help distinguish a reliable search strategy from a lucky candidate." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:692 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"I would then separate two starting conditions: reconstructing a function from its " -"instructions, and closing the last few differences in maintained source. A specialist " -"might be excellent at the second task while a general model does much of the work " -"needed to reach it. Measuring them separately would reveal that division of work." +"I would then separate two starting conditions: reconstructing a function " +"from its instructions, and closing the last few differences in maintained " +"source. A specialist might be excellent at the second task while a general " +"model does much of the work needed to reach it. Measuring them separately " +"would reveal that division of work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:700 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Both tasks need genuinely held-out examples. Because related Touhou games share engine" -" code, holding out a game's name would still allow nearly identical functions to " -"appear in training. I would instead hold out source families and keep their accepted " -"answers out of both training and retrieval." +"Both tasks need genuinely held-out examples. Because related Touhou games " +"share engine code, holding out a game's name would still allow nearly " +"identical functions to appear in training. I would instead hold out source " +"families and keep their accepted answers out of both training and retrieval." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:707 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"On those examples, the outcome would be complete, independently validated matches. " -"Giving each model the same candidate or compile budget would help compare search " -"quality. Measuring elapsed time and total cost, including compilation, would tell us " -"whether that quality produces an efficient workflow. Training costs would need their " -"own accounting too." +"On those examples, the outcome would be complete, independently validated " +"matches. Giving each model the same candidate or compile budget would help " +"compare search quality. Measuring elapsed time and total cost, including " +"compilation, would tell us whether that quality produces an efficient " +"workflow. Training costs would need their own accounting too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:715 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Both views matter because a cheaper proposal can become an expensive workflow if it " -"causes more uninformative compiles. Conversely, a slower model may pay for itself by " -"finding a useful experiment sooner. The comparison should capture those costs." +"Both views matter because a cheaper proposal can become an expensive " +"workflow if it causes more uninformative compiles. Conversely, a slower " +"model may pay for itself by finding a useful experiment sooner. The " +"comparison should capture those costs." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:721 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Counting accepted results also keeps intermediate progress in perspective. One TH09 " -"{ph0}replay-save candidate{ph1} looked promising because the compiled function had the" -" expected size, but a full comparison still found substantial differences. Changes in " -"how the compiler arranges instructions can also make a candidate look closer without " -"resolving the underlying problem. Such diagnostics can guide the next experiment, but " -"I would validate any reward for \"getting closer\" against the full acceptance check." +"Counting accepted results also keeps intermediate progress in perspective. " +"One TH09 {ph0}replay-save candidate{ph1} looked promising because the " +"compiled function had the expected size, but a full comparison still found " +"substantial differences. Changes in how the compiler arranges instructions " +"can also make a candidate look closer without resolving the underlying " +"problem. Such diagnostics can guide the next experiment, but I would " +"validate any reward for \"getting closer\" against the full acceptance " +"check." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:736 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"I would be interested in the pattern across these results. If a specialist does well " -"within a familiar compiler family, does that advantage survive a toolchain change? And" -" once both models have good retrieval, how much does training still add? The answers " -"would help us decide where each kind of model is most useful." +"I would be interested in the pattern across these results. If a specialist " +"does well within a familiar compiler family, does that advantage survive a " +"toolchain change? And once both models have good retrieval, how much does " +"training still add? The answers would help us decide where each kind of " +"model is most useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:745 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:746 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"If the models turn out to help at different stages, a useful arrangement might be a " -"broad agent with access to a specialist. Once a task becomes a familiar compiler " -"search, it could ask the specialist for candidates. If the results stop making sense, " -"the broader agent could return to the target evidence or investigate the measurement " -"itself." +"If the models turn out to help at different stages, a useful arrangement " +"might be a broad agent with access to a specialist. Once a task becomes a " +"familiar compiler search, it could ask the specialist for candidates. If the" +" results stop making sense, the broader agent could return to the target " +"evidence or investigate the measurement itself." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:754 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"In that arrangement, specialization becomes a tool the agent can choose as the " -"investigation develops. The agent keeps the freedom to change direction that made the " -"earlier breakthroughs possible." +"In that arrangement, specialization becomes a tool the agent can choose as " +"the investigation develops. The agent keeps the freedom to change direction " +"that made the earlier breakthroughs possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:759 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This follows naturally from the industrial shift I described in the previous essay. " -"Being able to run many more experiments changes how we organize the work. It also " -"gives us a reason to ask which decisions need broad judgment and which improve through" -" repeated experience with a particular craft." +"This follows naturally from the industrial shift I described in the previous" +" essay. Being able to run many more experiments changes how we organize the " +"work. It also gives us a reason to ask which decisions need broad judgment " +"and which improve through repeated experience with a particular craft." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:766 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"For now, the strongest general model has earned its place in my workflow by opening " -"problems I had left unresolved. Those successes are what make me want to examine the " -"work more closely: how much depended on the model's breadth, and how much could be " -"handled by a model trained in this particular kind of reconstruction?" +"For now, the strongest general model has earned its place in my workflow by " +"opening problems I had left unresolved. Those successes are what make me " +"want to examine the work more closely: how much depended on the model's " +"breadth, and how much could be handled by a model trained in this particular" +" kind of reconstruction?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:774 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}The repositories give us a way to test the question.{ph1} I would like to use " -"that record to build the comparison and see what we learn." +"{ph0}The repositories give us a way to test the question.{ph1} I would like " +"to use that record to build the comparison and see what we learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:784 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:785 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and experiment " -"context." +"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and " +"experiment context." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:792 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The examples describe historical function-level comparisons recorded in the linked " -"commits. Whole-game runtime checks are separate milestones. Source and matching " -"records were reviewed on 13 October 2026." +"The examples describe historical function-level comparisons recorded in the " +"linked commits. Whole-game runtime checks are separate milestones. Source " +"and matching records were reviewed on 13 October 2026." msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:798 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model used at the " -"time, so that label alone does not identify an individual run. Explicit model names in" -" the other cited commits establish their recorded attribution; the histories do not " -"contain uniform per-run cost or effort measurements." +"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model " +"used at the time, so that label alone does not identify an individual run. " +"Explicit model names in the other cited commits establish their recorded " +"attribution; the histories do not contain uniform per-run cost or effort " +"measurements." msgstr "" #. {ph0}: @@ -1310,12 +1394,12 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:807 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and " -"{ph4}complete cold reconstruction{ph5}." +"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and" +" {ph4}complete cold reconstruction{ph5}." msgstr "" #. {ph0}: @@ -1332,12 +1416,12 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:819 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, {ph4}Astra's " -"new graph{ph5} and its {ph6}accepted recompile replay{ph7}." +"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, " +"{ph4}Astra's new graph{ph5} and its {ph6}accepted recompile replay{ph7}." msgstr "" #. {ph0}: @@ -1354,12 +1438,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:835 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, {ph4}TH04 " -"player source and linker order{ph5} and {ph6}Luna's TH09 enemy-spawn closure{ph7}." +"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, " +"{ph4}TH04 player source and linker order{ph5} and {ph6}Luna's TH09 enemy-" +"spawn closure{ph7}." msgstr "" #. {ph0}: @@ -1376,19 +1461,21 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:851 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, {ph4}TH08 " -"numerical investigation{ph5} and {ph6}TH09 replay-save reconstruction{ph7}." +"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, " +"{ph4}TH08 numerical investigation{ph5} and {ph6}TH09 replay-save " +"reconstruction{ph7}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:868 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The proposed specialist and RL comparisons are future experiments. The project " -"histories motivate them; no trained specialist was evaluated for this essay." +"The proposed specialist and RL comparisons are future experiments. The " +"project histories motivate them; no trained specialist was evaluated for " +"this essay." msgstr "" #: website/public/blog/reverse-engineering-models/index.html:6 @@ -1399,31 +1486,31 @@ msgstr "" #: website/public/blog/reverse-engineering-models/index.html:7 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"What Touhou reconstruction taught me about general models, specialist models and " -"learning to propose better hypotheses from compiler feedback." +"What Touhou reconstruction taught me about general models, specialist models" +" and learning to propose better hypotheses from compiler feedback." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:262 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:500 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:893 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:111 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "" @@ -1432,141 +1519,142 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:208 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:211 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:213 +#: website/public/blog/touhou-reconstruction/index.html:215 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:218 +#: website/public/blog/touhou-reconstruction/index.html:220 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:223 +#: website/public/blog/touhou-reconstruction/index.html:225 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:228 +#: website/public/blog/touhou-reconstruction/index.html:230 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:233 +#: website/public/blog/touhou-reconstruction/index.html:235 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:245 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:246 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:334 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:339 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:345 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:346 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -1575,7 +1663,7 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:348 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -1584,40 +1672,40 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:354 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:367 +#: website/public/blog/touhou-reconstruction/index.html:369 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." +"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:374 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -1625,7 +1713,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -1633,7 +1721,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:378 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -1641,7 +1729,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:379 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -1649,7 +1737,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -1657,7 +1745,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -1665,7 +1753,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -1673,61 +1761,65 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:385 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:390 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:391 +#: website/public/blog/touhou-reconstruction/index.html:393 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." +"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:398 +#: website/public/blog/touhou-reconstruction/index.html:400 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." +"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:405 +#: website/public/blog/touhou-reconstruction/index.html:407 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:411 +#: website/public/blog/touhou-reconstruction/index.html:413 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." +"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:420 +#: website/public/blog/touhou-reconstruction/index.html:422 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?" +"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:427 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "" @@ -1736,178 +1828,180 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:428 +#: website/public/blog/touhou-reconstruction/index.html:430 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:437 +#: website/public/blog/touhou-reconstruction/index.html:439 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:442 +#: website/public/blog/touhou-reconstruction/index.html:444 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:447 +#: website/public/blog/touhou-reconstruction/index.html:449 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:454 +#: website/public/blog/touhou-reconstruction/index.html:456 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:462 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:465 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." +"An oracle is software someone wrote. TH08 gave me a clear reminder of how " +"much can depend on that software." msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:467 +#: website/public/blog/touhou-reconstruction/index.html:469 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:473 +#: website/public/blog/touhou-reconstruction/index.html:475 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:480 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:486 +#: website/public/blog/touhou-reconstruction/index.html:488 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." +"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}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:493 +#: website/public/blog/touhou-reconstruction/index.html:495 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:499 +#: website/public/blog/touhou-reconstruction/index.html:501 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:510 +#: website/public/blog/touhou-reconstruction/index.html:512 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:517 #, 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." +"{ph0}The oracle needed reconstructing too.{ph1} Repairing it was part of " +"repairing the game." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:519 +#: website/public/blog/touhou-reconstruction/index.html:521 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:527 +#: website/public/blog/touhou-reconstruction/index.html:529 #, 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}" +"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}: -#: website/public/blog/touhou-reconstruction/index.html:536 +#: website/public/blog/touhou-reconstruction/index.html:538 #, 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}" +"{ph0}A successful batch gave us both recovered code and a better environment" +" for the next batch.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:544 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "" @@ -1916,81 +2010,86 @@ msgstr "" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:545 +#: website/public/blog/touhou-reconstruction/index.html:547 #, 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:" +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:556 +#: website/public/blog/touhou-reconstruction/index.html:558 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…" +"The rise of grifters (AI decompilations and ports) in this space taking from" +" our work paints a bad image for future decompilation efforts…" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:562 +#: website/public/blog/touhou-reconstruction/index.html:564 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." +"contribution policy excludes pull requests produced primarily with AI. They " +"have put their free time into difficult work, and that work helped make my " +"continuation possible. I respect the effort behind it. The disagreement I " +"want to discuss is about how reconstruction should proceed and how a " +"contribution should be judged." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:571 +#: website/public/blog/touhou-reconstruction/index.html:573 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." +"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:578 +#: website/public/blog/touhou-reconstruction/index.html:580 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." +"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:583 +#: website/public/blog/touhou-reconstruction/index.html:585 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." +"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:590 +#: website/public/blog/touhou-reconstruction/index.html:592 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." +"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:596 +#: website/public/blog/touhou-reconstruction/index.html:598 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." +"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:604 +#: website/public/blog/touhou-reconstruction/index.html:606 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." +"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}: #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:610 +#: website/public/blog/touhou-reconstruction/index.html:612 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:628 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:629 +#: website/public/blog/touhou-reconstruction/index.html:631 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:637 +#: website/public/blog/touhou-reconstruction/index.html:639 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:644 +#: website/public/blog/touhou-reconstruction/index.html:646 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." +"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:650 +#: website/public/blog/touhou-reconstruction/index.html:652 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:657 +#: website/public/blog/touhou-reconstruction/index.html:659 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." +"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:663 +#: website/public/blog/touhou-reconstruction/index.html:665 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:669 +#: website/public/blog/touhou-reconstruction/index.html:671 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:677 +#: website/public/blog/touhou-reconstruction/index.html:679 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." +"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:685 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "" @@ -2100,55 +2204,59 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:686 +#: website/public/blog/touhou-reconstruction/index.html:688 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:695 +#: website/public/blog/touhou-reconstruction/index.html:697 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:701 +#: website/public/blog/touhou-reconstruction/index.html:703 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." +"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:707 +#: website/public/blog/touhou-reconstruction/index.html:709 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:715 +#: website/public/blog/touhou-reconstruction/index.html:717 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:721 +#: website/public/blog/touhou-reconstruction/index.html:723 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." +"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 "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:726 +#: website/public/blog/touhou-reconstruction/index.html:728 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:739 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" -msgid "Once a reconstruction works, I want someone else to be able to understand it." +msgid "" +"Once a reconstruction works, I want someone else to be able to understand " +"it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:744 +#: website/public/blog/touhou-reconstruction/index.html:746 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:750 +#: website/public/blog/touhou-reconstruction/index.html:752 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:758 +#: website/public/blog/touhou-reconstruction/index.html:760 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:765 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:767 +#: website/public/blog/touhou-reconstruction/index.html:769 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:774 +#: website/public/blog/touhou-reconstruction/index.html:776 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:781 +#: website/public/blog/touhou-reconstruction/index.html:783 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:790 +#: website/public/blog/touhou-reconstruction/index.html:792 #, 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." +"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}: -#: website/public/blog/touhou-reconstruction/index.html:797 +#: website/public/blog/touhou-reconstruction/index.html:799 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:805 +#: website/public/blog/touhou-reconstruction/index.html:807 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:812 +#: website/public/blog/touhou-reconstruction/index.html:814 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:819 +#: website/public/blog/touhou-reconstruction/index.html:821 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:830 +#: website/public/blog/touhou-reconstruction/index.html:832 #, 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." +"{ph0}Exact reconstruction gives us a reference. Semantic reconstruction " +"makes the recovered knowledge usable.{ph1} A port can then build on both." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:839 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:840 +#: website/public/blog/touhou-reconstruction/index.html:842 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." +"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:847 +#: website/public/blog/touhou-reconstruction/index.html:849 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." +"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:854 +#: website/public/blog/touhou-reconstruction/index.html:856 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." +"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:861 +#: website/public/blog/touhou-reconstruction/index.html:863 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:868 +#: website/public/blog/touhou-reconstruction/index.html:870 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." +"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 "" -#. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:875 +#: website/public/blog/touhou-reconstruction/index.html:877 #, 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:890 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:898 +#: website/public/blog/touhou-reconstruction/index.html:900 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." +"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}: +#. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:904 +#: website/public/blog/touhou-reconstruction/index.html:906 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:914 +#: website/public/blog/touhou-reconstruction/index.html:916 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." +"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:922 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:923 +#: website/public/blog/touhou-reconstruction/index.html:925 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." +"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:929 +#: website/public/blog/touhou-reconstruction/index.html:931 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:936 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2446,25 +2567,26 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:943 +#: website/public/blog/touhou-reconstruction/index.html:945 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." +"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:951 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:952 +#: website/public/blog/touhou-reconstruction/index.html:954 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." +"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 "" #. {ph0}: @@ -2485,15 +2607,16 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/529eb1a3afa05ae36467731eaccb12e3e50e132f" #. > #. {ph9}: -#. {ph10}: +#. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:960 +#: website/public/blog/touhou-reconstruction/index.html:962 #, 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}." +"{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}: @@ -2518,13 +2641,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:983 +#: website/public/blog/touhou-reconstruction/index.html:985 #, 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}." +"{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}: @@ -2533,12 +2656,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1006 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, 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." +"{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}: @@ -2553,12 +2677,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1015 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, 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}." +"{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}: @@ -2571,48 +2696,52 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1029 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, 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}." +"{ph0}Semantic reconstruction:{ph1} {ph2}TH08's readability playbook{ph3} and" +" {ph4}the Factory's phase order and two validation paths{ph5}." msgstr "" #. {ph0}: #. {ph1}: -#. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1041 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, 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." +"{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}: +#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/agent- +#. autonomy.md" > #. {ph3}: #. {ph4}: +#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- +#. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1050 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:1065 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -2626,76 +2755,76 @@ msgstr "" #: 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." +"N0zoM1z0 reflects on manual reverse engineering, Touhou reconstruction with " +"AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:359 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:388 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:1090 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "" -#: website/public/contributors/index.html:112 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:204 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "" -#: website/public/contributors/index.html:205 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "" -#: website/public/contributors/index.html:206 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "" -#: website/public/contributors/index.html:207 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "" -#: website/public/contributors/index.html:212 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "" -#: website/public/contributors/index.html:217 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "" -#: website/public/contributors/index.html:227 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "" -#: website/public/contributors/index.html:229 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "" @@ -2703,13 +2832,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1116 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" -#: website/public/contributors/index.html:1121 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -2721,20 +2850,21 @@ msgstr "" #: website/public/contributors/index.html:7 msgctxt "page:contributors/index.html" -msgid "Meet the people who contribute code, documentation, tests and ideas to REA." +msgid "" +"Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "" -#: website/public/contributors/index.html:230 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "" -#: website/public/contributors/index.html:1141 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "" -#: website/public/examples/dino-lab/index.html:112 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "" @@ -2743,18 +2873,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "" -#: website/public/examples/dino-lab/index.html:207 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "" -#: website/public/examples/dino-lab/index.html:208 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "" @@ -2763,24 +2893,24 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:209 +#: website/public/examples/dino-lab/index.html:211 #, 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}" +"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 "" -#: website/public/examples/dino-lab/index.html:218 -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -2788,7 +2918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:221 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -2796,7 +2926,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -2804,73 +2934,73 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:223 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "" -#: website/public/examples/dino-lab/index.html:228 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "" -#: website/public/examples/dino-lab/index.html:229 +#: website/public/examples/dino-lab/index.html:231 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." +"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 "" -#: website/public/examples/dino-lab/index.html:235 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "" -#: website/public/examples/dino-lab/index.html:271 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "" -#: website/public/examples/dino-lab/index.html:274 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/examples/dino-lab/index.html:288 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/examples/dino-lab/index.html:291 +#: website/public/examples/dino-lab/index.html:293 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:296 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Enable JavaScript to play the reconstruction. The code and explanation above remain " -"readable." +"Enable JavaScript to play the reconstruction. The code and explanation above" +" remain readable." msgstr "" -#: website/public/examples/dino-lab/index.html:304 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "" @@ -2878,15 +3008,16 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:305 +#: website/public/examples/dino-lab/index.html:307 #, 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:" +"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 "" -#: website/public/examples/dino-lab/index.html:315 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "" @@ -2894,97 +3025,99 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:321 +#: website/public/examples/dino-lab/index.html:323 #, 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." +"The settings are {ph0}, {ph1} and {ph2}. The game runs this branch on an " +"update without a collision." msgstr "" -#: website/public/examples/dino-lab/index.html:326 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:329 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "" -#: website/public/examples/dino-lab/index.html:332 -#: website/public/examples/dino-lab/index.html:431 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "" -#: website/public/examples/dino-lab/index.html:345 +#: website/public/examples/dino-lab/index.html:347 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." +"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 "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:351 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:359 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:360 +#: website/public/examples/dino-lab/index.html:362 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." +"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:369 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "" -#: website/public/examples/dino-lab/index.html:370 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "" -#: website/public/examples/dino-lab/index.html:371 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:398 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "" -#: website/public/examples/dino-lab/index.html:401 +#: website/public/examples/dino-lab/index.html:403 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." +"Values rounded to three decimals. The branch checks before adding, so the " +"final increment can take speed just above 13." msgstr "" -#: website/public/examples/dino-lab/index.html:407 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2993,16 +3126,18 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:413 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" -msgid "Follow the {ph0}browser connection steps{ph1}, using {ph2} as the page URL." +msgid "" +"Follow the {ph0}browser connection steps{ph1}, using {ph2} as the page URL." msgstr "" -#: website/public/examples/dino-lab/index.html:420 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Give your agent the page URL and local debugging endpoint, then copy this prompt." +"Give your agent the page URL and local debugging endpoint, then copy this " +"prompt." msgstr "" #. {ph0}: -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3025,22 +3160,23 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:440 +#: website/public/examples/dino-lab/index.html:442 #, 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}" +"{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}: -#: website/public/examples/dino-lab/index.html:449 +#: website/public/examples/dino-lab/index.html:451 #, 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}" +"Ask a follow-up: {ph0}“Where is jump height calculated? Add a jump-height " +"control to the new version.”{ph1}" msgstr "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:456 +#: website/public/examples/dino-lab/index.html:458 #, 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." +"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 "" #: website/public/examples/dino-lab/index.html:6 @@ -3064,67 +3201,68 @@ msgstr "" #: 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." +"Read the dinosaur game’s speed rule with REA, rebuild it, then change the " +"speed and play." msgstr "" -#: website/public/examples/dino-lab/index.html:226 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:257 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Dinosaur mini-game. Use the Jump button or press Space while the game is focused." +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." msgstr "" -#: website/public/examples/dino-lab/index.html:332 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:431 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/examples/dino-lab/index.html:485 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "" -#: website/public/faq/index.html:111 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:203 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "" -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:211 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -3132,7 +3270,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:212 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -3140,7 +3278,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -3148,169 +3286,173 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:214 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "" -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "" -#: website/public/faq/index.html:226 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "" #. {ph0}: Node.js -#: website/public/faq/index.html:227 +#: website/public/faq/index.html:229 #, 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." +"With {ph0} and npm available, run setup, choose your coding agent and review" +" the proposed changes." msgstr "" -#: website/public/faq/index.html:234 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "" -#: website/public/faq/index.html:235 website/public/faq/index.html:276 -#: website/public/faq/index.html:294 website/public/faq/index.html:378 -#: website/public/faq/index.html:425 website/public/faq/index.html:465 -#: website/public/faq/index.html:485 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:246 +#: website/public/faq/index.html:248 #, 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." +"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 "" -#: website/public/faq/index.html:255 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "" -#: website/public/faq/index.html:256 +#: website/public/faq/index.html:258 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:263 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "" -#: website/public/faq/index.html:268 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "" -#: website/public/faq/index.html:269 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" -msgid "REA releases frequently, including bug fixes. If you installed the CLI with npm:" +msgid "" +"REA releases frequently, including bug fixes. If you installed the CLI with " +"npm:" msgstr "" -#: website/public/faq/index.html:275 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "" #. {ph0}: npx -#: website/public/faq/index.html:287 +#: website/public/faq/index.html:289 #, 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:" +"Follow the setup refresh command printed by the update. If you set up your " +"agent through {ph0}, run:" msgstr "" -#: website/public/faq/index.html:293 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "" #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:305 +#: website/public/faq/index.html:307 #, 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." +"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 "" -#: website/public/faq/index.html:313 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:316 +#: website/public/faq/index.html:318 #, 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." +"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 "" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "" -#: website/public/faq/index.html:330 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "" -#: website/public/faq/index.html:331 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:333 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode and " -"references." +"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode " +"and references." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:338 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source locations." +"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source " +"locations." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:343 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -3318,99 +3460,101 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:348 +#: website/public/faq/index.html:350 #, 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." +"REA also has workflows for managed assemblies, Android APKs, firmware and " +"packaged resources. {ph0}See the case studies{ph1} for worked " +"investigations." msgstr "" -#: website/public/faq/index.html:356 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "" -#: website/public/faq/index.html:357 +#: website/public/faq/index.html:359 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:362 +#: website/public/faq/index.html:364 #, 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}." +"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 "" -#: website/public/faq/index.html:370 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "" -#: website/public/faq/index.html:371 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" -"Yes. The CLI uses the same analysis workflows. For a local JavaScript or Electron app:" +"Yes. The CLI uses the same analysis workflows. For a local JavaScript or " +"Electron app:" msgstr "" -#: website/public/faq/index.html:377 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:390 +#: website/public/faq/index.html:392 #, 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." +"Replace the path with an extracted application folder or ASAR file. {ph0}Use" +" the CLI{ph1} for installation options." msgstr "" -#: website/public/faq/index.html:397 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "" -#: website/public/faq/index.html:398 +#: website/public/faq/index.html:400 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." +"Native analysis returns assembly and pseudocode, with calls, references and " +"relevant constants. JavaScript analysis returns modules, their relationships" +" and source locations." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:403 +#: website/public/faq/index.html:405 #, 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." +"implementation. The {ph0}DX-Ball calculation{ph1} and {ph2}CTF flag " +"checker{ph3} show how that process works." msgstr "" -#: website/public/faq/index.html:414 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "" -#: website/public/faq/index.html:415 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" -"Give it a local target and one behavior to investigate. For a JavaScript or Electron " -"app:" +"Give it a local target and one behavior to investigate. For a JavaScript or " +"Electron app:" msgstr "" #. {ph0}: -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3434,44 +3578,44 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:434 +#: website/public/faq/index.html:436 #, 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}" +"{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}: -#: website/public/faq/index.html:444 +#: website/public/faq/index.html:446 #, 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." +"Replace the path with your target. The {ph0}guides{ph1} provide prompts for " +"native, Electron and browser examples." msgstr "" -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "" -#: website/public/faq/index.html:457 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "" #. {ph0}: doctor -#: website/public/faq/index.html:458 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"Restart or reconnect your agent after setup. Check its REA registration with {ph0}; " -"for Codex:" +"Restart or reconnect your agent after setup. Check its REA registration with" +" {ph0}; for Codex:" msgstr "" -#: website/public/faq/index.html:464 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "" @@ -3479,89 +3623,90 @@ msgstr "" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:476 +#: website/public/faq/index.html:478 #, 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:" +"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 "" -#: website/public/faq/index.html:484 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:496 +#: website/public/faq/index.html:498 #, 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}." +"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 "" -#: website/public/faq/index.html:504 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:505 +#: website/public/faq/index.html:507 #, 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}." +"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 "" -#: website/public/faq/index.html:514 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:517 #, 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." +"{ph0}Update REA{ph1}, restart your agent and retry the same task. A recent " +"release may already fix the problem." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:519 +#: website/public/faq/index.html:521 #, 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." +"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 "" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "" -#: website/public/faq/index.html:536 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "" -#: website/public/faq/index.html:537 +#: website/public/faq/index.html:539 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." +"REA analyzes targets on your machine. Your agent receives the results, and " +"its model provider's data policy applies to those results." msgstr "" -#: website/public/faq/index.html:544 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "" @@ -3570,23 +3715,24 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:545 +#: website/public/faq/index.html:547 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:557 +#: website/public/faq/index.html:559 #, 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}." +"Bug reports, feature requests, documentation and code improvements are " +"welcome too. You can also discuss an example in the {ph0}community{ph1}." msgstr "" #: website/public/faq/index.html:6 @@ -3597,102 +3743,102 @@ msgstr "" #: 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." +"Answers to common REA questions: installation, updates, analysis tools, " +"coding agents, troubleshooting and sharing examples." msgstr "" -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "" -#: website/public/faq/index.html:217 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "" -#: website/public/faq/index.html:235 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "" -#: website/public/faq/index.html:276 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "" -#: website/public/faq/index.html:294 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "" -#: website/public/faq/index.html:378 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "" -#: website/public/faq/index.html:425 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "" -#: website/public/faq/index.html:465 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "" -#: website/public/faq/index.html:485 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "" -#: website/public/faq/index.html:583 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "" -#: website/public/first-investigation/index.html:111 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "" #. {ph0}:
-#: website/public/first-investigation/index.html:206 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "" -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" -"Use REA to inspect a small app, follow its Export notes button and check one detail " -"yourself." +"Use REA to inspect a small app, follow its Export notes button and check one" +" detail yourself." msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:211 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -3700,7 +3846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:221 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -3708,7 +3854,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:222 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -3716,7 +3862,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -3724,13 +3870,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:224 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "" -#: website/public/first-investigation/index.html:229 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "" @@ -3738,12 +3884,12 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:230 +#: website/public/first-investigation/index.html:232 #, 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}." +"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 "" #. {ph0}: -#: website/public/first-investigation/index.html:238 -#: website/public/first-investigation/index.html:288 -#: website/public/first-investigation/index.html:410 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:243 -#: website/public/first-investigation/index.html:265 -#: website/public/first-investigation/index.html:293 -#: website/public/first-investigation/index.html:415 -#: website/public/first-investigation/index.html:456 -#: website/public/first-investigation/index.html:473 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "" @@ -3779,88 +3925,93 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:252 +#: website/public/first-investigation/index.html:254 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:262 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "" -#: website/public/first-investigation/index.html:274 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" -"Review the plan, approve the setup, then restart your agent. Already connected? " -"Continue below." +"Review the plan, approve the setup, then restart your agent. Already " +"connected? Continue below." msgstr "" -#: website/public/first-investigation/index.html:280 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:281 +#: website/public/first-investigation/index.html:283 #, 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." +"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 "" #. {ph0}: #. {ph2}: -#. {ph3}: https://rea.tools/examples/notes-example.zip +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip #. {ph4}: notes.csv #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:302 +#: website/public/first-investigation/index.html:304 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" -"Your agent downloads the files and gives the unpacked folder to REA for inspection." +"Your agent downloads the files and gives the unpacked folder to REA for " +"inspection." msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:320 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:328 +#: website/public/first-investigation/index.html:330 #, 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." +"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 "" -#: website/public/first-investigation/index.html:335 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "" -#: website/public/first-investigation/index.html:336 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -3869,15 +4020,16 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:338 +#: website/public/first-investigation/index.html:340 #, 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}." +"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 "" -#: website/public/first-investigation/index.html:346 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "" @@ -3890,7 +4042,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:348 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -3904,12 +4056,12 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:356 +#: website/public/first-investigation/index.html:358 #, 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}" +"{ph0}Bridge · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}Sends a named message to the " +"main process.{ph7}" msgstr "" #. {ph0}: @@ -3921,58 +4073,58 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:364 +#: website/public/first-investigation/index.html:366 #, 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}" +"{ph0}Handler · {ph1}{ph2}{ph3}Write {ph4}{ph5}{ph6}Calls the formatter in " +"{ph7} and writes the file.{ph8}" msgstr "" -#: website/public/first-investigation/index.html:375 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" -"REA’s static analysis pairs the message with its handler. The destination is read from" -" code." +"REA’s static analysis pairs the message with its handler. The destination is" +" read from code." msgstr "" #. {ph0}: main.js -#: website/public/first-investigation/index.html:382 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" msgstr "" -#: website/public/first-investigation/index.html:383 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "" -#: website/public/first-investigation/index.html:391 +#: website/public/first-investigation/index.html:393 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." +"The file path, formatter and write call are together in this handler. Ask " +"your agent to show these lines if its answer leaves them out." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:396 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" -#: website/public/first-investigation/index.html:403 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "" -#: website/public/first-investigation/index.html:404 +#: website/public/first-investigation/index.html:406 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?" +"A comma separates CSV columns. What happens when a note title itself " +"contains a comma or quotation marks?" msgstr "" #. {ph0}: #. {ph7}: -#: website/public/first-investigation/index.html:424 +#: website/public/first-investigation/index.html:426 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:437 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:442 +#: website/public/first-investigation/index.html:444 #, 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}." +"The title stays in one quoted field; each quotation mark is doubled. This " +"checks the formatter directly with {ph0}." msgstr "" -#: website/public/first-investigation/index.html:448 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:449 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "" -#: website/public/first-investigation/index.html:490 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "" -#: website/public/first-investigation/index.html:491 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "" -#: website/public/first-investigation/index.html:493 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" -msgid "What happens if the file can’t be written? Follow the error back to the page." +msgid "" +"What happens if the file can’t be written? Follow the error back to the " +"page." msgstr "" -#: website/public/first-investigation/index.html:498 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" -"Or give your agent an app of your own and ask about one button, file or behavior." +"Or give your agent an app of your own and ask about one button, file or " +"behavior." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:503 +#: website/public/first-investigation/index.html:505 #, 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}" +"{ph0}How Notion copies text and HTML{ph1}{ph2}Follow a clipboard feature in " +"a packaged Electron app.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:509 +#: website/public/first-investigation/index.html:511 #, 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}" +"{ph0}How DX-Ball calculates sound panning{ph1}{ph2}Read the original " +"instructions and the reconstruction’s checks.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:517 +#: website/public/first-investigation/index.html:519 #, 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}" +"{ph0}Troubleshoot setup or analysis{ph1}{ph2}Update REA and check the " +"connection if you get stuck.{ph3}" msgstr "" #: website/public/first-investigation/index.html:6 @@ -4084,93 +4239,95 @@ msgstr "" #: 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." +"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 "" -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "" -#: website/public/first-investigation/index.html:227 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "" -#: website/public/first-investigation/index.html:243 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/first-investigation/index.html:265 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "" -#: website/public/first-investigation/index.html:293 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/first-investigation/index.html:415 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "" -#: website/public/first-investigation/index.html:456 -#: website/public/first-investigation/index.html:473 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "" -#: website/public/first-investigation/index.html:544 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "" -#: website/public/get-started/index.html:111 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:203 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "" -#: website/public/get-started/index.html:204 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "" -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" -"Set up your computer and coding agent, connect REA, then investigate a small app." +"Set up your computer and coding agent, connect REA, then investigate a small" +" app." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:209 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"New to this? Follow the four steps below. Already have an agent? Go straight to " -"{ph0}Connect REA{ph1}." +"New to this? Follow the four steps below. Already have an agent? Go straight" +" to {ph0}Connect REA{ph1}." msgstr "" -#: website/public/get-started/index.html:216 website/public/get-started/index.html:215 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -4178,7 +4335,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -4186,7 +4343,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -4194,7 +4351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:221 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -4202,7 +4359,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:222 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" @@ -4210,7 +4367,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -4218,25 +4375,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:224 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" msgstr "" -#: website/public/get-started/index.html:229 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "" -#: website/public/get-started/index.html:230 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" -"Use the computer where your target files are stored. A local coding agent can read " -"those files and run tools for you." +"Use the computer where your target files are stored. A local coding agent " +"can read those files and run tools for you." msgstr "" -#: website/public/get-started/index.html:235 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "" @@ -4245,11 +4402,12 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Windows:{ph1} open the Start menu, type {ph2}PowerShell{ph3} and press Enter." +"{ph0}Windows:{ph1} open the Start menu, type {ph2}PowerShell{ph3} and press " +"Enter." msgstr "" #. {ph0}: @@ -4258,10 +4416,11 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." +msgid "" +"{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." msgstr "" #. {ph0}: @@ -4269,7 +4428,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:245 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -4282,91 +4441,110 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:250 +#: website/public/get-started/index.html:252 #, 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." +"Paste a command with {ph0} {ph1} (macOS: {ph2} {ph3}; Linux terminals: {ph4}" +" {ph5} {ph6}), then press Enter." msgstr "" -#: website/public/get-started/index.html:255 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" -"Commands go in the terminal. Prompts labeled “Your coding agent” go in the agent's " -"chat." +"Commands go in the terminal. Prompts labeled “Your coding agent” go in the " +"agent's chat." msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:260 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with " -"{ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" #. {ph0}: Node.js -#: website/public/get-started/index.html:266 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" msgstr "" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "" -#: website/public/get-started/index.html:272 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "" -#: website/public/get-started/index.html:273 website/public/get-started/index.html:296 -#: website/public/get-started/index.html:326 website/public/get-started/index.html:351 -#: website/public/get-started/index.html:374 website/public/get-started/index.html:389 -#: website/public/get-started/index.html:423 website/public/get-started/index.html:454 -#: website/public/get-started/index.html:468 website/public/get-started/index.html:486 -#: website/public/get-started/index.html:538 website/public/get-started/index.html:552 -#: website/public/get-started/index.html:584 website/public/get-started/index.html:613 -#: website/public/get-started/index.html:748 website/public/get-started/index.html:778 -#: website/public/get-started/index.html:803 website/public/get-started/index.html:818 -#: website/public/get-started/index.html:866 website/public/get-started/index.html:899 -#: website/public/get-started/index.html:1051 website/public/get-started/index.html:1113 -#: website/public/get-started/index.html:1136 website/public/get-started/index.html:1160 -#: website/public/get-started/index.html:1208 website/public/get-started/index.html:1283 -#: website/public/get-started/index.html:1309 website/public/get-started/index.html:1326 -#: website/public/get-started/index.html:1569 website/public/get-started/index.html:1628 -#: website/public/get-started/index.html:1647 website/public/get-started/index.html:1669 -#: website/public/get-started/index.html:1712 website/public/get-started/index.html:1742 -#: website/public/get-started/index.html:1763 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:285 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an older" -" version or \"not recognized\" / \"command not found\", install {ph1} 24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" #. {ph0}: node -v -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:309 #, 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}." +"Type Y if asked to accept the terms. Close PowerShell, open it again, then " +"run {ph0}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:311 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -4377,17 +4555,17 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:317 +#: website/public/get-started/index.html:319 #, 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}, use {ph3} instead. For npm, use {ph4}:" +"If PowerShell later says {ph0}\"running scripts is disabled on this " +"system\"{ph1} when you run {ph2}, use {ph3} instead. For npm, use {ph4}:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:340 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4395,124 +4573,126 @@ msgid "" "(.pkg){ph1}, open it and follow the installer. Then reopen Terminal." msgstr "" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:366 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Install curl and unzip first if they are missing. On Debian or Ubuntu, run {ph0}; on " -"other distributions, use your package manager." +"Install curl and unzip first if they are missing. On Debian or Ubuntu, run " +"{ph0}; on other distributions, use your package manager." msgstr "" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:402 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Your distribution's own {ph0} package is often older than 22.23.4, so check {ph1} if " -"you use it instead." +"Your distribution's own {ph0} package is often older than 22.23.4, so check " +"{ph1} if you use it instead." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:408 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Prefer a regular installer? Download the LTS version from {ph0}nodejs.org{ph1}." +msgid "" +"Prefer a regular installer? Download the LTS version from " +"{ph0}nodejs.org{ph1}." msgstr "" -#: website/public/get-started/index.html:415 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "" -#: website/public/get-started/index.html:416 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" -#: website/public/get-started/index.html:435 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" -"Keep this terminal open for the next step. If you already have a working folder, open " -"it instead." +"Keep this terminal open for the next step. If you already have a working " +"folder, open it instead." msgstr "" -#: website/public/get-started/index.html:442 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "" -#: website/public/get-started/index.html:443 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" -"Your agent is the AI you talk to. REA supplies the inspection tools it uses. Pick one " -"client below; open its instructions if you haven't used it before." +"Your agent is the AI you talk to. REA supplies the inspection tools it uses." +" Pick one client below; open its instructions if you haven't used it before." msgstr "" -#: website/public/get-started/index.html:449 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "" -#: website/public/get-started/index.html:450 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" -#: website/public/get-started/index.html:479 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" -"After installation, reopen your terminal and return to the working folder. Then start " -"Codex:" +"After installation, reopen your terminal and return to the working folder. " +"Then start Codex:" msgstr "" -#: website/public/get-started/index.html:497 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" -"Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to the " -"terminal. When the message box appears, continue to step 3." +"Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " +"the terminal. When the message box appears, continue to step 3." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:502 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "" -#: website/public/get-started/index.html:509 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" -#: website/public/get-started/index.html:514 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "" -#: website/public/get-started/index.html:515 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" -"Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open the agent " -"chat; in VS Code, set up GitHub Copilot first." +"Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " +"the agent chat; in VS Code, set up GitHub Copilot first." msgstr "" #. {ph0}: @@ -4521,61 +4701,62 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:521 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Cursor setup{ph1} · {ph2}Windsurf / Devin Desktop setup{ph3} · {ph4}VS Code and " -"Copilot setup{ph5}" +"{ph0}Cursor setup{ph1} · {ph2}Windsurf / Devin Desktop setup{ph3} · {ph4}VS " +"Code and Copilot setup{ph5}" msgstr "" -#: website/public/get-started/index.html:533 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "" -#: website/public/get-started/index.html:534 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "" #. {ph0}: claude -#: website/public/get-started/index.html:563 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Reopen your terminal, return to your working folder and run {ph0}. Follow the sign-in " -"prompts. Access uses an eligible Claude subscription or a configured API account." +"Reopen your terminal, return to your working folder and run {ph0}. Follow " +"the sign-in prompts. Access uses an eligible Claude subscription or a " +"configured API account." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:568 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "" -#: website/public/get-started/index.html:575 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "" -#: website/public/get-started/index.html:576 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" -"Install Claude Desktop on Windows or macOS and sign in. Quit it completely, then run " -"this command in a terminal you opened outside Claude:" +"Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " +"then run this command in a terminal you opened outside Claude:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Review and approve the plan, reopen Claude, then {ph0}check the connection in step " -"3{ph1}." +"Review and approve the plan, reopen Claude, then {ph0}check the connection " +"in step 3{ph1}." msgstr "" #. {ph0}: @@ -4583,55 +4764,57 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:599 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection details{ph3}" +msgid "" +"{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection " +"details{ph3}" msgstr "" -#: website/public/get-started/index.html:609 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:624 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Run {ph0} in your working folder. Use {ph1} in its chat to connect your model account," -" then select a model." +"Run {ph0} in your working folder. Use {ph1} in its chat to connect your " +"model account, then select a model." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:629 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "" -#: website/public/get-started/index.html:636 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "" #. {ph0}: --client -#: website/public/get-started/index.html:637 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"The npm 6.4.0 release supports the clients below. Use the ID with {ph0} when choosing " -"a client explicitly." +"The npm 6.4.0 release supports the clients below. Use the ID with {ph0} when" +" choosing a client explicitly." msgstr "" -#: website/public/get-started/index.html:645 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "" -#: website/public/get-started/index.html:646 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "" @@ -4641,58 +4824,59 @@ msgstr "" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:721 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) and DeepSeek Harness" -" ({ph4}) are available on repository main; use a source build or a release containing " -"those integrations." +"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) and " +"DeepSeek Harness ({ph4}) are available on repository main; use a source " +"build or a release containing those integrations." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- +#. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:728 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release availability{ph3}" +"{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release " +"availability{ph3}" msgstr "" -#: website/public/get-started/index.html:740 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:741 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"In Grok Bot's chat, ask it to add a custom MCP server named {ph0} using this command " -"on the Bot's computer:" +"In Grok Bot's chat, ask it to add a custom MCP server named {ph0} using this" +" command on the Bot's computer:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:759 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "" -#: website/public/get-started/index.html:770 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -4705,7 +4889,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:773 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4718,56 +4902,58 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:787 +#: website/public/get-started/index.html:789 #, 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}" +"{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 "" -#: website/public/get-started/index.html:799 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "" -#: website/public/get-started/index.html:814 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "" #. {ph0}: y -#: website/public/get-started/index.html:829 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If npm asks to download the package, type {ph0} and press Enter. In REA's client list," -" use the arrow keys to move, Space to select your client and Enter to continue." +"If npm asks to download the package, type {ph0} and press Enter. In REA's " +"client list, use the arrow keys to move, Space to select your client and " +"Enter to continue." msgstr "" -#: website/public/get-started/index.html:835 +#: website/public/get-started/index.html:837 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." +"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 "" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" -"MCP is the connection that lets your agent call REA. The skill gives it a workflow for" -" investigating software." +"MCP is the connection that lets your agent call REA. The skill gives it a " +"workflow for investigating software." msgstr "" -#: website/public/get-started/index.html:844 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" -"For the first exercise, you can skip the optional Hopper installation. Restart your " -"client when setup finishes." +"For the first exercise, you can skip the optional Hopper installation. " +"Restart your client when setup finishes." msgstr "" -#: website/public/get-started/index.html:849 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "" @@ -4776,56 +4962,58 @@ msgstr "" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:850 +#: website/public/get-started/index.html:852 #, 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." +"{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}: -#: website/public/get-started/index.html:857 +#: website/public/get-started/index.html:859 #, 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." +"{ph0}Terminal agents{ph1} (Claude Code, Codex, Gemini CLI): exit the session" +" and start it again." msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:877 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Replace {ph0} with your client's setup ID. A successful check reports {ph1}. Then ask " -"your agent:" +"Replace {ph0} with your client's setup ID. A successful check reports {ph1}." +" Then ask your agent:" msgstr "" -#: website/public/get-started/index.html:883 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" -#: website/public/get-started/index.html:890 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:891 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/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." +"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 "" -#: website/public/get-started/index.html:898 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "" @@ -4833,21 +5021,23 @@ msgstr "" #. {ph0}: #. {ph2}: -#. {ph3}: https://rea.tools/examples/notes-example.zip +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip #. {ph4}: notes.csv #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:908 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/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}" +"{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 "" -#: website/public/get-started/index.html:922 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -4856,55 +5046,56 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:924 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/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}." +"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}: #. {ph1}: -#: website/public/get-started/index.html:931 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "" -#: website/public/get-started/index.html:937 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:940 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/get-started/index.html:948 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/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." +"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}: /absolute/path/to/app -#: website/public/get-started/index.html:954 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Use REA to inspect the app at {ph0}. Find how it exports data and show the relevant " -"files and lines." +"Use REA to inspect the app at {ph0}. Find how it exports data and show the " +"relevant files and lines." msgstr "" -#: website/public/get-started/index.html:961 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "" @@ -4913,170 +5104,175 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:963 +#: website/public/get-started/index.html:965 #, 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." +"{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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:970 #, 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}." +"{ph0}macOS:{ph1} in Finder, right-click the folder, hold Option and choose " +"{ph2}Copy \"…\" as Pathname{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:972 +#: website/public/get-started/index.html:974 #, 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." +"{ph0}Any system:{ph1} drag the folder into a terminal window and its path " +"appears." msgstr "" -#: website/public/get-started/index.html:977 website/public/get-started/index.html:1735 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:984 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "" -#: website/public/get-started/index.html:985 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" -"Choose the section for your target. A provider is the local analysis tool REA uses for" -" that kind of software." +"Choose the section for your target. A provider is the local analysis tool " +"REA uses for that kind of software." msgstr "" -#: website/public/get-started/index.html:990 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" -#: website/public/get-started/index.html:993 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" -"Install one analysis tool on the computer running REA. The host is your operating " -"system; the target is the program you want to inspect." +"Install one analysis tool on the computer running REA. The host is your " +"operating system; the target is the program you want to inspect." msgstr "" -#: website/public/get-started/index.html:1002 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "" -#: website/public/get-started/index.html:1011 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "" -#: website/public/get-started/index.html:1017 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "" -#: website/public/get-started/index.html:1023 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "" -#: website/public/get-started/index.html:1024 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "" -#: website/public/get-started/index.html:1025 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "" -#: website/public/get-started/index.html:1031 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "" -#: website/public/get-started/index.html:1032 +#: website/public/get-started/index.html:1034 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." +"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 "" -#: website/public/get-started/index.html:1037 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" -"Choose Hopper in setup and review its separate installation plan. On macOS, choose " -"demo mode or activate your license when Hopper first opens. On Linux, setup prepares " -"the supported demo and its private display." +"Choose Hopper in setup and review its separate installation plan. On macOS, " +"choose demo mode or activate your license when Hopper first opens. On Linux," +" setup prepares the supported demo and its private display." msgstr "" -#: website/public/get-started/index.html:1043 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" -"Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or Omarchy. " -"Hopper is commercial software; its demo has vendor-defined limits." +"Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " +"Omarchy. Hopper is commercial software; its demo has vendor-defined limits." msgstr "" -#: website/public/get-started/index.html:1062 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" -"If macOS asks for Automation permission, allow the app that starts REA in System " -"Settings → Privacy & Security → Automation, then retry." +"If macOS asks for Automation permission, allow the app that starts REA in " +"System Settings → Privacy & Security → Automation, then retry." msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1067 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "" -#: website/public/get-started/index.html:1079 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" -"Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the package " -"matching your computer's architecture." +"Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " +"package matching your computer's architecture." msgstr "" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1084 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Download Ghidra 12.1.4 from the release's Assets list and extract the {ph0} archive. " -"Choose the release archive, not “Source code”." +"Download Ghidra 12.1.4 from the release's Assets list and extract the {ph0} " +"archive. Choose the release archive, not “Source code”." msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1089 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Find the extracted folder containing {ph0} or {ph1}. Use that folder for {ph2}." +msgid "" +"Find the extracted folder containing {ph0} or {ph1}. Use that folder for " +"{ph2}." msgstr "" #. {ph0}: @@ -5085,7 +5281,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1095 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -5093,70 +5289,73 @@ msgstr "" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1105 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Check Java. The first command prints {ph0}; use that folder for {ph1}. The second " -"confirms the compiler is installed:" +"Check Java. The first command prints {ph0}; use that folder for {ph1}. The " +"second confirms the compiler is installed:" msgstr "" -#: website/public/get-started/index.html:1126 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "" -#: website/public/get-started/index.html:1127 +#: website/public/get-started/index.html:1129 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:" +"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 "" -#: website/public/get-started/index.html:1150 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" -msgid "Replace the two paths with your installations, then review setup's plan." +msgid "" +"Replace the two paths with your installations, then review setup's plan." msgstr "" -#: website/public/get-started/index.html:1156 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "" -#: website/public/get-started/index.html:1172 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" -"Replace both paths with your existing installations. For a fresh macOS or Linux arm64 " -"installation, build the native decompiler for your computer before continuing." +"Replace both paths with your existing installations. For a fresh macOS or " +"Linux arm64 installation, build the native decompiler for your computer " +"before continuing." msgstr "" -#: website/public/get-started/index.html:1178 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "" -#: website/public/get-started/index.html:1179 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" -"On macOS, the build needs Xcode Command Line Tools, make and bison. Use the guide for " -"your computer:" +"On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " +"guide for your computer:" msgstr "" #. {ph0}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- +#. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1184 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1190 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -5166,335 +5365,354 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1196 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:1204 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" -#: website/public/get-started/index.html:1221 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" -"Keep these commands in the same terminal session. Rerun setup after setting the paths," -" approve the updated client configuration, then restart your agent." +"Keep these commands in the same terminal session. Rerun setup after setting " +"the paths, approve the updated client configuration, then restart your " +"agent." msgstr "" -#. {ph0}: #. {ph1}: -#. {ph2}: +#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1226 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra guide{ph3}" +"{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra " +"guide{ph3}" msgstr "" -#: website/public/get-started/index.html:1239 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "" -#: website/public/get-started/index.html:1240 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" -"Use the IDA provider guide to prepare an upstream MCP registration. Choose an attached" -" GUI with the original binary open, or a headless supervisor that opens a private " -"database." +"Use the IDA provider guide to prepare an upstream MCP registration. Choose " +"an attached GUI with the original binary open, or a headless supervisor that" +" opens a private database." msgstr "" -#: website/public/get-started/index.html:1245 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" -"Verified profiles include the Windows legacy GUI and headless supervisor, plus a macOS" -" arm64 headless supervisor with IDA Professional 9.1. The optional native GUI bridge " -"has its own version and platform requirements." +"Verified profiles include the Windows legacy GUI and headless supervisor, " +"plus a macOS arm64 headless supervisor with IDA Professional 9.1. The " +"optional native GUI bridge has its own version and platform requirements." msgstr "" -#. {ph0}: #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1251 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"The macOS headless profile and native GUI bridge require a {ph0}REA source build{ph1} " -"or a release containing those changes. npm {ph2} does not include them." +"The macOS headless profile and native GUI bridge require a {ph0}REA source " +"build{ph1} or a release containing those changes. npm {ph2} does not include" +" them." msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1260 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands below." +"From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands " +"below." msgstr "" -#: website/public/get-started/index.html:1267 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1268 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Install and configure the upstream server using the IDA guide below. Then save its " -"working registration as {ph0} in a text editor. On Windows, choose “All files” when " -"saving in Notepad so it doesn't add {ph1}." +"Install and configure the upstream server using the IDA guide below. Then " +"save its working registration as {ph0} in a text editor. On Windows, choose " +"“All files” when saving in Notepad so it doesn't add {ph1}." msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1275 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"For a headless supervisor providing {ph0}, {ph1} and {ph2}, the file can look like " -"this:" +"For a headless supervisor providing {ph0}, {ph1} and {ph2}, the file can " +"look like this:" msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1298 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"For an attached legacy 1.4.0 GUI server, copy its working {ph0}, {ph1} and optional " -"{ph2} into the file. Open the original binary in IDA and start its upstream plugin " -"before asking REA to inspect it." +"For an attached legacy 1.4.0 GUI server, copy its working {ph0}, {ph1} and " +"optional {ph2} into the file. Open the original binary in IDA and start its " +"upstream plugin before asking REA to inspect it." msgstr "" -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" -"Use the JSON registration file you prepared with the provider guide, then rerun setup " -"and restart your agent." +"Use the JSON registration file you prepared with the provider guide, then " +"rerun setup and restart your agent." msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1344 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" -#: website/public/get-started/index.html:1352 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" -"Once connected, give your agent the original executable's full path and name your " -"provider:" +"Once connected, give your agent the original executable's full path and name" +" your provider:" msgstr "" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1357 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Use REA with my configured provider to inspect {ph0}. List its functions and strings, " -"then explain the part that handles user input with references to the code." +"Use REA with my configured provider to inspect {ph0}. List its functions and" +" strings, then explain the part that handles user input with references to " +"the code." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1364 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "" -#: website/public/get-started/index.html:1369 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "" -#: website/public/get-started/index.html:1372 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" -"Open the guide for the target you have. Each guide gives the additional tools, " -"supported hosts and first command." +"Open the guide for the target you have. Each guide gives the additional " +"tools, supported hosts and first command." msgstr "" -#: website/public/get-started/index.html:1380 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "" -#: website/public/get-started/index.html:1381 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "" -#: website/public/get-started/index.html:1382 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "" -#: website/public/get-started/index.html:1387 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1389 website/public/get-started/index.html:1394 -#: website/public/get-started/index.html:1399 website/public/get-started/index.html:1409 -#: website/public/get-started/index.html:1419 website/public/get-started/index.html:1429 -#: website/public/get-started/index.html:1439 website/public/get-started/index.html:1449 -#: website/public/get-started/index.html:1459 website/public/get-started/index.html:1469 -#: website/public/get-started/index.html:1479 website/public/get-started/index.html:1489 -#: website/public/get-started/index.html:1499 website/public/get-started/index.html:1509 -#: website/public/get-started/index.html:1519 website/public/get-started/index.html:1529 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "" -#: website/public/get-started/index.html:1392 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "" -#: website/public/get-started/index.html:1397 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr "" -#: website/public/get-started/index.html:1407 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "" -#: website/public/get-started/index.html:1417 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "" -#: website/public/get-started/index.html:1427 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "" -#: website/public/get-started/index.html:1437 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "" -#: website/public/get-started/index.html:1447 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "" -#: website/public/get-started/index.html:1457 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "" -#: website/public/get-started/index.html:1467 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "" -#: website/public/get-started/index.html:1477 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "" -#: website/public/get-started/index.html:1487 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "" -#: website/public/get-started/index.html:1497 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "" -#: website/public/get-started/index.html:1507 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "" -#: website/public/get-started/index.html:1517 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "" -#: website/public/get-started/index.html:1527 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#. {ph2}: +#. {ph2}: #. {ph3}: -#. {ph4}: +#. {ph4}: #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1539 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Flutter guide{ph1} · {ph2}Packages and resources{ph3} · {ph4}EVM bytecode{ph5} · " -"{ph6}All investigation guides{ph7}" +"{ph0}Flutter guide{ph1} · {ph2}Packages and resources{ph3} · {ph4}EVM " +"bytecode{ph5} · {ph6}All investigation guides{ph7}" msgstr "" -#: website/public/get-started/index.html:1559 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "" -#: website/public/get-started/index.html:1561 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "" -#: website/public/get-started/index.html:1562 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" -"Analyze a JavaScript or Electron application folder or ASAR archive without running " -"the app:" +"Analyze a JavaScript or Electron application folder or ASAR archive without " +"running the app:" msgstr "" -#: website/public/get-started/index.html:1568 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1580 +#: website/public/get-started/index.html:1582 #, 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." +"Replace the path with your extracted app directory or {ph0} file. On " +"Windows, a path such as {ph1} works here." msgstr "" -#: website/public/get-started/index.html:1586 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "" #. {ph0}: resources -#: website/public/get-started/index.html:1587 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -5503,8 +5721,9 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1592 +#. >C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -5512,10 +5731,11 @@ msgstr "" #. {ph0}: #. {ph1}: -#. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar +#. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1598 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5526,168 +5746,173 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1606 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "" #. {ph0}: app.asar -#: website/public/get-started/index.html:1611 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" -#: website/public/get-started/index.html:1616 +#: website/public/get-started/index.html:1618 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." +"The result identifies the app, shows connections between modules and gives " +"their source locations. Connections REA cannot resolve are marked in the " +"result." msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:1621 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "" -#: website/public/get-started/index.html:1627 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1639 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "" #. {ph0}: main -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Replace {ph0} with a function name or address from the target's function list. Ghidra " -"must be configured first." +"Replace {ph0} with a function name or address from the target's function " +"list. Ghidra must be configured first." msgstr "" -#: website/public/get-started/index.html:1662 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" -msgid "On macOS or Linux, you can also use the curl installer after preparing Node.js:" +msgid "" +"On macOS or Linux, you can also use the curl installer after preparing " +"Node.js:" msgstr "" #. {ph0}: rea setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Follow the setup prompts to connect your agent. If they don't appear, run {ph0}." +msgid "" +"Follow the setup prompts to connect your agent. If they don't appear, run " +"{ph0}." msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1684 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If your shell can't find {ph0}, use the executable path printed by the installer. On " -"Linux, the default setup command is {ph1}." +"If your shell can't find {ph0}, use the executable path printed by the " +"installer. On Linux, the default setup command is {ph1}." msgstr "" -#: website/public/get-started/index.html:1693 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "" -#: website/public/get-started/index.html:1695 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "" #. {ph0}: doctor -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1698 #, 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:" +"Restart or reconnect the client after setup. Check its REA connection with " +"{ph0}; for Codex:" msgstr "" -#: website/public/get-started/index.html:1700 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" -"Use the client check in step 3 with your setup ID. In editor clients, enable REA in " -"MCP settings and allow its tools in the agent chat." +"Use the client check in step 3 with your setup ID. In editor clients, enable" +" REA in MCP settings and allow its tools in the agent chat." msgstr "" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "" -#: website/public/get-started/index.html:1711 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "" -#: website/public/get-started/index.html:1723 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" -#: website/public/get-started/index.html:1728 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "" -#: website/public/get-started/index.html:1729 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" -"Use Windows PowerShell for Windows clients and analysis tools. If your agent runs " -"inside WSL, install Node.js and REA inside that Linux environment and use Linux paths " -"there. Headless providers run on the same host as REA." +"Use Windows PowerShell for Windows clients and analysis tools. If your agent" +" runs inside WSL, install Node.js and REA inside that Linux environment and " +"use Linux paths there. Headless providers run on the same host as REA." msgstr "" -#: website/public/get-started/index.html:1738 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "" -#: website/public/get-started/index.html:1755 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "" -#: website/public/get-started/index.html:1756 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" -"To refresh your agent connection, run the latest setup command again, review its plan " -"and restart your client." +"To refresh your agent connection, run the latest setup command again, review" +" its plan and restart your client." msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1774 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If you installed the global CLI, update it with {ph0}. Use {ph1} to remove REA's " -"client configuration and skill." +"If you installed the global CLI, update it with {ph0}. Use {ph1} to remove " +"REA's client configuration and skill." msgstr "" #. {ph0}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- +#. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1780 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" @@ -5697,43 +5922,47 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}" +msgid "" +"{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1792 +#: website/public/get-started/index.html:1794 #, 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}" +"{ph0}Choose an investigation guide{ph1}{ph2}Worked examples for a binary, an" +" Electron app and a browser.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}GitHub issues{ph1}{ph2}Report a problem with the command and diagnostics.{ph3}" +"{ph0}GitHub issues{ph1}{ph2}Report a problem with the command and " +"diagnostics.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1803 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}REA community{ph1}{ph2}Questions, investigations and work in progress.{ph3}" +msgid "" +"{ph0}REA community{ph1}{ph2}Questions, investigations and work in " +"progress.{ph3}" msgstr "" #: website/public/get-started/index.html:6 @@ -5744,92 +5973,104 @@ msgstr "" #: 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." +"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 "" -#: website/public/get-started/index.html:227 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "" -#: website/public/get-started/index.html:273 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "" -#: website/public/get-started/index.html:296 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "" -#: website/public/get-started/index.html:326 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "" -#: website/public/get-started/index.html:351 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "" -#: website/public/get-started/index.html:374 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "" -#: website/public/get-started/index.html:389 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "" -#: website/public/get-started/index.html:423 website/public/get-started/index.html:454 -#: website/public/get-started/index.html:468 website/public/get-started/index.html:486 -#: website/public/get-started/index.html:538 website/public/get-started/index.html:552 -#: website/public/get-started/index.html:584 website/public/get-started/index.html:613 -#: website/public/get-started/index.html:748 website/public/get-started/index.html:803 -#: website/public/get-started/index.html:818 website/public/get-started/index.html:866 -#: website/public/get-started/index.html:1051 website/public/get-started/index.html:1113 -#: website/public/get-started/index.html:1136 website/public/get-started/index.html:1160 -#: website/public/get-started/index.html:1208 website/public/get-started/index.html:1283 -#: website/public/get-started/index.html:1309 website/public/get-started/index.html:1326 -#: website/public/get-started/index.html:1647 website/public/get-started/index.html:1669 -#: website/public/get-started/index.html:1742 website/public/get-started/index.html:1763 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "" -#: website/public/get-started/index.html:778 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/get-started/index.html:899 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/get-started/index.html:1569 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "" -#: website/public/get-started/index.html:1628 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "" -#: website/public/get-started/index.html:1712 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "" -#: website/public/get-started/index.html:1827 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/browser/index.html:111 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "" @@ -5838,34 +6079,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "" #. {ph0}:
-#: website/public/guides/browser/index.html:207 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "" -#: website/public/guides/browser/index.html:208 +#: website/public/guides/browser/index.html:210 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." +"Use a small browser app to connect an action, its network request and the " +"JavaScript that builds a download." msgstr "" -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -5873,7 +6114,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:218 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -5881,7 +6122,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:219 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5889,7 +6130,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -5897,13 +6138,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:221 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "" -#: website/public/guides/browser/index.html:226 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "" @@ -5913,15 +6154,16 @@ msgstr "" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:227 +#: website/public/guides/browser/index.html:229 #, 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." +"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 "" -#: website/public/guides/browser/index.html:235 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "" @@ -5932,12 +6174,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:237 +#: website/public/guides/browser/index.html:239 #, 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}" +"{ph0}01 · You{ph1}{ph2}Click Export notes{ph3}{ph4}Perform the action in " +"your browser while the capture is running.{ph5}" msgstr "" #. {ph0}: @@ -5946,12 +6188,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:245 +#: website/public/guides/browser/index.html:247 #, 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}" +"{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}: @@ -5962,60 +6204,60 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:253 +#: website/public/guides/browser/index.html:255 #, 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}" +"{ph0}03 · Your agent{ph1}{ph2}Read the export code{ph3}{ph4}Connect the " +"observed request to {ph5} in {ph6}.{ph7}" msgstr "" -#: website/public/guides/browser/index.html:266 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "" -#: website/public/guides/browser/index.html:272 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "" -#: website/public/guides/browser/index.html:273 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" -"Open the hosted Notes example with a separate browser profile and a local debugging " -"port. On Linux:" +"Open the hosted Notes example with a separate browser profile and a local " +"debugging port. On Linux:" msgstr "" -#: website/public/guides/browser/index.html:279 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "" -#: website/public/guides/browser/index.html:280 -#: website/public/guides/browser/index.html:312 -#: website/public/guides/browser/index.html:346 -#: website/public/guides/browser/index.html:365 -#: website/public/guides/browser/index.html:430 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "" -#: website/public/guides/browser/index.html:294 +#: website/public/guides/browser/index.html:296 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." +"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 "" -#: website/public/guides/browser/index.html:299 +#: website/public/guides/browser/index.html:301 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." +"REA connects to this existing browser. You keep control of the page, perform" +" the action, and close the browser when finished." msgstr "" -#: website/public/guides/browser/index.html:305 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "" @@ -6028,7 +6270,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -6040,119 +6282,121 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:321 +#: website/public/guides/browser/index.html:323 #, 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}" +"{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}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:329 +#: website/public/guides/browser/index.html:331 #, 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." +"Example prompt. Give your agent the debugging endpoint, {ph0}, and the page " +"URL. Let it start the capture before you click." msgstr "" -#: website/public/guides/browser/index.html:334 +#: website/public/guides/browser/index.html:336 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." +"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:341 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "" -#: website/public/guides/browser/index.html:345 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:358 +#: website/public/guides/browser/index.html:360 #, 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:" +"Choose the target with the Notes example URL. Replace {ph0} below with its " +"ID, then run:" msgstr "" -#: website/public/guides/browser/index.html:364 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:380 +#: website/public/guides/browser/index.html:382 #, 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." +"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 "" -#: website/public/guides/browser/index.html:385 +#: website/public/guides/browser/index.html:387 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." +"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 "" -#: website/public/guides/browser/index.html:392 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "" -#: website/public/guides/browser/index.html:395 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "" -#: website/public/guides/browser/index.html:400 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "" -#: website/public/guides/browser/index.html:401 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "" -#: website/public/guides/browser/index.html:418 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "" @@ -6160,41 +6404,41 @@ msgstr "" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:419 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "" -#: website/public/guides/browser/index.html:429 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:443 +#: website/public/guides/browser/index.html:445 #, 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:" +"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 "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:450 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:463 +#: website/public/guides/browser/index.html:465 #, 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}." +"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 "" #. {ph0}: @@ -6205,41 +6449,44 @@ msgstr "" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:468 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" -msgid "{ph0}Open the example{ph1} · {ph2}Download {ph3}{ph4} · {ph5}Download {ph6}{ph7}" +msgid "" +"{ph0}Open the example{ph1} · {ph2}Download {ph3}{ph4} · {ph5}Download " +"{ph6}{ph7}" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:479 +#: website/public/guides/browser/index.html:481 #, 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?" +"Find the script that requests {ph0}. How does it escape titles containing " +"commas or quotation marks?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:484 +#: website/public/guides/browser/index.html:486 #, 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." +"For an installed JavaScript or Electron app, continue with the " +"{ph0}application workflow{ph1} to follow files and process boundaries." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:489 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" -"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ captures, MCP " -"and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA capture Evidence, or " -"connect Everywhere's MCP server to inspect captured traffic with your agent." +"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ " +"captures, MCP and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA " +"capture Evidence, or connect Everywhere's MCP server to inspect captured " +"traffic with your agent." msgstr "" #: website/public/guides/browser/index.html:6 @@ -6250,220 +6497,220 @@ msgstr "" #: 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." +"Observe a Notes export with REA: select a browser page, capture a click, " +"inspect the request and follow the export script." msgstr "" -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "" -#: website/public/guides/browser/index.html:224 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "" -#: website/public/guides/browser/index.html:280 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "" -#: website/public/guides/browser/index.html:312 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/browser/index.html:346 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "" -#: website/public/guides/browser/index.html:365 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "" -#: website/public/guides/browser/index.html:430 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "" -#: website/public/guides/browser/index.html:517 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/index.html:111 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:203 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "" -#: website/public/guides/index.html:204 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "" -#: website/public/guides/index.html:205 +#: website/public/guides/index.html:207 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." +"Analyze a native function, an Electron export or a browser request. Each " +"guide includes a prompt, code and results." msgstr "" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "" -#: website/public/guides/index.html:214 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "" -#: website/public/guides/index.html:215 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "" -#: website/public/guides/index.html:220 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "" -#: website/public/guides/index.html:222 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "" -#: website/public/guides/index.html:223 +#: website/public/guides/index.html:225 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." +"Start with a Windows game executable. Inspect instructions, follow a caller," +" read numeric constants and check the recovered C." msgstr "" -#: website/public/guides/index.html:228 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "" -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "" -#: website/public/guides/index.html:230 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "" -#: website/public/guides/index.html:231 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "" -#: website/public/guides/index.html:237 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/index.html:239 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "" -#: website/public/guides/index.html:240 +#: website/public/guides/index.html:242 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." +"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 "" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "" -#: website/public/guides/index.html:247 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "" -#: website/public/guides/index.html:248 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "" -#: website/public/guides/index.html:248 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "" -#: website/public/guides/index.html:250 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:253 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." msgstr "" -#: website/public/guides/index.html:260 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "" -#: website/public/guides/index.html:262 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "" -#: website/public/guides/index.html:263 +#: website/public/guides/index.html:265 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." +"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:268 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "" -#: website/public/guides/index.html:269 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "" -#: website/public/guides/index.html:270 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "" -#: website/public/guides/index.html:272 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "" @@ -6476,16 +6723,16 @@ msgstr "" #: 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." +"Learn REA through short worked examples: a native calculation, an Electron " +"CSV export and a browser request." msgstr "" -#: website/public/guides/index.html:292 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/javascript/index.html:111 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "" @@ -6494,33 +6741,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "" #. {ph0}:
-#: website/public/guides/javascript/index.html:207 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "" -#: website/public/guides/javascript/index.html:208 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" -"Follow a button click from the page API, through Electron IPC, to the CSV file writer." +"Follow a button click from the page API, through Electron IPC, to the CSV " +"file writer." msgstr "" -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -6528,7 +6776,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:218 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6536,7 +6784,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:219 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -6544,7 +6792,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -6552,29 +6800,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:221 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:226 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:227 +#: website/public/guides/javascript/index.html:229 #, 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." +"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 "" -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "" @@ -6588,12 +6836,12 @@ msgstr "" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:238 +#: website/public/guides/javascript/index.html:240 #, 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}" +"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} calls the API exposed " +"by {ph7}.{ph8}" msgstr "" #. {ph0}: @@ -6603,12 +6851,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:246 +#: website/public/guides/javascript/index.html:248 #, 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}" +"{ph0}Between processes{ph1}{ph2}{ph3}{ph4}{ph5}The preload invokes an IPC " +"channel: a named message to the main process.{ph6}" msgstr "" #. {ph0}: @@ -6618,41 +6866,44 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:254 +#: website/public/guides/javascript/index.html:256 #, 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}" +"{ph0}Main process{ph1}{ph2}An export handler{ph3}{ph4}{ph5} handles that " +"channel and calls the CSV writer.{ph6}" msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "" -#: website/public/guides/javascript/index.html:267 +#: website/public/guides/javascript/index.html:269 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." +"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 "" -#: website/public/guides/javascript/index.html:275 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:276 +#: website/public/guides/javascript/index.html:278 #, 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:" +msgid "" +"{ph0}Connect your agent to REA{ph1} and give it the app directory or ASAR " +"file:" msgstr "" #. {ph0}: -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:284 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/javascript/index.html:286 -#: website/public/guides/javascript/index.html:435 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "" @@ -6681,194 +6932,198 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:295 +#: website/public/guides/javascript/index.html:297 #, 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}" +"{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}: app.asar -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" -msgid "Example prompt. Include the absolute path to the application folder or {ph0}." +msgid "" +"Example prompt. Include the absolute path to the application folder or " +"{ph0}." msgstr "" -#: website/public/guides/javascript/index.html:307 +#: website/public/guides/javascript/index.html:309 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." +"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 "" -#: website/public/guides/javascript/index.html:314 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "" -#: website/public/guides/javascript/index.html:315 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:318 -#: website/public/guides/javascript/index.html:334 -#: website/public/guides/javascript/index.html:349 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" msgstr "" -#: website/public/guides/javascript/index.html:328 +#: website/public/guides/javascript/index.html:330 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." +"The page knows the method name. The implementation lives in the preload, " +"which exposes it to the renderer." msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:342 +#: website/public/guides/javascript/index.html:344 #, 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." +"REA records {ph0} and the literal channel {ph1}. It pairs that invocation " +"with the single matching handler in the main process." msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:359 +#: website/public/guides/javascript/index.html:361 #, 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." +"Reading the handler answers the original question: {ph0} formats the notes, " +"and the main process writes {ph1} into the user's Downloads folder." msgstr "" -#: website/public/guides/javascript/index.html:366 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "" -#: website/public/guides/javascript/index.html:376 +#: website/public/guides/javascript/index.html:378 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." +"Recorded by REA 4.1.0 on the downloadable example below. Source locations " +"accompany the API, channel and handler findings." msgstr "" -#: website/public/guides/javascript/index.html:382 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:383 +#: website/public/guides/javascript/index.html:385 #, 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." +"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}: +#. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:389 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:398 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "" -#: website/public/guides/javascript/index.html:434 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:447 +#: website/public/guides/javascript/index.html:449 #, 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}." +"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 "" -#: website/public/guides/javascript/index.html:453 +#: website/public/guides/javascript/index.html:455 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." +"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 "" -#: website/public/guides/javascript/index.html:460 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:462 +#: website/public/guides/javascript/index.html:464 #, 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?" +"Follow {ph0} to its handler. Which inputs reach the CSV writer, and what " +"happens if writing the file fails?" msgstr "" -#: website/public/guides/javascript/index.html:468 +#: website/public/guides/javascript/index.html:470 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." +"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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:474 +#: website/public/guides/javascript/index.html:476 #, 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}" +"{ph0}Follow Notion's clipboard bridge{ph1} {ph2}Apply the same approach to a" +" packaged Electron app.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:480 +#: website/public/guides/javascript/index.html:482 #, 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}" +"{ph0}Observe a browser export{ph1}{ph2}Capture a real click and see which " +"request it makes.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:486 +#: website/public/guides/javascript/index.html:488 #, 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}" +"{ph0}Follow a native function{ph1}{ph2}Continue into a binary when a feature" +" depends on native code.{ph3}" msgstr "" #: website/public/guides/javascript/index.html:6 @@ -6879,36 +7134,37 @@ msgstr "" #: 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." +"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 "" -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "" -#: website/public/guides/javascript/index.html:224 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/javascript/index.html:286 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/javascript/index.html:435 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "" -#: website/public/guides/javascript/index.html:513 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/native/index.html:111 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "" @@ -6917,34 +7173,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "" #. {ph0}:
-#: website/public/guides/native/index.html:206 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" -#: website/public/guides/native/index.html:207 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" -"Inspect the original instructions, identify the input and constants, then check the " -"recovered C." +"Inspect the original instructions, identify the input and constants, then " +"check the recovered C." msgstr "" -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -6952,7 +7208,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:217 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6960,7 +7216,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:218 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -6968,7 +7224,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -6976,36 +7232,36 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:220 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "" -#: website/public/guides/native/index.html:225 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "" -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:228 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." +"In DX-Ball, a brick hit supplies a horizontal screen position. The sound " +"code turns it into a left/right panning value." msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:230 +#: website/public/guides/native/index.html:232 #, 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." +"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 "" -#: website/public/guides/native/index.html:237 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "" @@ -7014,54 +7270,56 @@ msgstr "" #. {ph1}:
#. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:239 +#: website/public/guides/native/index.html:241 #, 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}." +"{ph0}Instructions:{ph1} the steps the processor runs, shown in readable form" +" such as {ph2} or {ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:244 +#: website/public/guides/native/index.html:246 #, 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." +"{ph0}Decompiler result / pseudocode:{ph1} an analysis tool's attempt to turn" +" instructions back into C-like code. It can miss parts, as in this example." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:251 #, 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." +"{ph0}Caller:{ph1} a function that calls this one. It shows which values are " +"passed in." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" -"{ph0}Address:{ph1} a location in the program, written in hexadecimal, such as {ph2}." +"{ph0}Address:{ph1} a location in the program, written in hexadecimal, such " +"as {ph2}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:257 +#: website/public/guides/native/index.html:259 #, 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." +"{ph0}Constants:{ph1} fixed numbers stored in the program, read as raw bytes " +"and decoded." msgstr "" -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "" @@ -7072,12 +7330,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:268 +#: website/public/guides/native/index.html:270 #, 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}" +"{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}: @@ -7087,12 +7345,12 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:276 +#: website/public/guides/native/index.html:278 #, 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}" +"{ph0}02 · Caller{ph1}{ph2}A screen coordinate{ph3}{ph4}The brick-hit caller " +"passes {ph5}.{ph6}" msgstr "" #. {ph0}: @@ -7103,22 +7361,22 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:284 +#: website/public/guides/native/index.html:286 #, 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}" +"{ph0}03 · Data bytes{ph1}{ph2}The numeric constants{ph3}{ph4}Referenced " +"bytes decode to {ph5}, {ph6} and a scale value.{ph7}" msgstr "" -#: website/public/guides/native/index.html:296 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" -"REA supplies the instructions, call relationship and bytes. The agent interprets them " -"together." +"REA supplies the instructions, call relationship and bytes. The agent " +"interprets them together." msgstr "" -#: website/public/guides/native/index.html:303 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "" @@ -7127,56 +7385,57 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:304 +#: website/public/guides/native/index.html:306 #, 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:" +"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 "" -#: website/public/guides/native/index.html:315 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "" -#: website/public/guides/native/index.html:316 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:318 +#: website/public/guides/native/index.html:320 #, 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." +"{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}: #. {ph1}: -#: website/public/guides/native/index.html:324 +#: website/public/guides/native/index.html:326 #, 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." +"{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}: #. {ph1}: -#: website/public/guides/native/index.html:329 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" -msgid "{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." +msgid "" +"{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:334 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -7190,14 +7449,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:344 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/native/index.html:346 -#: website/public/guides/native/index.html:477 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "" @@ -7208,23 +7467,23 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:355 +#: website/public/guides/native/index.html:357 #, 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}" +"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. " +"Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/guides/native/index.html:363 +#: website/public/guides/native/index.html:365 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." +"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 "" -#: website/public/guides/native/index.html:370 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "" @@ -7233,169 +7492,173 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:372 +#: website/public/guides/native/index.html:374 #, 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." +"{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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:379 #, 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}." +"{ph0}macOS:{ph1} in Finder, right-click the file, hold Option and choose " +"{ph2}Copy \"…\" as Pathname{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:381 +#: website/public/guides/native/index.html:383 #, 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." +msgid "" +"{ph0}Any system:{ph1} drag the file into a terminal window and its path " +"appears." msgstr "" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "" -#: website/public/guides/native/index.html:390 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "" -#: website/public/guides/native/index.html:393 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "" -#: website/public/guides/native/index.html:399 +#: website/public/guides/native/index.html:401 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:404 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "" -#: website/public/guides/native/index.html:407 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:413 +#: website/public/guides/native/index.html:415 #, 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." +"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 "" -#: website/public/guides/native/index.html:418 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "" -#: website/public/guides/native/index.html:421 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" -#: website/public/guides/native/index.html:429 +#: website/public/guides/native/index.html:431 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." +"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:436 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "" -#: website/public/guides/native/index.html:438 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "" -#: website/public/guides/native/index.html:445 +#: website/public/guides/native/index.html:447 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." +"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 "" -#: website/public/guides/native/index.html:450 +#: website/public/guides/native/index.html:452 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:455 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" -#: website/public/guides/native/index.html:462 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:463 +#: website/public/guides/native/index.html:465 #, 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?”" +"{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 "" -#: website/public/guides/native/index.html:470 +#: website/public/guides/native/index.html:472 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:" +"If you already know a function name or address, you can query it from the " +"terminal. For a configured Ghidra installation:" msgstr "" -#: website/public/guides/native/index.html:476 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "" #. {ph0}: main -#: website/public/guides/native/index.html:489 +#: website/public/guides/native/index.html:491 #, 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." +"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 "" -#: website/public/guides/native/index.html:495 +#: website/public/guides/native/index.html:497 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." +"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 @@ -7406,54 +7669,54 @@ msgstr "" #: 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." +"Recover a native calculation with REA: inspect instructions, follow a " +"caller, read constants and check reconstructed C." msgstr "" -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "" -#: website/public/guides/native/index.html:223 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "" -#: website/public/guides/native/index.html:346 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/native/index.html:477 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "" -#: website/public/guides/native/index.html:519 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "" -#: website/public/index.html:113 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "" -#: website/public/index.html:205 website/public/index.html:215 -#: website/public/index.html:213 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "" -#: website/public/index.html:206 website/public/index.html:254 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -7461,7 +7724,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" @@ -7469,7 +7732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -7477,7 +7740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:220 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -7485,7 +7748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:221 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" @@ -7493,7 +7756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:222 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -7501,44 +7764,44 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:223 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "" -#: website/public/index.html:232 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "" #. {ph0}:
-#: website/public/index.html:233 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "" -#: website/public/index.html:234 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" -"Ask your coding agent about an app, a game or a website. REA gives it the tools to " -"inspect the code behind the answer." +"Ask your coding agent about an app, a game or a website. REA gives it the " +"tools to inspect the code behind the answer." msgstr "" -#: website/public/index.html:239 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "" -#: website/public/index.html:240 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -7546,13 +7809,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:247 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "" -#: website/public/index.html:255 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -7565,16 +7828,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:258 +#: website/public/index.html:260 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/index.html:263 website/public/index.html:287 -#: website/public/index.html:523 website/public/index.html:604 -#: website/public/index.html:828 website/public/index.html:1140 -#: website/public/index.html:1168 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "" @@ -7586,25 +7849,26 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:272 +#: website/public/index.html:274 #, 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}" +"{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 "" -#: website/public/index.html:284 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "" -#: website/public/index.html:296 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" -#: website/public/index.html:300 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "" @@ -7612,7 +7876,7 @@ msgstr "" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:311 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" @@ -7621,77 +7885,77 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:317 +#: website/public/index.html:319 #, 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}" +"First time, or missing {ph0} or a coding agent? {ph1}Follow the step-by-step" +" setup guide →{ph2}" msgstr "" -#: website/public/index.html:330 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "" -#: website/public/index.html:332 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" -"Reverse engineering means learning how software works by inspecting the program " -"itself. With REA, your agent can follow the code, explain a feature and help you " -"rebuild it." +"Reverse engineering means learning how software works by inspecting the " +"program itself. With REA, your agent can follow the code, explain a feature " +"and help you rebuild it." msgstr "" -#: website/public/index.html:339 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "" -#: website/public/index.html:340 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "" -#: website/public/index.html:343 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "" -#: website/public/index.html:344 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" -#: website/public/index.html:347 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "" -#: website/public/index.html:348 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" -#: website/public/index.html:354 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "" #. {ph0}: 200 + 10% -#: website/public/index.html:355 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" msgstr "" -#: website/public/index.html:364 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:372 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -7699,7 +7963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:380 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -7707,7 +7971,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:388 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -7717,92 +7981,95 @@ msgstr "" #. {ph1}: #. {ph2}: -#: website/public/index.html:399 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "" -#: website/public/index.html:441 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:442 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" -msgid "“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are these?”" +msgid "" +"“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are " +"these?”" msgstr "" -#: website/public/index.html:446 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "" -#: website/public/index.html:452 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "" -#: website/public/index.html:456 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "" -#: website/public/index.html:461 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:462 +#: website/public/index.html:464 #, 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}”" +"“100 is clear. The calls are just addresses. {ph0}Which one divides? Which " +"value goes in?{ph1}”" msgstr "" -#: website/public/index.html:468 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" -#: website/public/index.html:478 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "" -#: website/public/index.html:483 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:484 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" -"“This path multiplies by the other input. So {ph0}10% means 10% of 200{ph1} after +.”" +"“This path multiplies by the other input. So {ph0}10% means 10% of 200{ph1} " +"after +.”" msgstr "" -#: website/public/index.html:488 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" -#: website/public/index.html:504 website/public/index.html:431 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:507 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7810,7 +8077,7 @@ msgid "" "calculation.{ph1}" msgstr "" -#: website/public/index.html:515 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "" @@ -7823,7 +8090,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:518 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -7836,7 +8103,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:532 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7844,73 +8111,75 @@ msgid "" "220?{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:540 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:543 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" -msgid "After +, the % button takes {ph0}a percentage of the first number.{ph1}" +msgid "" +"After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "" -#: website/public/index.html:556 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "" -#: website/public/index.html:557 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "" -#: website/public/index.html:562 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "" -#: website/public/index.html:563 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:570 +#: website/public/index.html:572 #, 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}" +"Selected assembly from the installed Calculator DLL. The thoughts and reply " +"illustrate the findings. {ph0}Continue with the Calculator example ↓{ph1}" msgstr "" -#: website/public/index.html:582 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" -"Let’s try two examples: change a game’s speed, then rebuild Calculator’s % button." +"Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " +"button." msgstr "" -#: website/public/index.html:587 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "" -#: website/public/index.html:588 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "" -#: website/public/index.html:590 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" -"The game gets faster as you run. To rebuild it with a speed control, we first need to " -"find out how the speed changes." +"The game gets faster as you run. To rebuild it with a speed control, we " +"first need to find out how the speed changes." msgstr "" -#: website/public/index.html:596 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "" @@ -7923,10 +8192,11 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:599 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" +msgid "" +"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "" #. {ph0}: #. {ph4}: -#: website/public/index.html:613 +#: website/public/index.html:615 #, 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}" +"{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 "" -#: website/public/index.html:622 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "" -#: website/public/index.html:623 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" -"REA lets the agent read the game’s running code. The speed starts at 6 and increases a" -" little each update while it is below 13." +"REA lets the agent read the game’s running code. The speed starts at 6 and " +"increases a little each update while it is below 13." msgstr "" -#: website/public/index.html:630 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "" -#: website/public/index.html:631 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" -"We rebuilt that rule in the mini-game below and added a speed slider. Press Play, then" -" choose your own speed." +"We rebuilt that rule in the mini-game below and added a speed slider. Press " +"Play, then choose your own speed." msgstr "" -#: website/public/index.html:667 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "" -#: website/public/index.html:670 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "" -#: website/public/index.html:671 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "" -#: website/public/index.html:674 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "" -#: website/public/index.html:684 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/index.html:688 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/index.html:691 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" -#: website/public/index.html:696 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" -"Enable JavaScript to play. You can still read the rule and open the source code below." +"Enable JavaScript to play. You can still read the rule and open the source " +"code below." msgstr "" -#: website/public/index.html:702 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "" -#: website/public/index.html:708 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:711 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" #. {ph0}: index.js -#: website/public/index.html:719 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" msgstr "" -#: website/public/index.html:728 +#: website/public/index.html:730 msgctxt "page:index.html" -msgid "Start at 6. Add 0.001 each update without a collision, while speed is below 13." +msgid "" +"Start at 6. Add 0.001 each update without a collision, while speed is below " +"13." msgstr "" -#: website/public/index.html:733 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "" @@ -8049,12 +8323,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:735 +#: website/public/index.html:737 #, 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}" +"{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}: @@ -8063,12 +8337,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:742 +#: website/public/index.html:744 #, 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}" +"{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}: @@ -8077,7 +8351,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:750 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8086,49 +8360,49 @@ msgid "" msgstr "" #. {ph0}: index.js -#: website/public/index.html:760 +#: website/public/index.html:762 #, 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." +"REA inspected the HTTP browser edition through a local debugging connection " +"and returned the loaded {ph0}, including its source and digest." msgstr "" -#: website/public/index.html:767 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "" -#: website/public/index.html:773 +#: website/public/index.html:775 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/index.html:779 +#: website/public/index.html:781 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/index.html:785 +#: website/public/index.html:787 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/index.html:794 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" +msgid "" +"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "" -#: website/public/index.html:811 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "" -#: website/public/index.html:812 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "" -#: website/public/index.html:814 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" -"The % button does different things after + and ×. Let’s find both rules and try them " -"in a small calculator." +"The % button does different things after + and ×. Let’s find both rules and " +"try them in a small calculator." msgstr "" -#: website/public/index.html:820 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "" @@ -8172,7 +8447,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:823 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" @@ -8184,26 +8459,28 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:837 +#: website/public/index.html:839 #, 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}" +"{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 "" -#: website/public/index.html:846 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "" -#: website/public/index.html:847 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" -"REA helps the agent read the code behind the % button. It applies two different rules:" +"REA helps the agent read the code behind the % button. It applies two " +"different rules:" msgstr "" -#: website/public/index.html:853 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "" @@ -8211,13 +8488,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:854 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "" -#: website/public/index.html:860 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "" @@ -8225,56 +8502,56 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:861 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "" -#: website/public/index.html:868 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "" -#: website/public/index.html:869 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" -#: website/public/index.html:917 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "" -#: website/public/index.html:925 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "" -#: website/public/index.html:928 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "" -#: website/public/index.html:935 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:936 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." msgstr "" -#: website/public/index.html:942 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "" -#: website/public/index.html:951 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "" @@ -8287,12 +8564,13 @@ msgstr "" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:955 +#: website/public/index.html:957 #, 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}" +"{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}: @@ -8302,12 +8580,13 @@ msgstr "" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:964 +#: website/public/index.html:966 #, 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}" +"{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}: @@ -8316,30 +8595,31 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:972 +#: website/public/index.html:974 #, 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}" +"rules{ph3}{ph4}Crosscheck the branch with Microsoft’s source, then try + and" +" × above.{ph5}" msgstr "" -#: website/public/index.html:986 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/index.html:997 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "" -#: website/public/index.html:1007 +#: website/public/index.html:1009 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." +"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 "" #. {ph0}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1012 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" -"{ph0}Percentage implementation{ph1} · {ph2}Microsoft’s test cases{ph3} · {ph4}Native " -"setup guide{ph5}" +"{ph0}Percentage implementation{ph1} · {ph2}Microsoft’s test cases{ph3} · " +"{ph4}Native setup guide{ph5}" msgstr "" -#: website/public/index.html:1032 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "" -#: website/public/index.html:1033 +#: website/public/index.html:1035 msgctxt "page:index.html" -msgid "Explore a feature in a released app or game, with code and checked results." +msgid "" +"Explore a feature in a released app or game, with code and checked results." msgstr "" -#: website/public/index.html:1038 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "" -#: website/public/index.html:1042 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/index.html:1043 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/index.html:1044 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" -"Trace Aegis's six-digit login code through its released APK, then move a demo clock to" -" see why it changes every 30 seconds." +"Trace Aegis's six-digit login code through its released APK, then move a " +"demo clock to see why it changes every 30 seconds." msgstr "" -#: website/public/index.html:1048 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "" -#: website/public/index.html:1053 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/index.html:1054 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/index.html:1055 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" -"Follow Notion's packaged JavaScript to the system clipboard and see how a copy " -"preserves rich block data." +"Follow Notion's packaged JavaScript to the system clipboard and see how a " +"copy preserves rich block data." msgstr "" -#: website/public/index.html:1059 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/index.html:1064 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/index.html:1065 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/index.html:1066 +#: website/public/index.html:1068 msgctxt "page:index.html" -msgid "Recover how a ball's position becomes left/right sound in a 1996 Windows game." +msgid "" +"Recover how a ball's position becomes left/right sound in a 1996 Windows " +"game." msgstr "" -#: website/public/index.html:1070 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/index.html:1081 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "" -#: website/public/index.html:1082 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "" -#: website/public/index.html:1083 +#: website/public/index.html:1085 msgctxt "page:index.html" -msgid "Download our Notes example, trace its CSV export, and check one changed input." +msgid "" +"Download our Notes example, trace its CSV export, and check one changed " +"input." msgstr "" -#: website/public/index.html:1088 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "" -#: website/public/index.html:1097 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "" -#: website/public/index.html:1098 +#: website/public/index.html:1100 msgctxt "page:index.html" -msgid "These guides cover setup and a first investigation for each kind of software." +msgid "" +"These guides cover setup and a first investigation for each kind of " +"software." msgstr "" -#: website/public/index.html:1105 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "" -#: website/public/index.html:1106 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" -"Inspect functions, strings, references and call relationships in executables and " -"libraries." +"Inspect functions, strings, references and call relationships in executables" +" and libraries." msgstr "" -#: website/public/index.html:1110 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "" -#: website/public/index.html:1113 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/index.html:1114 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" -"Map modules, routes, IPC and native dependencies from an application folder or ASAR " -"archive." +"Map modules, routes, IPC and native dependencies from an application folder " +"or ASAR archive." msgstr "" -#: website/public/index.html:1118 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "" -#: website/public/index.html:1121 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "" -#: website/public/index.html:1122 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" -"Capture selected browser or process activity, then compare the results across runs." +"Capture selected browser or process activity, then compare the results " +"across runs." msgstr "" -#: website/public/index.html:1126 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "" -#: website/public/index.html:1130 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "" @@ -8532,7 +8820,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1135 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -8545,14 +8833,15 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:1149 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" -"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Clone this website for me.{ph4}{ph5}{ph6}" +"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Clone this website for " +"me.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:1158 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "" @@ -8565,10 +8854,11 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1163 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction" +msgid "" +"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction" msgstr "" #. {ph0}: #. {ph4}: -#: website/public/index.html:1177 +#: website/public/index.html:1179 #, 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}" +"{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}: -#: website/public/index.html:1186 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "" -#: website/public/index.html:1197 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1199 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -8608,7 +8899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -8616,7 +8907,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1206 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -8630,72 +8921,73 @@ msgstr "" #: 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." +"Reverse engineer apps, binaries and browser behavior with your coding agent." +" Follow clear guides and try interactive examples with REA." msgstr "" -#: website/public/index.html:263 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/index.html:287 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "" -#: website/public/index.html:299 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "" -#: website/public/index.html:367 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "" -#: website/public/index.html:523 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "" -#: website/public/index.html:604 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/index.html:657 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" -"Dinosaur mini-game. Use the Jump button or press Space while the game is focused." +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." msgstr "" -#: website/public/index.html:828 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "" -#: website/public/index.html:874 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "" -#: website/public/index.html:1140 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "" -#: website/public/index.html:1168 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "" -#: website/public/index.html:1232 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/aegis/index.html:112 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "" @@ -8704,42 +8996,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "" -#: website/public/showcase/aegis/index.html:207 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "" #. {ph0}:
-#: website/public/showcase/aegis/index.html:208 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" -#: website/public/showcase/aegis/index.html:209 +#: website/public/showcase/aegis/index.html:211 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." +"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 "" -#: website/public/showcase/aegis/index.html:214 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "" -#: website/public/showcase/aegis/index.html:217 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "" -#: website/public/showcase/aegis/index.html:223 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "" @@ -8750,12 +9042,13 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:225 +#: website/public/showcase/aegis/index.html:227 #, 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}" +"{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}: @@ -8764,12 +9057,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:234 +#: website/public/showcase/aegis/index.html:236 #, 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}" +"{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}: @@ -8778,22 +9072,23 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:242 +#: website/public/showcase/aegis/index.html:244 #, 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}" +"{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 "" -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -8801,7 +9096,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -8809,7 +9104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:259 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -8817,7 +9112,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:260 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -8825,7 +9120,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -8833,25 +9128,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:262 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:267 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:268 +#: website/public/showcase/aegis/index.html:270 #, 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." +"The app shows a changing login code. We want to find {ph0}what makes it " +"change{ph1} and reproduce that behavior." msgstr "" #. {ph0}: -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:276 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/aegis/index.html:278 -#: website/public/showcase/aegis/index.html:741 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "" @@ -8881,67 +9176,68 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:287 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" -"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-digit login " -"code, explain why it changes every 30 seconds, and rebuild a small demo where I can " -"change the time.{ph4}{ph5}{ph6}" +"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-" +"digit login code, explain why it changes every 30 seconds, and rebuild a " +"small demo where I can change the time.{ph4}{ph5}{ph6}" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:298 +#: website/public/showcase/aegis/index.html:300 #, 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}" +"An example prompt for the downloaded APK, with REA's Android analysis " +"configured. {ph0}Get the APK and analysis setup ↓{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:306 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:307 +#: website/public/showcase/aegis/index.html:309 #, 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." +"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 "" -#: website/public/showcase/aegis/index.html:314 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:317 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "" -#: website/public/showcase/aegis/index.html:320 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "" -#: website/public/showcase/aegis/index.html:323 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "" -#: website/public/showcase/aegis/index.html:325 -#: website/public/showcase/aegis/index.html:652 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "" @@ -8950,35 +9246,35 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:326 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:334 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "" -#: website/public/showcase/aegis/index.html:342 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "" -#: website/public/showcase/aegis/index.html:348 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "" -#: website/public/showcase/aegis/index.html:363 -#: website/public/showcase/aegis/index.html:663 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:370 -#: website/public/showcase/aegis/index.html:668 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "" @@ -8987,107 +9283,109 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:379 +#: website/public/showcase/aegis/index.html:381 #, 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." +"At 59 seconds: {ph0}287082.{ph1} At 60 seconds: {ph2}359152.{ph3} Moving " +"within one block leaves the code unchanged." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:386 +#: website/public/showcase/aegis/index.html:388 #, 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." +"The key is fixed, public {ph0}RFC 6238 test data{ph1}. The demo implements " +"the calculation recovered from the APK." msgstr "" -#: website/public/showcase/aegis/index.html:393 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" -"The diagram shows the result at 59 seconds. Enable JavaScript to change the clock." +"The diagram shows the result at 59 seconds. Enable JavaScript to change the " +"clock." msgstr "" -#: website/public/showcase/aegis/index.html:402 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "" -#: website/public/showcase/aegis/index.html:405 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "" -#: website/public/showcase/aegis/index.html:408 -#: website/public/showcase/aegis/index.html:440 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/aegis/index.html:418 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:430 +#: website/public/showcase/aegis/index.html:432 #, 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." +"{ph0} is the calculation candidate; the other two concern the progress bar " +"and imported accounts. TOTP means a time-based one-time password." msgstr "" -#: website/public/showcase/aegis/index.html:437 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "" -#: website/public/showcase/aegis/index.html:454 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:465 +#: website/public/showcase/aegis/index.html:467 #, 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}." +"REA identifies the timestamp overload and finds the base method's callers. " +"Inspecting {ph0} then shows the display calling {ph1}." msgstr "" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:473 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" -"Requests show a shortened input path. Result class names omit the common {ph0} prefix." +"Requests show a shortened input path. Result class names omit the common " +"{ph0} prefix." msgstr "" -#: website/public/showcase/aegis/index.html:480 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:481 +#: website/public/showcase/aegis/index.html:483 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:496 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -9095,7 +9393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:504 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -9103,65 +9401,66 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:512 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" msgstr "" -#: website/public/showcase/aegis/index.html:524 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "" -#: website/public/showcase/aegis/index.html:554 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:571 +#: website/public/showcase/aegis/index.html:573 #, 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." +"{ph0}Time chooses the block.{ph1} Seconds 30 through 59 all give block 1. At" +" 60 seconds, the block becomes 2." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:577 +#: website/public/showcase/aegis/index.html:579 #, 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." +"{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}: -#: website/public/showcase/aegis/index.html:584 +#: website/public/showcase/aegis/index.html:586 #, 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." +"{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}: -#: website/public/showcase/aegis/index.html:591 +#: website/public/showcase/aegis/index.html:593 #, 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}" +"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 "" -#: website/public/showcase/aegis/index.html:600 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "" @@ -9170,177 +9469,179 @@ msgstr "" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:601 +#: website/public/showcase/aegis/index.html:603 #, 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}." +"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 "" -#: website/public/showcase/aegis/index.html:609 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "" -#: website/public/showcase/aegis/index.html:623 +#: website/public/showcase/aegis/index.html:625 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:630 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "" -#: website/public/showcase/aegis/index.html:640 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:641 +#: website/public/showcase/aegis/index.html:643 #, 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." +"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 "" -#: website/public/showcase/aegis/index.html:651 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "" -#: website/public/showcase/aegis/index.html:653 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "" -#: website/public/showcase/aegis/index.html:658 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:673 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:680 +#: website/public/showcase/aegis/index.html:682 #, 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:" +"The generator also matches the six published SHA-1 reference cases in " +"{ph0}RFC 6238{ph1}. Check the browser implementation against them:" msgstr "" -#: website/public/showcase/aegis/index.html:688 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "" -#: website/public/showcase/aegis/index.html:699 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" -"The reference cases use eight digits. The check also verifies their six-digit results." +"The reference cases use eight digits. The check also verifies their six-" +"digit results." msgstr "" -#: website/public/showcase/aegis/index.html:708 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" -"Verification runs extracted Java methods and the new demo. The Android APK was " -"inspected statically." +"Verification runs extracted Java methods and the new demo. The Android APK " +"was inspected statically." msgstr "" -#: website/public/showcase/aegis/index.html:715 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:716 +#: website/public/showcase/aegis/index.html:718 #, 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." +"{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}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:721 +#: website/public/showcase/aegis/index.html:723 #, 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." +"Android analysis needs a full JDK 17 or later. Select it with {ph0} or " +"{ph1}. This case used JDK 21." msgstr "" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "" -#: website/public/showcase/aegis/index.html:731 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "" -#: website/public/showcase/aegis/index.html:740 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:754 +#: website/public/showcase/aegis/index.html:756 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:759 +#: website/public/showcase/aegis/index.html:761 #, 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}" +"A next question: {ph0}what happens when an account uses eight digits or a " +"different time interval?{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:769 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: #. {ph2}: #. {ph5}: -#: website/public/showcase/aegis/index.html:771 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9362,17 +9663,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:787 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:794 +#: website/public/showcase/aegis/index.html:796 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." +"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 "" #: website/public/showcase/aegis/index.html:6 @@ -9383,41 +9685,41 @@ msgstr "" #: 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." +"Inspect the Aegis Android APK with REA, recover its six-digit login-code " +"calculation and try a reconstruction with an adjustable clock." msgstr "" -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/aegis/index.html:265 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "" -#: website/public/showcase/aegis/index.html:278 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "" -#: website/public/showcase/aegis/index.html:491 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "" -#: website/public/showcase/aegis/index.html:741 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "" -#: website/public/showcase/aegis/index.html:818 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/ctf/index.html:111 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "" @@ -9426,44 +9728,44 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "" -#: website/public/showcase/ctf/index.html:206 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "" #. {ph0}:
-#: website/public/showcase/ctf/index.html:207 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:208 +#: website/public/showcase/ctf/index.html:210 #, 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}." +"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 "" -#: website/public/showcase/ctf/index.html:213 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" -#: website/public/showcase/ctf/index.html:216 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:224 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "" @@ -9474,12 +9776,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:226 +#: website/public/showcase/ctf/index.html:228 #, 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}" +"{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}: @@ -9488,12 +9791,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:234 +#: website/public/showcase/ctf/index.html:236 #, 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}" +"{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}: @@ -9502,27 +9806,29 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:242 +#: website/public/showcase/ctf/index.html:244 #, 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}" +"{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 "" -#: website/public/showcase/ctf/index.html:251 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" -msgid "The challenge is by joseph, published in DownUnderCTF's official repository." +msgid "" +"The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -9530,7 +9836,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -9538,7 +9844,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:263 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -9546,7 +9852,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:264 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -9554,7 +9860,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -9562,25 +9868,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:266 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "" -#: website/public/showcase/ctf/index.html:271 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:272 +#: website/public/showcase/ctf/index.html:274 #, 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." +"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 "" #. {ph0}: -#: website/public/showcase/ctf/index.html:279 +#: website/public/showcase/ctf/index.html:281 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/ctf/index.html:284 website/public/showcase/ctf/index.html:503 -#: website/public/showcase/ctf/index.html:527 website/public/showcase/ctf/index.html:597 -#: website/public/showcase/ctf/index.html:744 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "" @@ -9610,103 +9918,105 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:293 +#: website/public/showcase/ctf/index.html:295 #, 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}" +"{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 "" -#: website/public/showcase/ctf/index.html:302 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" -"An example prompt, with the downloaded challenge available locally and a native " -"analysis provider connected." +"An example prompt, with the downloaded challenge available locally and a " +"native analysis provider connected." msgstr "" -#: website/public/showcase/ctf/index.html:308 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "" -#: website/public/showcase/ctf/index.html:311 website/public/showcase/ctf/index.html:347 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/ctf/index.html:327 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "" -#: website/public/showcase/ctf/index.html:337 +#: website/public/showcase/ctf/index.html:339 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." +"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:344 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "" -#: website/public/showcase/ctf/index.html:359 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:372 +#: website/public/showcase/ctf/index.html:374 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:380 +#: website/public/showcase/ctf/index.html:382 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." +"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 "" -#: website/public/showcase/ctf/index.html:388 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "" -#: website/public/showcase/ctf/index.html:389 +#: website/public/showcase/ctf/index.html:391 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:409 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" -#: website/public/showcase/ctf/index.html:416 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "" -#: website/public/showcase/ctf/index.html:422 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "" -#: website/public/showcase/ctf/index.html:429 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "" @@ -9715,29 +10025,30 @@ msgstr "" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:438 +#: website/public/showcase/ctf/index.html:440 #, 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}." +"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 "" -#: website/public/showcase/ctf/index.html:447 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "" -#: website/public/showcase/ctf/index.html:448 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" -"Select a step to connect the summing helper and its caller to the same rule in C." +"Select a step to connect the summing helper and its caller to the same rule " +"in C." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:458 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -9745,7 +10056,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:466 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -9753,7 +10064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:474 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -9761,7 +10072,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:482 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -9769,18 +10080,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:490 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "" -#: website/public/showcase/ctf/index.html:502 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/showcase/ctf/index.html:526 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "" @@ -9788,7 +10099,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -9796,172 +10107,174 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:561 #, 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." +"{ph0}02 · Check the mask cell.{ph1} A zero value skips the character; a " +"nonzero value includes it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:565 #, 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." +"{ph0}03 · Add a character code.{ph1} The input's integer at the same offset " +"is added to the sum." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:567 +#: website/public/showcase/ctf/index.html:569 #, 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." +"{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}: #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:572 +#: website/public/showcase/ctf/index.html:574 #, 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}." +"{ph0}05 · Compare with the stored target.{ph1} The caller receives the sum " +"in {ph2}. A mismatch jumps to {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:579 +#: website/public/showcase/ctf/index.html:581 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." +"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 "" -#: website/public/showcase/ctf/index.html:587 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "" -#: website/public/showcase/ctf/index.html:588 +#: website/public/showcase/ctf/index.html:590 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." +"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 "" -#: website/public/showcase/ctf/index.html:596 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:624 +#: website/public/showcase/ctf/index.html:626 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:630 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "" -#: website/public/showcase/ctf/index.html:636 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:637 +#: website/public/showcase/ctf/index.html:639 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:647 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "" -#: website/public/showcase/ctf/index.html:648 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "" -#: website/public/showcase/ctf/index.html:649 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "" -#: website/public/showcase/ctf/index.html:654 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "" -#: website/public/showcase/ctf/index.html:659 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "" -#: website/public/showcase/ctf/index.html:670 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "" -#: website/public/showcase/ctf/index.html:671 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "" -#: website/public/showcase/ctf/index.html:683 +#: website/public/showcase/ctf/index.html:685 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." +"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:689 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "" -#: website/public/showcase/ctf/index.html:690 +#: website/public/showcase/ctf/index.html:692 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." +"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 "" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "" -#: website/public/showcase/ctf/index.html:701 +#: website/public/showcase/ctf/index.html:703 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." +"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 "" #. {ph0}: #. {ph3}: -#. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:706 +#: website/public/showcase/ctf/index.html:708 #, 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}" +"{ph0}Compare with the organizers' source{ph1} · {ph2}Challenge metadata and " +"flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:726 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "" -#: website/public/showcase/ctf/index.html:727 +#: website/public/showcase/ctf/index.html:729 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." +"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:733 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:737 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "" -#: website/public/showcase/ctf/index.html:743 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:760 +#: website/public/showcase/ctf/index.html:762 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:765 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "" @@ -10032,74 +10347,75 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/ctf/index.html:269 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "" -#: website/public/showcase/ctf/index.html:284 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "" -#: website/public/showcase/ctf/index.html:395 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/ctf/index.html:401 +#: website/public/showcase/ctf/index.html:403 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." +"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 "" -#: website/public/showcase/ctf/index.html:453 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:503 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "" -#: website/public/showcase/ctf/index.html:527 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:597 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "" -#: website/public/showcase/ctf/index.html:671 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "" -#: website/public/showcase/ctf/index.html:744 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "" -#: website/public/showcase/ctf/index.html:787 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/dx-ball/index.html:111 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "" @@ -10108,55 +10424,55 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "" -#: website/public/showcase/dx-ball/index.html:206 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:207 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:210 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:212 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:229 +#: website/public/showcase/dx-ball/index.html:231 #, 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}" +"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 "" -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:242 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -10164,7 +10480,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:243 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -10172,7 +10488,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -10180,23 +10496,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:245 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "" -#: website/public/showcase/dx-ball/index.html:261 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "" @@ -10207,7 +10523,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:264 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10215,31 +10531,32 @@ msgid "" "coverage{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:276 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "" -#: website/public/showcase/dx-ball/index.html:277 +#: website/public/showcase/dx-ball/index.html:279 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:287 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:288 +#: website/public/showcase/dx-ball/index.html:290 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." +"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}: -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:297 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/dx-ball/index.html:299 -#: website/public/showcase/dx-ball/index.html:490 -#: website/public/showcase/dx-ball/index.html:511 -#: website/public/showcase/dx-ball/index.html:582 -#: website/public/showcase/dx-ball/index.html:736 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "" @@ -10271,149 +10588,151 @@ msgstr "" #. {ph3}:
#. {ph4}: -#: website/public/showcase/dx-ball/index.html:308 +#: website/public/showcase/dx-ball/index.html:310 #, 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}" +"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. " +"Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/dx-ball/index.html:316 +#: website/public/showcase/dx-ball/index.html:318 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:321 +#: website/public/showcase/dx-ball/index.html:323 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." +"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 "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:327 +#: website/public/showcase/dx-ball/index.html:329 #, 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:335 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "" -#: website/public/showcase/dx-ball/index.html:338 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:348 +#: website/public/showcase/dx-ball/index.html:350 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." +"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:354 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "" -#: website/public/showcase/dx-ball/index.html:357 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:361 -#: website/public/showcase/dx-ball/index.html:385 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/dx-ball/index.html:367 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:374 +#: website/public/showcase/dx-ball/index.html:376 #, 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." +"The function result includes instructions alongside pseudocode and callers. " +"Here, {ph0} exposes the integer input missing from the decompiler view." msgstr "" -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "" -#: website/public/showcase/dx-ball/index.html:391 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:398 +#: website/public/showcase/dx-ball/index.html:400 #, 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}." +"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 "" -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:409 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "" -#: website/public/showcase/dx-ball/index.html:419 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:426 +#: website/public/showcase/dx-ball/index.html:428 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." +"The returned bytes establish the two arithmetic constants and initial pan " +"scale. The agent now has the values needed for the C expression." msgstr "" -#: website/public/showcase/dx-ball/index.html:434 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "" -#: website/public/showcase/dx-ball/index.html:435 +#: website/public/showcase/dx-ball/index.html:437 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." +"Follow the five steps below. Each selection highlights the original " +"instructions and the C lines they informed." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:445 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -10421,7 +10740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:453 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -10429,7 +10748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:461 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -10437,7 +10756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:469 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -10445,18 +10764,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:477 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "" -#: website/public/showcase/dx-ball/index.html:489 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:510 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "" @@ -10466,13 +10785,14 @@ msgstr "" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:537 +#: website/public/showcase/dx-ball/index.html:539 #, 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}." +"{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}: @@ -10481,12 +10801,12 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:544 +#: website/public/showcase/dx-ball/index.html:546 #, 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." +"{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}: @@ -10495,12 +10815,13 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:550 +#: website/public/showcase/dx-ball/index.html:552 #, 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}." +"{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}: @@ -10509,13 +10830,13 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:556 +#: website/public/showcase/dx-ball/index.html:558 #, 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}." +"{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}: @@ -10523,94 +10844,95 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:563 +#: website/public/showcase/dx-ball/index.html:565 #, 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." +"{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 "" -#: website/public/showcase/dx-ball/index.html:572 +#: website/public/showcase/dx-ball/index.html:574 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." +"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:578 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "" -#: website/public/showcase/dx-ball/index.html:581 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "" -#: website/public/showcase/dx-ball/index.html:615 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:616 +#: website/public/showcase/dx-ball/index.html:618 #, 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:" +"The brick-hit function at {ph0} scales its tile coordinate by 30, adds 20, " +"then pushes it before the call:" msgstr "" -#: website/public/showcase/dx-ball/index.html:630 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "" -#: website/public/showcase/dx-ball/index.html:633 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:638 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "" -#: website/public/showcase/dx-ball/index.html:639 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "" -#: website/public/showcase/dx-ball/index.html:640 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "" -#: website/public/showcase/dx-ball/index.html:647 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "" -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:656 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "" -#: website/public/showcase/dx-ball/index.html:657 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "" -#: website/public/showcase/dx-ball/index.html:662 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -10621,91 +10943,94 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/src/gameplay.c#L41" > #. {ph1}: #. {ph2}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" +#. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:667 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" -"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence references{ph3}" +"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence " +"references{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:681 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "" -#: website/public/showcase/dx-ball/index.html:682 +#: website/public/showcase/dx-ball/index.html:684 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." +"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:688 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "" -#: website/public/showcase/dx-ball/index.html:689 +#: website/public/showcase/dx-ball/index.html:691 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:697 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "" -#: website/public/showcase/dx-ball/index.html:698 +#: website/public/showcase/dx-ball/index.html:700 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:706 +#: website/public/showcase/dx-ball/index.html:708 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." +"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 "" #. {ph0}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" +#. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:712 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:721 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "" -#: website/public/showcase/dx-ball/index.html:722 +#: website/public/showcase/dx-ball/index.html:724 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." +"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:728 +#: website/public/showcase/dx-ball/index.html:730 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:" +"To inspect the sound-pan function yourself, follow the DX-Ball project's " +"setup instructions and supply its matching original target. Then run:" msgstr "" -#: website/public/showcase/dx-ball/index.html:735 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "" @@ -10714,38 +11039,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:749 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" -msgid "{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local setup.{ph3}" +msgid "" +"{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local " +"setup.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:754 +#: website/public/showcase/dx-ball/index.html:756 #, 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}" +"{ph0}REA analysis workflow{ph1}{ph2}Follow the calculation, then use the " +"same approach with your own binary.{ph3}" msgstr "" #. {ph0}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ENTITIES_OWNER.md" +#. > #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:761 +#: website/public/showcase/dx-ball/index.html:763 #, 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}" +"{ph0}Particles and bonus production{ph1}{ph2}A larger investigation into " +"state, queues and pixel writes.{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:772 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "" @@ -10758,319 +11086,324 @@ msgstr "" #: 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." +"Follow a DX-Ball reconstruction from binary analysis through REA to " +"maintained C, original-x86 tests and matching compiled function bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:215 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" -msgid "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" +msgid "" +"DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/dx-ball/index.html:221 +#: website/public/showcase/dx-ball/index.html:223 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/dx-ball/index.html:248 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "" -#: website/public/showcase/dx-ball/index.html:299 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/showcase/dx-ball/index.html:440 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:490 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:511 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "" -#: website/public/showcase/dx-ball/index.html:582 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "" -#: website/public/showcase/dx-ball/index.html:736 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "" -#: website/public/showcase/dx-ball/index.html:795 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/index.html:111 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:203 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "" -#: website/public/showcase/index.html:204 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "" -#: website/public/showcase/index.html:205 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" -"Android, games, Electron and a CTF challenge, with code, figures and checked results." +"Android, games, Electron and a CTF challenge, with code, figures and checked" +" results." msgstr "" -#: website/public/showcase/index.html:212 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/showcase/index.html:214 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/showcase/index.html:215 +#: website/public/showcase/index.html:217 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." +"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 "" -#: website/public/showcase/index.html:221 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "" -#: website/public/showcase/index.html:223 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "" -#: website/public/showcase/index.html:224 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "" -#: website/public/showcase/index.html:230 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "" -#: website/public/showcase/index.html:232 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "" -#: website/public/showcase/index.html:233 +#: website/public/showcase/index.html:235 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." +"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 "" -#: website/public/showcase/index.html:239 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "" -#: website/public/showcase/index.html:241 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "" -#: website/public/showcase/index.html:242 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "" -#: website/public/showcase/index.html:248 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/showcase/index.html:250 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/showcase/index.html:251 +#: website/public/showcase/index.html:253 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." +"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 "" -#: website/public/showcase/index.html:258 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "" -#: website/public/showcase/index.html:260 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "" -#: website/public/showcase/index.html:261 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/showcase/index.html:267 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/showcase/index.html:269 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/showcase/index.html:270 +#: website/public/showcase/index.html:272 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." +"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 "" -#: website/public/showcase/index.html:276 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "" -#: website/public/showcase/index.html:278 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "" -#: website/public/showcase/index.html:279 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/showcase/index.html:285 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "" -#: website/public/showcase/index.html:287 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "" -#: website/public/showcase/index.html:288 +#: website/public/showcase/index.html:290 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." +"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 "" -#: website/public/showcase/index.html:294 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "" -#: website/public/showcase/index.html:296 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "" -#: website/public/showcase/index.html:297 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "" -#: website/public/showcase/index.html:299 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "" -#: website/public/showcase/index.html:304 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "" -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:307 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." +"The guides walk through a native calculation, an Electron export and a " +"browser request. Each starts with a prompt and a concrete target." msgstr "" -#: website/public/showcase/index.html:309 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "" @@ -11083,16 +11416,16 @@ msgstr "" #: 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." +"Follow REA investigations through code, figures and demos: an Android " +"authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." msgstr "" -#: website/public/showcase/index.html:327 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/notion/index.html:111 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "" @@ -11101,37 +11434,37 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "" -#: website/public/showcase/notion/index.html:206 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "" #. {ph0}:
-#: website/public/showcase/notion/index.html:207 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:210 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." +"Trace a clipboard call from Notion's page API, through the preload and main " +"process, to Electron's clipboard writer." msgstr "" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "" -#: website/public/showcase/notion/index.html:216 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "" @@ -11143,12 +11476,12 @@ msgstr "" #. {ph4}:
#. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:218 +#: website/public/showcase/notion/index.html:220 #, 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}" +"{ph0}01 · Page-facing API{ph1} {ph2}{ph3}{ph4} {ph5}The preload exposes a " +"callable method.{ph6}" msgstr "" #. {ph0}: @@ -11158,12 +11491,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:225 +#: website/public/showcase/notion/index.html:227 #, 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}" +"{ph0}02 · Preload wrapper{ph1} {ph2}{ph3}{ph4} {ph5}The wrapper sends the " +"channel and arguments.{ph6}" msgstr "" #. {ph0}: @@ -11173,12 +11506,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:232 +#: website/public/showcase/notion/index.html:234 #, 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}" +"{ph0}03 · Main-process handler{ph1} {ph2}{ph3}{ph4} {ph5}The receiver checks" +" which page sent it.{ph6}" msgstr "" #. {ph0}: @@ -11188,36 +11521,36 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:239 +#: website/public/showcase/notion/index.html:241 #, 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}" +"{ph0}04 · System clipboard{ph1} {ph2}{ph3}{ph4} {ph5}Electron writes the " +"supplied text and HTML.{ph6}" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "" -#: website/public/showcase/notion/index.html:251 +#: website/public/showcase/notion/index.html:253 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." +"The packaged code uses the same channel in the preload and main process. " +"Resolving the wrappers reveals the Electron calls behind those names." msgstr "" -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:262 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -11225,7 +11558,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -11233,24 +11566,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:264 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "" -#: website/public/showcase/notion/index.html:269 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:270 +#: website/public/showcase/notion/index.html:272 #, 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." +"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}: -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:279 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/notion/index.html:281 -#: website/public/showcase/notion/index.html:354 -#: website/public/showcase/notion/index.html:383 -#: website/public/showcase/notion/index.html:414 -#: website/public/showcase/notion/index.html:442 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "" @@ -11282,130 +11616,132 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:290 +#: website/public/showcase/notion/index.html:292 #, 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}" +"{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 "" -#: website/public/showcase/notion/index.html:298 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" -"An example prompt with Notion's local application package available to your coding " -"agent." +"An example prompt with Notion's local application package available to your " +"coding agent." msgstr "" -#: website/public/showcase/notion/index.html:303 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "" -#: website/public/showcase/notion/index.html:304 +#: website/public/showcase/notion/index.html:306 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:" +"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 "" -#: website/public/showcase/notion/index.html:310 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "" -#: website/public/showcase/notion/index.html:313 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "" -#: website/public/showcase/notion/index.html:319 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:325 +#: website/public/showcase/notion/index.html:327 #, 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." +"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}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:332 +#: website/public/showcase/notion/index.html:334 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:341 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "" -#: website/public/showcase/notion/index.html:342 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" -"Simplified from the packaged JavaScript, with readable variable names. Unrelated " -"members are omitted." +"Simplified from the packaged JavaScript, with readable variable names. " +"Unrelated members are omitted." msgstr "" -#: website/public/showcase/notion/index.html:348 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:351 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:370 +#: website/public/showcase/notion/index.html:372 #, 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." +"This member supplies the channel name. The implementation of {ph0} tells us " +"how the request leaves the page's process." msgstr "" -#: website/public/showcase/notion/index.html:377 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:380 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:400 +#: website/public/showcase/notion/index.html:402 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:408 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:411 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" @@ -11413,158 +11749,160 @@ msgstr "" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:429 +#: website/public/showcase/notion/index.html:431 #, 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." +"The main process uses another wrapper. Its {ph0} method registers an {ph1} " +"receiver for that channel." msgstr "" -#: website/public/showcase/notion/index.html:436 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:439 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" msgstr "" -#: website/public/showcase/notion/index.html:459 +#: website/public/showcase/notion/index.html:461 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." +"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 "" -#: website/public/showcase/notion/index.html:470 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:471 +#: website/public/showcase/notion/index.html:473 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "" -#: website/public/showcase/notion/index.html:481 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "" -#: website/public/showcase/notion/index.html:489 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "" -#: website/public/showcase/notion/index.html:502 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "" -#: website/public/showcase/notion/index.html:503 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "" -#: website/public/showcase/notion/index.html:505 +#: website/public/showcase/notion/index.html:507 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." +"Illustrative text and ID. The recorded module test restores the block data " +"when IDs match; a stale entry returns only text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:513 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." +"On paste, Notion looks for the HTML ID and checks it against the saved copy." +" Matching IDs restore the block data." msgstr "" -#: website/public/showcase/notion/index.html:515 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" -#: website/public/showcase/notion/index.html:521 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "" -#: website/public/showcase/notion/index.html:523 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "" -#: website/public/showcase/notion/index.html:524 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" -"Notion parses Markdown into block data. This example shows how a table becomes header " -"and data rows." +"Notion parses Markdown into block data. This example shows how a table " +"becomes header and data rows." msgstr "" -#: website/public/showcase/notion/index.html:529 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "" -#: website/public/showcase/notion/index.html:534 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "" -#: website/public/showcase/notion/index.html:541 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "" -#: website/public/showcase/notion/index.html:550 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" -"Recorded output from an extracted Markdown parser. The table becomes rows and cells." +"Recorded output from an extracted Markdown parser. The table becomes rows " +"and cells." msgstr "" -#: website/public/showcase/notion/index.html:557 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:558 +#: website/public/showcase/notion/index.html:560 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:564 +#: website/public/showcase/notion/index.html:566 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." +"Following this handoff explains where the database work runs, and why " +"tracing only the initial IPC request misses the later conversation." msgstr "" -#: website/public/showcase/notion/index.html:571 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "" @@ -11572,73 +11910,76 @@ msgstr "" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:572 +#: website/public/showcase/notion/index.html:574 #, 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." +"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 "" #. {ph0}: 747001 #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:580 +#: website/public/showcase/notion/index.html:582 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:588 +#: website/public/showcase/notion/index.html:590 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." +"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 "" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:595 +#: website/public/showcase/notion/index.html:597 #, 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." +"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 "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:603 +#: website/public/showcase/notion/index.html:605 #, 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}" +"{ph0}JavaScript application guide{ph1}{ph2}Follow a small Electron " +"application's export feature.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:610 +#: website/public/showcase/notion/index.html:612 #, 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}" +"{ph0}DX-Ball reconstruction{ph1}{ph2}Follow native instructions to a checked" +" C function.{ph3}" msgstr "" -#: website/public/showcase/notion/index.html:618 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "" @@ -11651,56 +11992,57 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/notion/index.html:267 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "" -#: website/public/showcase/notion/index.html:281 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "" -#: website/public/showcase/notion/index.html:354 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "" -#: website/public/showcase/notion/index.html:383 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:414 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:442 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "" -#: website/public/showcase/notion/index.html:641 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/th04/index.html:111 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "" @@ -11709,42 +12051,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "" -#: website/public/showcase/th04/index.html:206 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "" #. {ph0}:
-#: website/public/showcase/th04/index.html:207 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "" -#: website/public/showcase/th04/index.html:208 +#: website/public/showcase/th04/index.html:210 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++." +"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 "" -#: website/public/showcase/th04/index.html:213 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "" -#: website/public/showcase/th04/index.html:214 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:220 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "" @@ -11755,12 +12097,12 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:222 +#: website/public/showcase/th04/index.html:224 #, 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}" +"{ph0}01 · Original game{ph1}{ph2}MAIN.EXE{ph3}{ph4}The PC-98 executable and " +"its bullet-angle helper.{ph5}" msgstr "" #. {ph0}: @@ -11769,12 +12111,13 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:229 +#: website/public/showcase/th04/index.html:231 #, 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}" +"{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}: @@ -11783,12 +12126,12 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:237 +#: website/public/showcase/th04/index.html:239 #, 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}" +"{ph0}03 · Read the C++{ph1}{ph2}Space → aim → rotate{ph3}{ph4}Connect each " +"operation to the maintained reconstruction.{ph5}" msgstr "" #. {ph0}: @@ -11797,29 +12140,30 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:244 +#: website/public/showcase/th04/index.html:246 #, 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}" +"{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 "" -#: website/public/showcase/th04/index.html:253 +#: website/public/showcase/th04/index.html:255 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." +"REA returns the original code and its analysis evidence. The TH04 project " +"supplies the maintained source and compiler checks." msgstr "" -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -11827,7 +12171,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:264 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -11835,7 +12179,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:265 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -11843,7 +12187,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -11851,23 +12195,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:267 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:272 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "" -#: website/public/showcase/th04/index.html:273 +#: website/public/showcase/th04/index.html:275 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." +"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 "" #. {ph0}: -#: website/public/showcase/th04/index.html:280 +#: website/public/showcase/th04/index.html:282 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/th04/index.html:285 -#: website/public/showcase/th04/index.html:341 -#: website/public/showcase/th04/index.html:518 -#: website/public/showcase/th04/index.html:552 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "" @@ -11898,46 +12242,47 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:294 +#: website/public/showcase/th04/index.html:296 #, 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}" +"{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 "" -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" -"An example prompt, with the original executable and reconstruction checkout available " -"locally." +"An example prompt, with the original executable and reconstruction checkout " +"available locally." msgstr "" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:307 +#: website/public/showcase/th04/index.html:309 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:327 +#: website/public/showcase/th04/index.html:329 #, 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}" +"An illustration of the recovered angle math for count 16, player direction " +"40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:335 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "" -#: website/public/showcase/th04/index.html:340 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "" @@ -11946,64 +12291,64 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:355 +#: website/public/showcase/th04/index.html:357 #, 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}." +"These lines select the pattern before difficulty and performance tuning. " +"{ph0}Read the attack's source{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:366 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:367 +#: website/public/showcase/th04/index.html:369 #, 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." +"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 "" -#: website/public/showcase/th04/index.html:375 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "" -#: website/public/showcase/th04/index.html:378 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/th04/index.html:387 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "" -#: website/public/showcase/th04/index.html:396 +#: website/public/showcase/th04/index.html:398 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." +"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:402 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:406 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/th04/index.html:412 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "" @@ -12011,54 +12356,55 @@ msgstr "" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:420 +#: website/public/showcase/th04/index.html:422 #, 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." +"{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 "" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "" -#: website/public/showcase/th04/index.html:433 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "" -#: website/public/showcase/th04/index.html:442 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "" -#: website/public/showcase/th04/index.html:450 +#: website/public/showcase/th04/index.html:452 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." +"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 "" -#: website/public/showcase/th04/index.html:461 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "" -#: website/public/showcase/th04/index.html:462 +#: website/public/showcase/th04/index.html:464 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." +"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}: #. {ph1}: -#: website/public/showcase/th04/index.html:473 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -12066,7 +12412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:481 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -12074,7 +12420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:489 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -12082,7 +12428,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:497 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -12090,18 +12436,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:505 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "" -#: website/public/showcase/th04/index.html:517 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "" -#: website/public/showcase/th04/index.html:551 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "" @@ -12109,82 +12455,83 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:580 +#: website/public/showcase/th04/index.html:582 #, 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." +"{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}: #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:585 +#: website/public/showcase/th04/index.html:587 #, 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." +"{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}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:592 +#: website/public/showcase/th04/index.html:594 #, 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." +"{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}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:598 +#: website/public/showcase/th04/index.html:600 #, 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." +"{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}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:604 +#: website/public/showcase/th04/index.html:606 #, 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." +"{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 "" -#: website/public/showcase/th04/index.html:613 +#: website/public/showcase/th04/index.html:615 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." +"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 "" -#: website/public/showcase/th04/index.html:619 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "" -#: website/public/showcase/th04/index.html:622 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "" -#: website/public/showcase/th04/index.html:632 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "" @@ -12201,7 +12548,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:648 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12209,156 +12556,158 @@ msgid "" "representation{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:668 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "" -#: website/public/showcase/th04/index.html:669 +#: website/public/showcase/th04/index.html:671 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." +"The TH04 project's recorded checks compile the bullet-generation code, " +"including this helper, with its pinned Turbo C++ 4.0J toolchain." msgstr "" -#: website/public/showcase/th04/index.html:676 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "" -#: website/public/showcase/th04/index.html:677 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" -"The compiled bullet-generation code matches a 2,139-byte section of the original " -"executable." +"The compiled bullet-generation code matches a 2,139-byte section of the " +"original executable." msgstr "" -#: website/public/showcase/th04/index.html:683 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "" -#: website/public/showcase/th04/index.html:684 +#: website/public/showcase/th04/index.html:686 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." +"Two separate builds produce the same matching bytes. The recorded input " +"hashes match the maintained source shown here." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:690 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:698 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "" -#: website/public/showcase/th04/index.html:711 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:712 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "" -#: website/public/showcase/th04/index.html:718 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "" -#: website/public/showcase/th04/index.html:719 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "" -#: website/public/showcase/th04/index.html:724 +#: website/public/showcase/th04/index.html:726 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." +"Compiler checks cover the complete bullet-add code section, including this " +"helper. They also compare its MAP contribution and overlapping relocation." msgstr "" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:729 +#: website/public/showcase/th04/index.html:731 #, 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." +"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 "" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:736 +#: website/public/showcase/th04/index.html:738 #, 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." +"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 "" -#: website/public/showcase/th04/index.html:744 +#: website/public/showcase/th04/index.html:746 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." +"The figure illustrates the angle calculation. Full-game controls, timing and" +" PC-98 hardware behavior have separate runtime checks in the reconstruction " +"project." msgstr "" -#: website/public/showcase/th04/index.html:753 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:754 +#: website/public/showcase/th04/index.html:756 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:760 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -12370,12 +12719,12 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:766 +#: website/public/showcase/th04/index.html:768 #, 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}" +"{ph0}Bullet-generation source{ph1}{ph2}The complete helper, other pattern " +"types and template tuning.{ph3}" msgstr "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:775 +#: website/public/showcase/th04/index.html:777 #, 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}" +"{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}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:784 +#: website/public/showcase/th04/index.html:786 #, 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}" +"{ph0}Current project state{ph1}{ph2}DOS verification and the separate native" +" x64 port.{ph3}" msgstr "" #: website/public/showcase/th04/index.html:6 @@ -12414,60 +12763,62 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/th04/index.html:270 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "" -#: website/public/showcase/th04/index.html:285 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "" -#: website/public/showcase/th04/index.html:313 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" -msgid "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" +msgid "" +"TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/th04/index.html:319 +#: website/public/showcase/th04/index.html:321 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." +"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 "" -#: website/public/showcase/th04/index.html:341 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "" -#: website/public/showcase/th04/index.html:468 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:518 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "" -#: website/public/showcase/th04/index.html:552 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:810 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "" @@ -12475,7 +12826,9 @@ msgstr "" #: scripts/website_i18n.py msgctxt "runtime" msgid "Translation is being updated. Read this page in English for now." -msgstr "Traducerea este în curs de actualizare. Citește deocamdată această pagină în engleză." +msgstr "" +"Traducerea este în curs de actualizare. Citește deocamdată această pagină în" +" engleză." #: website/public/assets/aegis-demo.js:22 #, python-brace-format @@ -12492,8 +12845,8 @@ msgstr "" #: 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." +"Interactive calculation is unavailable in this browser. The example shows " +"the code at 59 seconds." msgstr "" #: website/public/assets/aegis-demo.js:62 @@ -12504,7 +12857,9 @@ 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)." +msgid "" +"{passed} / {total} checks passed (six reference cases, at six and eight " +"digits)." msgstr "" #: website/public/assets/aegis-demo.js:81 @@ -12539,7 +12894,8 @@ msgctxt "runtime" msgid "Play again" msgstr "" -#: website/public/assets/dino-demo.js:97 website/public/assets/dino-demo.js:111 +#: website/public/assets/dino-demo.js:97 +#: website/public/assets/dino-demo.js:111 msgctxt "runtime" msgid "Play" msgstr "" @@ -12564,7 +12920,8 @@ msgctxt "runtime" msgid "Running. Space or Jump clears a cactus." msgstr "" -#: website/public/assets/dino-demo.js:183 website/public/assets/dino-demo.js:219 +#: website/public/assets/dino-demo.js:183 +#: website/public/assets/dino-demo.js:219 #: website/public/assets/dino-demo.js:224 msgctxt "runtime" msgid "Paused. Press Play to continue." @@ -12596,15 +12953,15 @@ msgstr "" #: website/public/assets/dino-demo.js:249 msgctxt "runtime" msgid "" -"Replayed the recovered rule. All four values match the controlled original-game check " -"when rounded to three decimals." +"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:252 msgctxt "runtime" msgid "" -"The replay differs from the recorded original-game values. Compare the speed rule and " -"settings above." +"The replay differs from the recorded original-game values. Compare the speed" +" rule and settings above." msgstr "" #: website/public/assets/home.js:29 @@ -12672,9 +13029,9 @@ 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." +"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 "" #: website/public/assets/figures/ctf-mask-equation.svg:25 @@ -12726,10 +13083,10 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:39 @@ -12807,9 +13164,9 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/rea-investigation-flow.svg:31 @@ -12890,10 +13247,10 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/th04-bullet-ring.svg:24 diff --git a/website/locales/ru/messages.po b/website/locales/ru/messages.po index 800c1f453fd..d37cba7c912 100644 --- a/website/locales/ru/messages.po +++ b/website/locales/ru/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Главная{ph1} страница / Блог" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Блог." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Мысли о реверс-инжиниринге." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Реконструкция игры{ph0}Сочинение" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Промышленная революция в области реверс-инжиниринга" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "Чему меня научило руководство по обновлению и реконструкции TH08, TH095 и " "TH04 об агентах, проверке и знаниях, которые используются в разных проектах." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Прочтите статью" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Автор: N0zoM1z0 · 10 октября 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Размышления о реверс-инжиниринге, основанные на практическом опыте работы с " "REA и агентами искусственного интеллекта." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA — Узнайте, как работает программное обеспечение. Обратное проектирование" " с помощью вашего ИИ-помощника для программирования." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Главная REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Основная навигация" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA на GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Присоединиться к REA в Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Подписаться на REA в X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -265,35 +265,35 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Эссе · Реконструкция Тохоу" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Промышленная революция в области реверс-инжиниринга." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Автор: N0zoM1z0 · 10 октября 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Главное" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -356,65 +356,65 @@ msgstr "" "{ph0}Мы находимся на заре промышленной революции в RE.{ph1} Методы все еще " "разрабатываются. Нам еще многое предстоит изучить." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Как опыт соединяет" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Самостоятельность" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Агент" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Проверка" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Эталон проверки" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Репозиторий" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Рабочая память" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -423,7 +423,7 @@ msgstr "Кодекс, доказательства,{ph0}проверки и ур #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -432,26 +432,26 @@ msgstr "Несоответствие{ph0}{ph1}Пересмотрите гипо #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Повторное использование" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -460,14 +460,14 @@ msgstr "" "Каждый следующий проект становится лучшей отправной точкой. Это включает в " "себя исправление проверок, когда мы обнаруживаем пробелы." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "В этой статье" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -475,7 +475,7 @@ msgstr "{ph0}Август 2026 года{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -483,7 +483,7 @@ msgstr "{ph0} TH08 : продолжение{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -491,7 +491,7 @@ msgstr "{ph0}Два подхода{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -499,7 +499,7 @@ msgstr "{ph0} TH095 : рецептура{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -507,7 +507,7 @@ msgstr "{ph0} TH04 : различные архитектуры{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -515,7 +515,7 @@ msgstr "{ph0}От точного к удобочитаемому{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -523,18 +523,18 @@ msgstr "{ph0}Промышленный сдвиг{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Что изменилось в августе 2026 года" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -549,7 +549,7 @@ msgstr "" "времени на следующую функцию. Это также означало, что я держал в голове все " "более объемную картину." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -563,7 +563,7 @@ msgstr "" "полезен в других областях, но в каждой области необходимо установить, что " "можно проверить с помощью надежных ссылок." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -576,7 +576,7 @@ msgstr "" "программе и обычным инструментам разработки. Touhou reconstruction " "предоставила мне значительный проект, в котором я мог это выяснить." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -594,7 +594,7 @@ msgstr "" "уделять больше внимания направлению проекта и тому, заслуживают ли доверия " "его проверки." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -605,7 +605,7 @@ msgstr "" "том, что останется после текущего проекта. Будет ли в следующей игре полезно" " все, что мы только что узнали?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08 : опора на человеческий труд" @@ -614,7 +614,7 @@ msgstr "TH08 : опора на человеческий труд" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -628,7 +628,7 @@ msgstr "" "существенную основу. Это пришло вместе со знанием конструкции и историей " "вклада, которую я сохранил в продолжении." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -640,7 +640,7 @@ msgstr "" " журнале были зарегистрированы исходные данные для всех 1107 " "идентифицированных игровых функций." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -652,7 +652,7 @@ msgstr "" "веб-версия. 64-разрядная версия Linux для собственной версии вышла 30 " "августа." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -668,7 +668,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -686,12 +686,12 @@ msgstr "" "ожидаемого состояния. Агент предлагает объяснение и проверяет его; " "несоответствие дает ему возможность исследовать что-то конкретное." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Точное совпадение с неправильной константой" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -703,7 +703,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -716,7 +716,7 @@ msgstr "" "проигрывателя была проверена на уровне {ph0}. В оригинале использовалось " "значение {ph1} - порог максимальной мощности." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -731,13 +731,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -752,7 +752,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -769,7 +769,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -785,7 +785,7 @@ msgstr "" " Было обнаружено еще двенадцать неправильных ссылок в пяти принятых " "функциях." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -799,7 +799,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -809,7 +809,7 @@ msgstr "" "{ph0}Ссылка для проверки (oracle) также нуждалась в восстановлении.{ph1} Ее " "исправление было частью обновления игры." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -827,7 +827,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -844,7 +844,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -854,7 +854,7 @@ msgstr "" "{ph0}Успешный запуск пакета позволил нам восстановить код и улучшить среду " "для следующего пакета.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Две разные идеи реконструкции" @@ -863,7 +863,7 @@ msgstr "Две разные идеи реконструкции" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -875,7 +875,7 @@ msgstr "" " рода работой. В уведомлении сообщается, что дальнейшая разработка будет " "вестись в частном порядке до завершения. В одном отрывке говорится:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -885,7 +885,7 @@ msgstr "" "интеллекта) в этой области, основанный на нашей работе, создает плохую " "картину для будущих усилий по декомпиляции…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -903,7 +903,7 @@ msgstr "" "касаются того, как должна проходить реконструкция и как следует оценивать " "вклад." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -917,7 +917,7 @@ msgstr "" " имело значение, потому что большая часть рассуждений возникала во время его" " работы." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -929,7 +929,7 @@ msgstr "" "может использовать эти знания для проведения следующего расследования " "самостоятельно." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -944,7 +944,7 @@ msgstr "" "человек мог проанализировать, почему мы выбрали ту или иную реализацию, даже" " если большую часть работы выполнил агент." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -957,7 +957,7 @@ msgstr "" "связи с этим возникают серьезные вопросы о кредитоспособности. Это также " "меняет то, что необходимо знать разработчикам, прежде чем принимать вклад." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -973,7 +973,7 @@ msgstr "" "неверны. Различные сообщества могут выбирать, какую часть этих изменений они" " хотят взять на себя." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -998,7 +998,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1011,14 +1011,14 @@ msgstr "" "является сокращенной выдержкой. {ph4}Титры и происхождение{ph5} TH08 " "указывают на границу продолжения." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095 : опыт начинает накапливаться" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1033,7 +1033,7 @@ msgstr "" " знали гораздо больше о том, как начать реконструкцию и как поддерживать ее " "в рабочем состоянии." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1046,7 +1046,7 @@ msgstr "" "программа была подключена. Реконструкция Windows i386 была отмечена как " "играбельная 10 сентября, примерно через двенадцать дней после инициализации." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1057,7 +1057,7 @@ msgstr "" "могла бы извлечь выгоду из работы над другой игрой. Опыт уже присутствовал в" " инструментах и в том, как был организован проект." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1072,7 +1072,7 @@ msgstr "" "нужно увидеть, как они работают вместе. Этот урок помог нам сформулировать " "подход к построению всей программы TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1086,7 +1086,7 @@ msgstr "" "может использовать результат, не повторяя расследование, которое привело к " "нему." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1101,7 +1101,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1113,7 +1113,7 @@ msgstr "" "игры.{ph1} В следующем проекте мы можем потратить больше усилий на то, чтобы" " внести что-то действительно новое в его цель." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1126,7 +1126,7 @@ msgstr "" " работу. Им не нужно восстанавливать всю историю проекта, чтобы выяснить, " "почему исходный код выглядит именно так." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "" @@ -1136,7 +1136,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1153,7 +1153,7 @@ msgstr "" "Существующая {ph2}работа{ph3} по ReC98 также дала нам ценные знания и " "исходные материалы." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1166,7 +1166,7 @@ msgstr "" "настоящее время используется собственный 64-разрядный порт. При установке " "рабочей версии DOS сначала указывается ссылка на этот порт." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1179,7 +1179,7 @@ msgstr "" "Но агент по-прежнему мог довести вопрос до результата и использовать этот " "результат для следующего эксперимента." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1194,7 +1194,7 @@ msgstr "" "доказательства и чеки будут доступны, агент сможет проработать вопрос во " "многом так же, как это было с заголовком Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1206,7 +1206,7 @@ msgstr "" "определила проблему; рабочий процесс по-прежнему давал нам возможность ее " "решить." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1223,7 +1223,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1234,12 +1234,12 @@ msgstr "" "тестирование{ph1} · {ph2}64-разрядный порт{ph3}. Порт находится в " "разработке." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "От точного кода к читаемому коду" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1248,7 +1248,7 @@ msgstr "" "Как только реконструкция завершится, я хочу, чтобы кто-то еще смог это " "понять." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1263,7 +1263,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1281,7 +1281,7 @@ msgstr "" "источником, чтобы следующий человек мог понять, откуда взялась эта " "интерпретация." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1296,14 +1296,14 @@ msgstr "" "это состояние. Чтобы безопасно изменить поведение, нам нужно восстановить " "связь, стоящую за старым доступом к памяти." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Порядок, который я сейчас использую, таков:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1319,7 +1319,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1336,7 +1336,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1352,7 +1352,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1367,7 +1367,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1384,7 +1384,7 @@ msgstr "" "восстановленная программа по-прежнему строит и ведет себя корректно в " "соответствии с выбранными нами путями." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1398,7 +1398,7 @@ msgstr "" "доступны, агенту не удастся провести расследование, прежде чем проводить " "дальнейший рефакторинг." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1416,7 +1416,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1435,7 +1435,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1446,12 +1446,12 @@ msgstr "" "позволяет использовать восстановленные знания.{ph1} Затем порт может " "использовать и то, и другое." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Что делает это промышленным сдвигом" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1465,7 +1465,7 @@ msgstr "" "совершенный инструмент мог бы помочь в любой последующей работе, которая в " "нем нуждалась." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1479,7 +1479,7 @@ msgstr "" "ждать, пока я назначу каждый шаг, большая часть работы остается в моем " "распоряжении." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1492,7 +1492,7 @@ msgstr "" " ему понять ошибку достаточно хорошо, чтобы повторить попытку. Мне все еще " "нужно решить, соответствуют ли собранные данные этапу проекта." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1508,7 +1508,7 @@ msgstr "" "предлагаемый им источник и посмотреть, соответствует ли его объяснение " "действительности." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1526,7 +1526,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1547,7 +1547,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1564,7 +1564,7 @@ msgstr "" "инструменте, мы должны устранить его и пересмотреть результаты, на которые " "он повлиял. Следующий проект может унаследовать более мощный инструмент." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1580,7 +1580,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1592,7 +1592,7 @@ msgstr "" " дает проектам возможность совместно проводить проверки и извлекать уроки. " "Работа над одной игрой может улучшить стартовые условия для другой." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1604,12 +1604,12 @@ msgstr "" "Совершенствование этих инструментов влияет на то, как много может сделать " "следующий человек — или следующий агент." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Проекты, которые мы теперь можем рассмотреть" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1620,7 +1620,7 @@ msgstr "" "увлекательной для реинжиниринга и все равно требовать от меня больше " "внимания, чем я мог бы ей уделить. Многие проекты так и останутся идеями." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1637,7 +1637,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1648,7 +1648,7 @@ msgstr "" "обратная связь и накопленные знания позволили бы агенту надежно работать с " "ней?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1659,12 +1659,12 @@ msgstr "" "бы в покое. Каждый из них может улучшить наш подход к следующему. Я хочу " "продолжать изучать, как далеко это может нас завести." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Основные этапы и источники реализации проекта" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1699,7 +1699,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1733,7 +1733,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1752,7 +1752,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1776,7 +1776,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1798,7 +1798,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1815,7 +1815,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1837,7 +1837,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1851,7 +1851,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1874,27 +1874,27 @@ msgstr "" " агентов искусственного интеллекта и о том, как знания объединяются в TH08, " "TH095 и PC-98, TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Опыт, накопленный в период между проектами" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Эссе о реконструкции Тохоу" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -1903,18 +1903,18 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Проверить → перестроить → изменить" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Восстановите скоростное правило динозавра." @@ -1923,7 +1923,7 @@ msgstr "Восстановите скоростное правило диноз #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1935,15 +1935,15 @@ msgstr "" "скоростью. {ph0}REA вернул запущенный скрипт;{ph1} мы использовали его " "правило для создания этой мини-игры с {ph2}регулируемой скоростью.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "На этой странице" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1951,7 +1951,7 @@ msgstr "{ph0}Играйте и меняйте скорость{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1959,7 +1959,7 @@ msgstr "{ph0}Прочтите восстановленное правило{ph1} #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1967,18 +1967,18 @@ msgstr "{ph0}Проверьте реконструкцию{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Играйте и меняйте скорость" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1990,49 +1990,49 @@ msgstr "" "на фиксированную скорость. Выберите восстановленное правило, чтобы начать с " "6 и постепенно увеличивать скорость снова." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Играть в воссозданную версию" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Играть" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Прыжок ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Начать заново" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Скорость" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Используйте правило восстановленного ускорения" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2041,7 +2041,7 @@ msgstr "" "Включите JavaScript для воспроизведения реконструкции. Приведенный выше код " "и пояснения остаются читаемыми." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Прочитал возвращенный скрипт REA" @@ -2049,7 +2049,7 @@ msgstr "Прочитал возвращенный скрипт REA" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2064,7 +2064,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2074,18 +2074,18 @@ msgstr "" "Заданы следующие параметры: {ph0}, {ph1} и МАКСИМАЛЬНАЯ {ph2}. Игра " "запускает эту ветку в обновлении без каких-либо коллизий." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Используйте то же правило в новой игре" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Копировать" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2102,18 +2102,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Проверьте реконструкцию" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2124,27 +2124,27 @@ msgstr "" "препятствиями и автоматическим планированием. Сравните эти записанные " "скорости с воспроизведением восстановленного правила." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Обновления" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Оригинальная игра" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Реконструированное правило" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Запустите проверку скорости" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2153,14 +2153,14 @@ msgstr "" "Значения округлены до трех знаков после запятой. Ветвление проверяет перед " "добавлением, поэтому конечное приращение может быть чуть выше 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Попробуйте провести анализ самостоятельно" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2169,7 +2169,7 @@ msgstr "{ph0}Настройте REA{ph1} с помощью вашего аген #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2178,7 +2178,7 @@ msgstr "" "Выполните {ph0}действия по подключению к браузеру{ph1}, используя {ph2} в " "качестве URL-адреса страницы." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2195,7 +2195,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2207,7 +2207,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодирующий аг #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2221,7 +2221,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2236,7 +2236,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2262,12 +2262,12 @@ msgstr "" "Прочитайте правила скорости в игре про динозавров с помощью REA, перестройте" " их, затем измените скорость и играйте." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Реконструкция скорости динозавра" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2276,52 +2276,52 @@ msgstr "" "Мини-игра про динозавров. Используйте кнопку перехода или нажмите пробел, " "пока игра сосредоточена." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Скопируйте восстановленное правило скорости" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Запрос на копирование результатов анализа динозавров" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Главная{ph1} страница / Часто задаваемые вопросы" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ по REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Настройка, обновления, анализ и устранение неполадок." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Темы" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2329,7 +2329,7 @@ msgstr "{ph0}Настройка и обновления{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2337,7 +2337,7 @@ msgstr "{ph0}Анализ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2345,31 +2345,31 @@ msgstr "{ph0}Диагностика{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Данные и обмен ими{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Настройка и обновления" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Как установить REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Терминал · настройка агента" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Копировать" @@ -2377,7 +2377,7 @@ msgstr "Копировать" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2391,12 +2391,12 @@ msgstr "" "файлу и вопрос. Требования и шаги первого анализа описаны в {ph0}руководстве" " по настройке{ph1}." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Какие агенты кодирования могут использовать REA?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2411,18 +2411,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Подключите свой кодирующий агент{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Как обновить REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2430,13 +2430,13 @@ msgid "" msgstr "" "REA релизы часто, включая исправления ошибок. Если вы установили CLI с npm:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Терминал · установлен CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2446,14 +2446,14 @@ msgstr "" "Выполните команду обновления настроек, указанную в обновлении. Если вы " "настраиваете свой агент через {ph0}, запустите:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Терминал · настройка агента обновления" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2465,14 +2465,14 @@ msgstr "" "фиксированную версию пакета. Повторите настройку, чтобы агент перешёл на " "новую версию. Для разового вызова CLI добавьте нужную команду после {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Устанавливается навык из навыков.этого достаточно?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2485,24 +2485,24 @@ msgstr "" "соответствующий навык, затем перезапустите свой агент, чтобы он мог вызвать " "инструменты." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Анализ" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Что я могу проанализировать с помощью REA?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Начните с того программного обеспечения, которое у вас есть:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2514,7 +2514,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2526,7 +2526,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2536,7 +2536,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2548,12 +2548,12 @@ msgstr "" "APK для Android, встроенного ПО и упакованных ресурсов. {ph0}Смотрите " "примеры проведенных исследований{ph1}." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Нужен ли мне Hopper, Ghidra или IDA?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2565,7 +2565,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2578,12 +2578,12 @@ msgstr "" "сервер определяют, какого провайдера можно использовать. {ph0}Настройте " "анализ программ с машинным кодом{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Могу ли я использовать REA без кодирующего агента?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2592,14 +2592,14 @@ msgstr "" "Да. В CLI используются те же рабочие процессы анализа. Для локального " "приложения JavaScript или Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Терминал · статический анализ приложений" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2610,13 +2610,13 @@ msgstr "" "{ph0}Используйте CLI{ph1} для параметров установки." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2631,7 +2631,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2643,12 +2643,12 @@ msgstr "" " тестирования реализации. {ph0}Расчет{ph1} DX-Ball и {ph2}проверка флага " "CTF{ph3} показывают, как работает этот процесс." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Что спросить у помощника?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2665,7 +2665,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2673,7 +2673,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодирующий аг #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2683,18 +2683,18 @@ msgstr "" "Замените путь на целевой. В {ph0}руководствах{ph1} приведены подсказки для " "примеров в native, Electron и браузере." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Диагностика" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Почему мой агент не может видеть инструменты REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2704,7 +2704,7 @@ msgstr "" "Перезапустите или повторно подключите свой агент после настройки. Проверьте " "его регистрацию REA в {ph0}; для Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Терминал · проверьте одного клиента" @@ -2712,7 +2712,7 @@ msgstr "Терминал · проверьте одного клиента" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2723,14 +2723,14 @@ msgstr "" "Если в отчете отображается отсутствие или устаревшая регистрация, запустите " "программу установки для этого клиента:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Терминал · исправление настроек одного клиента" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2742,14 +2742,14 @@ msgstr "" "успешно, но инструменты по-прежнему отсутствуют, проверьте ошибку " "подключения клиента MCP. {ph0}Дополнительная диагностика настройки{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Нужно ли мне сначала запускать Hopper?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2762,14 +2762,14 @@ msgstr "" "демонстрационный режим или активацию лицензии. {ph0}Смотрите раздел " "Настройка собственного провайдера{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Что делать, если я нашёл ошибку?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2781,7 +2781,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2793,17 +2793,17 @@ msgstr "" "систему, тип устройства, шаги для воспроизведения и вывод ошибки. Укажите " "имя поставщика, если проблема связана с анализом программ с машинным кодом." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Данные и обмен ими" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Загружает ли REA мое приложение?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2813,7 +2813,7 @@ msgstr "" " этим результатам применяется политика в отношении данных, установленная его" " поставщиком моделей." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Как я могу поделиться примером или внести свой вклад?" @@ -2822,7 +2822,7 @@ msgstr "Как я могу поделиться примером или внес #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2838,7 +2838,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2864,77 +2864,77 @@ msgstr "" "Ответы на распространенные вопросы REA: установка, обновления, инструменты " "анализа, средства программирования, устранение неполадок и обмен примерами." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Часто задаваемые вопросы о REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Скопировать установочную команду REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Скопировать команду обновления REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Команда обновления настройки агента копирования" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Скопировать команду анализа REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Запрос на копирование примера анализа" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Скопировать команду диагностики клиента" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Команда настройки в области копирования" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Главная{ph1} / Ваше первое расследование" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2943,14 +2943,14 @@ msgstr "" "Используйте REA для проверки небольшого приложения, нажмите на кнопку " "\"Экспорт заметок\" и проверьте одну деталь самостоятельно." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "В этом упражнении" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2958,7 +2958,7 @@ msgstr "{ph0}1. Настройка{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2966,7 +2966,7 @@ msgstr "{ph0}2. Спросите об экспорте{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2974,7 +2974,7 @@ msgstr "{ph0}3. Следуйте ответу{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2982,13 +2982,13 @@ msgstr "{ph0}4. Проверьте прогноз{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Подключите своего агента к REA." @@ -3001,30 +3001,30 @@ msgstr "1. Подключите своего агента к REA." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Копировать" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Или запустите эту команду в своем терминале:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3033,14 +3033,14 @@ msgstr "" "Ознакомьтесь с планом, одобрите настройку, затем перезапустите свой агент. " "Вы уже подключены? Продолжение ниже." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Спросите, где записан CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3052,7 +3052,7 @@ msgstr "" "кнопкой {ph0}экспорта заметок{ph1}. Ваш агент может проверить его код, не " "устанавливая и не запуская Electron." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3063,14 +3063,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Пример загрузки ZIP-файла{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3081,12 +3081,12 @@ msgstr "" "самостоятельно. Укажите путь к папке {ph0} и задайте тот же вопрос об " "экспорте." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Следуйте ответу обратно к коду" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Ищите краткое объяснение со ссылками на файлы и строки:" @@ -3095,7 +3095,7 @@ msgstr "Ищите краткое объяснение со ссылками н #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3107,12 +3107,12 @@ msgstr "" "CSV и записывает {ph1} в папку загрузок пользователя. Это столбцы {ph2} и " "{ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "От кнопки до устройства записи файлов" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3121,7 +3121,7 @@ msgstr "" "Статический анализ REA сопоставляет сообщение с его обработчиком. Адресат " "считывается из кода." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3133,19 +3133,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" "{ph0}Посмотрите полную трассировку кода и записанный результат{ph1} REA." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Проверьте прогноз" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3154,29 +3154,29 @@ msgstr "" "Столбцы CSV разделены запятой. Что происходит, когда заголовок заметки сам " "по себе содержит запятую или кавычки?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Проведите проверку самостоятельно" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Задайте еще один вопрос" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Попробуйте продолжить тот же разговор:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3185,7 +3185,7 @@ msgstr "" "Что произойдет, если файл не может быть записан? Вернитесь на страницу, " "указанную в сообщении об ошибке." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3198,7 +3198,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3212,7 +3212,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3226,7 +3226,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3251,116 +3251,116 @@ msgstr "" "спросите, куда отправляются экспортированные заметки, и проверьте " "форматирование CSV с примером заголовка." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Ваше первое расследование REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Скопировать запрос на установку REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Команда настройки копирования" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Запрос на копирование заметок для расследования" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Скопировать запрос проверки CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Команда проверки форматирования копии" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Главная{ph1} страница / Начало работы" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Настройте REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Откройте терминал и проверьте:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Терминал" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Копировать" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3372,7 +3372,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3384,7 +3384,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3396,7 +3396,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3404,7 +3404,7 @@ msgstr "{ph0}Используйте CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3418,19 +3418,19 @@ msgstr "{ph0}Получение помощи{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Или запустите программу настройки самостоятельно" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Как мне открыть терминал?" @@ -3439,7 +3439,7 @@ msgstr "Как мне открыть терминал?" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3455,7 +3455,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3469,7 +3469,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3484,7 +3484,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3494,7 +3494,7 @@ msgstr "" "Введите команду с помощью {ph0} {ph1} ( macOS : {ph2} {ph3}; Linux для " "терминалов: {ph4} {ph5} {ph6}), затем нажмите Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3505,7 +3505,7 @@ msgstr "" "и соответствующий навык исследования, сохраняя резервную копию существующей " "конфигурации. Перед применением изменений он спрашивает вашего разрешения." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Как мне перезапустить мой клиент?" @@ -3514,7 +3514,7 @@ msgstr "Как мне перезапустить мой клиент?" #. {ph1}:
#. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3531,7 +3531,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3541,7 +3541,7 @@ msgstr "" "{ph0}Терминальные агенты{ph1} ( Claude Code , Codex , Gemini CLI ): выйдите " "из сеанса и запустите его снова." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Как мне получить полный путь к папке?" @@ -3550,7 +3550,7 @@ msgstr "Как мне получить полный путь к папке?" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3565,7 +3565,7 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3577,7 +3577,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3587,13 +3587,13 @@ msgstr "" "{ph0}Любая система:{ph1} перетащите папку в окно терминала, и появится путь " "к ней." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3602,14 +3602,14 @@ msgstr "" "Проанализируйте папку приложения JavaScript или Electron или архив ASAR, не " "запуская приложение:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Статический анализ приложений" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3619,13 +3619,13 @@ msgstr "" "Замените путь на каталог вашего извлеченного приложения или файл {ph0}. В " "Windows здесь работает путь, например {ph1}." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Где мне найти asar-файл приложения?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3636,7 +3636,7 @@ msgstr "Приложения Electron обычно хранят его в пап #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3648,7 +3648,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3661,14 +3661,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} часто {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3676,7 +3676,7 @@ msgstr "" "Некоторые приложения устанавливаются в другом месте. Найдите в папке " "приложения {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3688,36 +3688,36 @@ msgstr "" "которые REA не может разрешить." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Установите CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Подключите вашу установку Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Подключите Ghidra к Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3729,14 +3729,14 @@ msgstr "" "NTFS. Используйте существующую установку Ghidra 12.1.x и 64-разрядную версию" " JDK 21 или новее:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 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:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3746,18 +3746,18 @@ msgstr "" "установки; она обнаружит существующую установку или предложит план установки" " для вашего одобрения." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Получение помощи" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Если ваш агент не видит REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3767,22 +3767,22 @@ msgstr "" "Перезапустите или повторно подключите клиент после установки. Проверьте его " "REA-соединение с {ph0}; для Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Если поставщик услуг нуждается во внимании" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Проверьте, каким провайдером вы пользуетесь. Для Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Проверьте одного поставщика" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3793,7 +3793,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3806,7 +3806,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3820,7 +3820,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3834,7 +3834,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3858,68 +3858,68 @@ msgstr "" "приложение JavaScript или Electron из терминала. Настройка, первые вопросы и" " руководства по инструментам анализа машинного кода." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Скопируйте проверку версии Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Скопируйте команду установки Node.js для Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Скопировать команду установки Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Скопируйте команду установки fnm для Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Скопируйте 24 команды Node.js для Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA руководство по началу работы" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Скопировать запрос на установку REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Скопировать команду анализа JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Скопировать команду установки CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Команда диагностики поставщика копирования" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -3928,20 +3928,20 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Главная{ph1} страница / {ph2}Руководства{ph3} / Обзор браузера" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3950,14 +3950,14 @@ msgstr "" "Используйте небольшое браузерное приложение для подключения действия, его " "сетевого запроса и JavaScript, который создает загрузку." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "В этом руководстве" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3965,7 +3965,7 @@ msgstr "{ph0}Приведенный пример{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3973,7 +3973,7 @@ msgstr "{ph0}Откройте браузер{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3981,7 +3981,7 @@ msgstr "{ph0}Спросите своего агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3989,13 +3989,13 @@ msgstr "{ph0}Захват из CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Что происходит, когда вы нажимаете кнопку Экспортировать?" @@ -4005,7 +4005,7 @@ msgstr "Что происходит, когда вы нажимаете кноп #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4017,7 +4017,7 @@ msgstr "" "При нажатии на нее загружается файл {ph4}, две заметки форматируются как CSV" " и начинается загрузка." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "От клика до загрузки CSV" @@ -4028,7 +4028,7 @@ msgstr "От клика до загрузки CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4044,7 +4044,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4062,7 +4062,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4072,17 +4072,17 @@ msgstr "" "{ph0}03 · Ваш агент{ph1}{ph2} прочитал экспортный код{ph3}{ph4}, " "подключающий наблюдаемый запрос к {ph5} в {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Запустите запись, прежде чем нажать кнопку Экспортировать заметки." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Откройте Chrome с удаленной отладкой" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4091,21 +4091,21 @@ msgstr "" "Откройте размещенный на хостинге пример Notes, используя отдельный профиль " "браузера и локальный порт для отладки. На Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Запустите примерный браузер" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Копировать" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4115,7 +4115,7 @@ msgstr "" " или Windows . Вы можете заменить URL-адрес страницы на другую страницу, " "которую хотите просмотреть." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4124,7 +4124,7 @@ msgstr "" "REA подключается к этому существующему браузеру. Вы сохраняете контроль над " "страницей, выполняете действие и по завершении закрываете браузер." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Попросите своего агента посмотреть одно действие" @@ -4137,7 +4137,7 @@ msgstr "Попросите своего агента посмотреть одн #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4149,7 +4149,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодирующий аг #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4161,7 +4161,7 @@ msgstr "" "устроен CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4171,7 +4171,7 @@ msgstr "" "Пример запроса. Укажите вашему агенту конечную точку отладки, {ph0} и URL-" "адрес страницы. Пусть он запустит запись до того, как вы нажмете." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4182,23 +4182,23 @@ msgstr "" "считывает полученные данные. Затем он может проверить сценарий, лежащий в " "основе экспорта." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Или захват с терминала" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Найдите целевой идентификатор страницы:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Найдите нужную страницу" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4208,14 +4208,14 @@ msgstr "" "Выберите целевой объект с помощью URL-адреса, приведенного в примере Notes. " "Замените {ph0} ниже на его идентификатор, затем запустите:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Запечатлейте следующие десять секунд" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4226,7 +4226,7 @@ msgstr "" "\"{ph0}Экспортировать заметки{ph1}\" в этом браузере. Результат появится " "после завершения просмотра." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4237,49 +4237,49 @@ msgstr "" "течение этого окна и форму ответа в формате JSON. Предыдущие запросы не " "входят в этот список." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Прочитайте запрос и экспортируйте скрипт" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Записано с помощью REA 4.1.0 на примере local Notes" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Зафиксированный факт" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Ценность" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Запрос" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Ответ" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Инициатор запроса" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · сценарий" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Структура ответа" @@ -4287,19 +4287,19 @@ msgstr "Структура ответа" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Прочитайте загруженные скрипты" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4311,7 +4311,7 @@ msgstr "" "чтобы увидеть, как используются данные:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4324,7 +4324,7 @@ msgstr "" "при этом щелчке запрашивался файл {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4336,7 +4336,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4361,65 +4361,65 @@ msgstr "" "Наблюдайте за экспортом заметок с помощью REA: выберите страницу браузера, " "зафиксируйте щелчок, просмотрите запрос и следуйте сценарию экспорта." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Наблюдение в браузере" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Скопируйте и запустите пример браузера" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Запрос на копирование примера" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Скопируйте найденную страницу" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Скопируйте запись на следующие десять секунд" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Копировать читать загруженные скрипты" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Главная{ph1} страница / Путеводители" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Направляющие REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4428,37 +4428,39 @@ msgstr "" "Проанализируйте встроенную функцию, экспорт Electron или запрос браузера. " "Каждое руководство содержит подсказку, код и результаты." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Первое расследование" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Настройка REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." -msgstr "Подключите своего ИИ-помощника для программирования или используйте REA в терминале." +msgstr "" +"Подключите своего ИИ-помощника для программирования или используйте REA в " +"терминале." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Начните работу с REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Программы с машинным кодом" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Восстановление расчета положения звука слева/справа" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4468,22 +4470,22 @@ msgstr "" "следуйте за вызывающим пользователем, прочитайте числовые константы и " "проверьте восстановленный C." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Руководство по анализу программ с машинным кодом" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript и Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Следите за экспортом CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4493,14 +4495,14 @@ msgstr "" "предварительной загрузки и основного процесса. Используйте REA для " "подключения API, IPC-канала и средства записи файлов." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Руководство по JavaScript и Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4508,17 +4510,17 @@ msgstr "" "Чтобы создать более крупное упакованное приложение, воспользуйтесь " "{ph0}мостом буфера{ph1} обмена Notion." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Поведение браузера" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Наблюдайте за щелчком" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4527,7 +4529,7 @@ msgstr "" "Откройте пример working Notes, запишите запрос на экспорт и найдите код, " "который преобразует его ответ в загрузку." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Руководство по наблюдению за браузером" @@ -4546,12 +4548,12 @@ msgstr "" "Изучите REA на кратких примерах: собственные вычисления, экспорт Electron, " "CSV и запрос из браузера." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -4560,7 +4562,7 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" @@ -4568,13 +4570,13 @@ msgstr "" "{ph0}Главная{ph1} страница / {ph2}Руководства{ph3} / JavaScript и Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4583,14 +4585,14 @@ msgstr "" "Выполните нажатие кнопки на странице API, через Electron IPC, для записи " "файлов CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "В этом руководстве" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4598,7 +4600,7 @@ msgstr "{ph0}Приведенный пример{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4606,7 +4608,7 @@ msgstr "{ph0}Спросите своего агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4614,7 +4616,7 @@ msgstr "{ph0}Отслеживание экспортного кода{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4622,20 +4624,20 @@ msgstr "{ph0}Попробуйте на примере{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Куда девается “Экспорт заметок”?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4648,7 +4650,7 @@ msgstr "" "выполняется переход к основному процессу и записывается CSV . Поведение " "распределено по нескольким файлам." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Экспорт CSV в рамках процессов Electron" @@ -4662,7 +4664,7 @@ msgstr "Экспорт CSV в рамках процессов Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4680,7 +4682,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4697,7 +4699,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4710,13 +4712,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4727,14 +4729,14 @@ msgstr "" "открытый API. Путь выводится из кода; при перехвате во время выполнения " "можно проверить, что выполняется." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Спросите об экспорте CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4752,14 +4754,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Копировать" @@ -4770,7 +4772,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4781,7 +4783,7 @@ msgstr "" "экспортирую заметки в это приложение. Где создан CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4789,7 +4791,7 @@ msgid "" "{ph0}." msgstr "Пример запроса. Укажите абсолютный путь к папке приложения или {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4800,17 +4802,17 @@ msgstr "" " процессов. Ваш агент использует эту карту, чтобы сузить область поиска до " "функции экспорта." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Отслеживание экспортного кода" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Страница вызывает небольшой API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4821,7 +4823,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4833,7 +4835,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4844,7 +4846,7 @@ msgstr "" "форматируются, и основной процесс записывает файл {ph1} в папку загрузок " "пользователя." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4854,7 +4856,7 @@ msgstr "" "Расположение исходных текстов соответствует выводам API, канала и " "обработчика." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Проанализируйте этот пример самостоятельно" @@ -4862,25 +4864,25 @@ msgstr "Проанализируйте этот пример самостоят #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Пример загрузки ZIP-файла{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Просмотрите шесть исходных файлов" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Статический анализ приложений" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4891,7 +4893,7 @@ msgstr "" "канал и один соответствующий обработчик в {ph0}. Местоположения источников " "указаны в {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4902,13 +4904,13 @@ msgstr "" "каталог или путь к ASAR. Агент может использовать буквенную строку, имя API " "или IPC-канал с помощью инструментов отслеживания функций REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Проверьте устройство записи CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4918,7 +4920,7 @@ msgstr "" "Следуйте {ph0} в его обработчик. Какие входные данные поступают в CSV writer" " и что произойдет, если запись файла завершится неудачей?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4934,7 +4936,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4948,7 +4950,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4962,7 +4964,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4988,32 +4990,32 @@ msgstr "" "предварительной загрузки и обработчика IPC с помощью REA. Включает " "загружаемые файлы примеров и проверенный результат анализа." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript и Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Запрос на копирование примера" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Копирование статического анализа приложения" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -5022,7 +5024,7 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5031,13 +5033,13 @@ msgstr "" "машинным кодом" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5046,14 +5048,14 @@ msgstr "" "Просмотрите исходные инструкции, определите входные данные и константы, " "затем проверьте восстановленный C." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "В этом руководстве" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5061,7 +5063,7 @@ msgstr "{ph0}Приведенный пример{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5069,7 +5071,7 @@ msgstr "{ph0}Спросите своего агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5077,7 +5079,7 @@ msgstr "{ph0}Ознакомьтесь с результатами REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5085,18 +5087,18 @@ msgstr "{ph0}Восстановите и проверьте{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Рассчитать расположение стереозвука слева / справа" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5107,7 +5109,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5119,7 +5121,7 @@ msgstr "" "функции {ph1}. REA также возвращает свои инструкции и вызывающие " "устройства, которые дают агенту возможность найти недостающую арифметику." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Вы знакомы с этими условиями?" @@ -5128,7 +5130,7 @@ msgstr "Вы знакомы с этими условиями?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5140,7 +5142,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5153,7 +5155,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5166,7 +5168,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5178,7 +5180,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5188,7 +5190,7 @@ msgstr "" "{ph0}Константы:{ph1} фиксированные числа, хранящиеся в программе, " "считываемые как необработанные байты и декодируемые." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Три улики, один расчет" @@ -5199,7 +5201,7 @@ msgstr "Три улики, один расчет" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5217,7 +5219,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5235,7 +5237,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5245,7 +5247,7 @@ msgstr "" "{ph0}03 · Байты данных{ph1}{ph2} Числовые константы{ph3}{ph4}, на которые " "ссылаются байты, декодируются как {ph5}, {ph6} и масштабное значение.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5254,7 +5256,7 @@ msgstr "" "REA предоставляет инструкции, связь между вызовами функций и байты. Агент " "интерпретирует их вместе." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Спросите о поведении" @@ -5263,7 +5265,7 @@ msgstr "Спросите о поведении" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5274,19 +5276,19 @@ msgstr "" " анализа программ с машинным кодом{ph3} предоставьте локальный исполняемый " "файл и вопрос:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Какой инструмент анализа мне следует использовать?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA нужен один из них для чтения собственных программ:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5300,7 +5302,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5313,7 +5315,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5324,7 +5326,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5340,14 +5342,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Копировать" @@ -5358,7 +5360,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5368,7 +5370,7 @@ msgstr "" "{ph0}\"{ph1}{ph2}Используйте REA, чтобы узнать, как DX-Ball рассчитывает " "расположение стереозвука. Объясните расчет и покажите код.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5380,7 +5382,7 @@ msgstr "" " копию или задайте такой же вопрос о другой небольшой программе Windows, " "которая у вас есть." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Как мне получить полный путь к файлу?" @@ -5389,7 +5391,7 @@ msgstr "Как мне получить полный путь к файлу?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5404,7 +5406,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5416,7 +5418,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5426,17 +5428,17 @@ msgstr "" "{ph0}Любая система:{ph1} перетащите файл в окно терминала, и появится путь к" " нему." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Ознакомьтесь с результатами REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Прочитайте входные данные" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5446,13 +5448,13 @@ msgstr "" " плавающей запятой. Это входные данные, отсутствующие в первом представлении" " псевдокода." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Следуйте за звонящим" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5463,12 +5465,12 @@ msgstr "" "координата плитки умножалась на 30; добавление {ph0} (20) дает положение " "кирпича на экране." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Прочитайте указанные константы" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5477,12 +5479,12 @@ msgstr "" "Арифметика ссылается на эти адреса. Считывание байтов позволяет получить " "фактические значения; порядок команд сообщает агенту, как они используются." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Запишите и проверьте восстановленную функцию" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5493,7 +5495,7 @@ msgstr "" "до преобразования в целое число. При вычислении центр экрана оказывается в " "центре стереополя." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5506,20 +5508,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Попробуйте это с вашим собственным двоичным кодом" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5534,7 +5536,7 @@ msgstr "" "обрабатывается этот файл?” или “Какая функция выполняет это действие в " "меню?”." -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5543,13 +5545,13 @@ msgstr "" "Если вы уже знаете название функции или адрес, вы можете запросить его из " "терминала. Для настроенной установки Ghidra:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Функциональный анализ" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5563,7 +5565,7 @@ msgstr "" "свой сеанс. Запросы вашего агента MCP повторно используют импортированный " "двоичный файл, пока этот сеанс открыт." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5588,50 +5590,50 @@ msgstr "" "следуйте за вызывающим пользователем, считывайте константы и проверяйте " "восстановленный C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Анализ программ с машинным кодом" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Запрос на копирование примера" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Анализ функции копирования" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Перейти к содержанию" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Настройка REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5639,7 +5641,7 @@ msgstr "{ph0}Настройка REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5647,7 +5649,7 @@ msgstr "{ph0}Игра в динозавров{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5655,7 +5657,7 @@ msgstr "{ph0}Калькулятор{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5663,25 +5665,25 @@ msgstr "{ph0}Попробуйте REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Узнать больше{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Обратное проектирование с помощью вашего агента по кодированию" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Узнайте, как{ph0}работает программа." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Вставьте этот запрос в своего ИИ-помощника для программирования:" @@ -5694,33 +5696,33 @@ msgstr "Вставьте этот запрос в своего ИИ-помощн #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Копировать" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Или выполните эту команду в терминале:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Проверьте и одобрите план изменений, затем перезапустите помощника." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5728,7 +5730,7 @@ msgstr "{ph0}01{ph1} Декодирование ветвей" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5736,7 +5738,7 @@ msgstr "{ph0}02{ph1} Отслеживание вызовов" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5746,20 +5748,20 @@ msgstr "{ph0}03{ph1} Восстановите правило" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 · В каком филиале?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5769,29 +5771,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Два перехода в одно и то же место. Что это за " "операторы?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Найдите идентификаторы команд, затем пометьте ветвь." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Разделить ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Умножить ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Что делают вызываемые функции?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5801,24 +5803,24 @@ msgstr "" "“100 - это чисто. Вызовы - это просто адреса. {ph0}Какой из них делится? " "Какое значение входит в?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Проверьте вспомогательные функции и проследите сохраненные значения." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Делить" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · Каково это правило?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5828,19 +5830,19 @@ msgstr "" "“Этот путь умножается на другие входные данные. Таким образом, {ph0}10% " "означает 10% от 200{ph1} после +”." -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Назовите операнды и проверьте оба пути к операторам." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Наглядное рассуждение эксперта" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5858,21 +5860,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Пример ответа · основан на результатах исследования" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5880,67 +5882,67 @@ msgid "" msgstr "" "После + кнопка % выводит {ph0}процентное значение от первого числа.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA предоставляет" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Инструкции обработчика, декомпилированный код и вызовы." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Помощник объясняет" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Какая ветвь применяется, что она вычисляет и как ее перестроить." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Пример 01 · Игра в динозавров Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Почему динозавр ускоряется?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Играть" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Прыжок ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Начать заново" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Скорость" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Используйте правило восстановленного ускорения" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Первоначальное правило: начинайте с 6, затем увеличивайте до 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5953,7 +5955,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5967,19 +5969,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" "Проверенная цель: {ph0}версия браузера wayou, основанная{ph1} на Chromium." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Откройте лабораторию скорости →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Что делает каждая часть" @@ -5990,7 +5992,7 @@ msgstr "Что делает каждая часть" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6006,7 +6008,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6023,7 +6025,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6033,13 +6035,13 @@ msgstr "" "{ph0}03 · Вы{ph1}{ph2} меняете скорость и играете{ph3}{ph4} с оригинальным " "ускорением, затем выбираете свой собственный темп.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Ознакомьтесь со сценарием, проверками и тем, как попробовать анализ" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6049,7 +6051,7 @@ msgstr "" "REA проверил версию HTTP-браузера через локальное отладочное соединение и " "вернул загруженный {ph0}, включая его исходный код и дайджест." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6063,7 +6065,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6080,7 +6082,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6098,7 +6100,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6107,34 +6109,34 @@ msgstr "" "{ph0}Проверенный код скорости{ph1} · {ph2}Авторы Chromium · Лицензия " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Пример 02 · Калькулятор Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Воссоздайте кнопку % калькулятора." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Сбросить" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% от 200 = 20. Тогда 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Интерактивная иллюстрация проверяемого процентного правила." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6146,7 +6148,7 @@ msgstr "В этом примере {ph0}, а {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6158,7 +6160,7 @@ msgstr "" "Windows. Восстановите правила после + и ×, затем создайте небольшой " "калькулятор, который использует оба параметра.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "С +" @@ -6166,13 +6168,13 @@ msgstr "С +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "С ×" @@ -6180,13 +6182,13 @@ msgstr "С ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Превратите 10% в 0,1200{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "От установленного приложения к рабочей кнопке %" @@ -6198,7 +6200,7 @@ msgstr "От установленного приложения к рабочей #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6215,7 +6217,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6227,12 +6229,12 @@ msgstr "" "правила{ph3}{ph4}, сверяет ветвь с исходным кодом Microsoft, затем " "попробуйте + и ×, указанные выше.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Посмотрите реальный код и то, как был проверен ответ" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6253,7 +6255,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6263,17 +6265,17 @@ msgstr "" "{ph0}Процент реализации{ph1} · {ph2}Тестовые примеры Microsoft{ph3} · " "Руководство по {ph4}встроенной настройке{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Ваше первое расследование" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Попробуйте REA в небольшом приложении." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6282,17 +6284,17 @@ msgstr "" "Загрузите наш пример Notes, проследите его экспорт CSV и проверьте один " "измененный ввод." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Попробуйте руководствоваться приведенным примером" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Программы с машинным кодом" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6301,17 +6303,17 @@ msgstr "" "Проверяйте функции, строки, ссылки и связи между вызовами функций в " "исполняемых файлах и библиотеках." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Руководство по анализу программ с машинным кодом" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript и Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6320,17 +6322,17 @@ msgstr "" "Отображайте модули, маршруты, IPC и собственные зависимости из папки " "приложения или архива ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Рабочие процессы приложений" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Активность в браузере и во время выполнения" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6339,12 +6341,12 @@ msgstr "" "Фиксируйте активность выбранного браузера или процесса, а затем сравнивайте " "результаты в разных запусках." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Руководство по наблюдению за браузером" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Есть вопросы?" @@ -6361,30 +6363,30 @@ msgid "" " Follow clear guides and try interactive examples with REA." msgstr "" "Выполняйте реинжиниринг приложений, двоичных файлов и поведения браузера с " -"помощью вашего ИИ-помощника для программирования. Следуйте четким инструкциям и попробуйте " -"интерактивные примеры с REA." +"помощью вашего ИИ-помощника для программирования. Следуйте четким " +"инструкциям и попробуйте интерактивные примеры с REA." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Скопировать запрос на установку REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Команда настройки копирования" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Следуйте инструкциям ручного калькулятора для анализа" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Процентный вопрос калькулятора копирования" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6393,27 +6395,27 @@ msgstr "" "Мини-игра про динозавров. Используйте кнопку перехода или нажмите пробел, " "пока игра сосредоточена." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Запрос на копирование результатов анализа динозавров" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Выберите способ расчета" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Запрос на анализ с помощью калькулятора копирования" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -6422,25 +6424,25 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Главная{ph1} страница / {ph2}Витрины{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Практический пример · Аутентификатор Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Откуда Аутентификатор{ph0}генерировать код авторизации?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6450,17 +6452,17 @@ msgstr "" "вычисления в Android APK , а затем перестройте их с помощью часов, которыми " "вы можете управлять." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android · Официальный релиз APK · 6,9 МБ" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Посмотреть Aegis на GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "От APK до кода, который вы можете воспроизвести" @@ -6471,7 +6473,7 @@ msgstr "От APK до кода, который вы можете воспрои #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6489,7 +6491,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6507,7 +6509,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6519,14 +6521,14 @@ msgstr "" "Ознакомьтесь с кодом.{ph3}{ph4}Новая демонстрация браузера воспроизводит " "правило и проверяет его на соответствие общедоступным ссылкам.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "В этом тематическом исследовании" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6534,7 +6536,7 @@ msgstr "{ph0}Спросите своего агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6542,7 +6544,7 @@ msgstr "{ph0}Попробуйте воспользоваться генерат #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6550,7 +6552,7 @@ msgstr "{ph0}Найдите код с помощью REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6558,7 +6560,7 @@ msgstr "{ph0}Ознакомьтесь с расчетом{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6566,20 +6568,20 @@ msgstr "{ph0}Проверьте реконструкцию{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Спросите своего агента" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6598,21 +6600,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Копировать" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6622,14 +6624,14 @@ msgstr "" "Пример запроса для загруженного APK с настроенным анализом REA для Android. " "{ph0}Получите APK и настройки анализа ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Попробуйте воспользоваться генератором кода" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6641,33 +6643,33 @@ msgstr "" "кода номер блока объединяется с ключом учетной записи. Один и тот же ключ и " "блок генерируют один и тот же код." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Переведите стрелки часов на 60 секунд вперед" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Время" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "секунд" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Наши регулируемые примерные часы" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30-секундный блок" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Блок" @@ -6676,35 +6678,35 @@ msgstr "Блок" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Сгенерированный код" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Ключ учетной записи + блокировка → шесть цифр" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Примерное время, в секундах" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 секунд" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 секунд" @@ -6713,7 +6715,7 @@ msgstr "60 секунд" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6725,7 +6727,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6735,7 +6737,7 @@ msgstr "" "Ключ является фиксированным, общедоступные {ph0}тестовые данные RFC " "6238{ph1}. В демонстрации реализован расчет, восстановленный из APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6744,18 +6746,18 @@ msgstr "" "На диаграмме показан результат за 59 секунд. Включите JavaScript, чтобы " "изменить время." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Найдите код с помощью REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Сократите APK до трех классов" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6766,14 +6768,14 @@ msgstr "" "индикатору выполнения и импортированным учетным записям. TOTP означает " "одноразовый пароль, основанный на времени." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Подключите генератор к дисплею приложения" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6784,7 +6786,7 @@ msgstr "" "метод. При проверке {ph0} на дисплее отображается вызов {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6794,14 +6796,14 @@ msgstr "" "Запросы показывают сокращенный путь ввода. В именах результирующих классов " "отсутствует распространенный префикс {ph0}." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Ознакомьтесь с расчетом" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6815,7 +6817,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6823,7 +6825,7 @@ msgstr "{ph0}Временной блок 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6831,7 +6833,7 @@ msgstr "{ph0}02{ph1} Клавиша + блок" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6839,7 +6841,7 @@ msgstr "{ph0}03{ph1} Шесть цифр" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6851,7 +6853,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6865,7 +6867,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6879,7 +6881,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6890,7 +6892,7 @@ msgstr "" "отображения. Правая панель представляет собой пояснительное резюме. " "{ph0}Код Aegis соответствует GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Внутри генератора" @@ -6899,7 +6901,7 @@ msgstr "Внутри генератора" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6909,7 +6911,7 @@ msgstr "" "Выпущенный APK переводит {ph0} в {ph1}. REA следует за вызовом из {ph2} и " "возвращает это тело; исходный источник вызывает вспомогательный {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6926,20 +6928,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Проверьте реконструкцию" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6952,29 +6954,29 @@ msgstr "" "тестовых примеров{ph1}, включая границы временных блоков и коды, " "начинающиеся с нуля." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Примерное время" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Шестизначный код" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 секунд" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 секунды" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6984,17 +6986,17 @@ msgstr "" "Генератор также соответствует шести опубликованным ссылочным вариантам SHA-1" " в {ph0}RFC 6238{ph1}. Проверьте их реализацию в браузере:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Выполнять проверку ссылок" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Ознакомьтесь с демонстрационным расчетом" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -7003,7 +7005,7 @@ msgstr "" "В контрольных случаях используются восьмизначные значения. Проверка также " "подтверждает их шестизначные результаты." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -7012,14 +7014,14 @@ msgstr "" "Для проверки используются извлеченные методы Java и новая демонстрация. " "Android APK был проверен статически." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Проверьте APK самостоятельно" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7031,7 +7033,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7042,18 +7044,18 @@ msgstr "" "Выберите его с помощью {ph0} или {ph1}. В данном случае использовался JDK " "21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7066,7 +7068,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7076,7 +7078,7 @@ msgstr "" "Следующий вопрос: {ph0}что происходит, когда в учетной записи используются " "восемь цифр или другой интервал времени?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Источники" @@ -7092,7 +7094,7 @@ msgstr "Источники" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7106,7 +7108,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7114,7 +7116,7 @@ msgstr "" "{ph0}Справочные примеры RFC 6238{ph1} · {ph2}Демонстрационные тестовые " "данные{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7139,37 +7141,37 @@ msgstr "" "Проверить Aegis Андроид APK с REA, восстановить его шестизначный логин-код " "расчетов и попробовать реконструкция с регулируемым часы." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Тематическое исследование Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Скопировать запрос в качестве примера Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Следуйте инструкциям по вводу регистрационного кода" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Скопировать команду проверки APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -7178,26 +7180,26 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Тематическое исследование · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Найдите флаг в{ph0}двоичном формате CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7208,19 +7210,19 @@ msgstr "" "преобразуйте его правила в уравнения и найдите входные данные, которые " "{ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 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:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Просмотрите оригинальную задачу" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "От двоичного кода к проверенному ответу" @@ -7231,7 +7233,7 @@ msgstr "От двоичного кода к проверенному ответ #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7249,7 +7251,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7267,7 +7269,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7279,7 +7281,7 @@ msgstr "" "Исправить!{ph3}{ph4}Уравнения решаются скриптом на Python. REA фиксирует " "исходную программу, принимающую результат.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7287,14 +7289,14 @@ msgstr "" "Задача написана Джозефом и опубликована в официальном репозитории " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "В этом тематическом исследовании" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7302,7 +7304,7 @@ msgstr "{ph0}Найдите проверочный код{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7310,7 +7312,7 @@ msgstr "{ph0}Прочитайте одну маску{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7318,7 +7320,7 @@ msgstr "{ph0}Сборка в читаемый код{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7326,7 +7328,7 @@ msgstr "{ph0}Решите уравнения{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7334,20 +7336,20 @@ msgstr "{ph0}Проверьте ответ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Попробуйте сами{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Найдите проверочный код" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7366,17 +7368,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Копировать" @@ -7387,7 +7389,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7399,7 +7401,7 @@ msgstr "" " Объясните, как работают проверки, затем проверьте ответ с помощью исходной " "программы.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7408,12 +7410,12 @@ msgstr "" "Пример запроса с загруженной задачей, доступной локально, и подключенным " "поставщиком программ для анализа машинного кода." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Следуйте инструкциям по вводу для перехода к его функции" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7422,14 +7424,14 @@ msgstr "" "Ссылка дает агенту возможность провести расследование, даже несмотря на то, " "что исходные имена функций исполняемого файла были удалены." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Ознакомьтесь с программой проверки и двумя ее помощниками" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7441,7 +7443,7 @@ msgstr "" "маску, суммирует выбранные коды и сравнивает результат с сохраненным числом." " Его шаги размером {ph0} байт по {ph1} байт дают 26 масок." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7451,12 +7453,12 @@ msgstr "" "объекту сокращен для отображения; адреса относятся к импортированному " "изображению REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Одна проверка выявляет один символ" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7470,7 +7472,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." @@ -7478,7 +7480,7 @@ msgstr "" "При седьмой проверке выбирается только одна позиция. {ph0}Откройте " "рисунок{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Считайте маску и ее цель из двоичного файла" @@ -7487,7 +7489,7 @@ msgstr "Считайте маску и ее цель из двоичного ф #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7499,12 +7501,12 @@ msgstr "" " означает -21. Целью является целое число в порядке убывания. Вместе эти " "байты сообщают агенту, что {ph2}, так что этот символ равен {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "От инструкций к удобочитаемому чеку" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7515,7 +7517,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7523,7 +7525,7 @@ msgstr "{ph0}01{ph1} Начало" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7531,7 +7533,7 @@ msgstr "{ph0}02{ph1} Выберите" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7539,7 +7541,7 @@ msgstr "{ph0}03{ph1} Добавить" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7547,18 +7549,18 @@ msgstr "{ph0}04{ph1} Продвижение" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Сравнить" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA · выбранные оригинальные инструкции" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Читаемая сводка C · one-check" @@ -7566,7 +7568,7 @@ msgstr "Читаемая сводка C · one-check" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7574,7 +7576,7 @@ msgstr "{ph0}01 · Начните с нуля.{ph1} {ph2} содержит те #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7586,7 +7588,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7598,7 +7600,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7612,7 +7614,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7622,7 +7624,7 @@ msgstr "" "{ph0}05 · Сравнить с сохраненным целевым значением.{ph1} Вызывающий абонент " "получает сумму в {ph2}. Несоответствие становится {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7632,12 +7634,12 @@ msgstr "" "устройства. C - это пояснительная записка с описательными названиями и " "сглаженным циклом из 36 ячеек." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Решите 26 уравнений" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7649,13 +7651,13 @@ msgstr "" "Перекрывающиеся выборки дают уравнения, которые может решить небольшой " "скрипт на Python." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Отрывок из Python · solver" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7669,19 +7671,19 @@ msgstr "" "используется {ph0} с буквами, цифрами, символами подчеркивания и фигурными " "скобками. Полная загрузка включает все 26 масок и целевых объектов." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Загрузите полный решатель" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Проверьте ответ с помощью оригинальной программы" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7694,47 +7696,47 @@ msgstr "" "{ph1} приводит к получению первой суммы 1440 вместо 1441, и программа " "отклоняет ее." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Ввод" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Наблюдаемый результат" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Код выхода" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Флаг решателя" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Один персонаж изменен" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Отобразить восстановленный флаг и захваченные выходные данные" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA · исходный программный результат" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Флаг копирования" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7744,12 +7746,12 @@ msgstr "" "организаторами метаданных задачи, который был проверен после решения " "двоичной задачи." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Идентификация источника, цели и детали анализа" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7760,7 +7762,7 @@ msgstr "" "использованием REA 4.1.0 и Ghidra 12.1.4 на Linux x64. Двоичный файл " "представляет собой урезанный x86-64 ELF, объемом 15 248 байт." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7783,7 +7785,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7794,12 +7796,12 @@ msgstr "" "{ph2}Метаданные и флаг конкурса{ph3} · {ph4}Примечания к доказательствам " "REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Попробуйте сами" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7809,13 +7811,13 @@ msgstr "" " выше инструкцией, чтобы провести расследование с помощью своего агента, или" " запустите прилагаемый сценарий." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Терминал · решить и запустить" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7827,7 +7829,7 @@ msgstr "" "Для решения требуется Python и {ph0}. Для запуска исходного исполняемого " "файла требуется Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Настройте REA с помощью вашего агента по кодированию" @@ -7848,28 +7850,28 @@ msgstr "" " DOWNDERCTF. Найдите функции проверки, извлеките маски и сравните " "восстановленный флаг с исходной программой." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Практический пример проверки флагов CTF" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Запрос на копирование примера CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" "Уравнение маски CTF; прокрутка по горизонтали на экранах меньшего размера" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7880,42 +7882,42 @@ msgstr "" "14. Только эта ячейка вносит свой вклад в сумму. Ее обязательный код - 55, " "что означает, что символ равен 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Выполните проверку CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Скопируйте сборку CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Копируемый чек CTF для чтения" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Скопируйте выдержку из CTF-решателя" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Копировать восстановленный флаг" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Копирование команд решателя CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -7924,25 +7926,25 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Тематическое исследование · DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, 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:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7952,14 +7954,14 @@ msgstr "" "выпущенной в 1996 году. REA помогает агенту проверять оригинал, по одной " "функции за раз." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows для i386 · с · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7971,14 +7973,14 @@ msgstr "" " вызывающие устройства и данные для чтения; проект реконструкции реализует и" " тестирует результат. {ph0}Открыть рисунок{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "В этом тематическом исследовании" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7986,7 +7988,7 @@ msgstr "{ph0}Проект{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7994,7 +7996,7 @@ msgstr "{ph0}Звуковая панорама{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -8002,23 +8004,23 @@ msgstr "{ph0}Проверка результата{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "поддерживаемые функции C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "сравнение с исходным кодом" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "функции с соответствующими скомпилированными байтами" @@ -8029,7 +8031,7 @@ msgstr "функции с соответствующими скомпилиро #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8039,12 +8041,12 @@ msgstr "" "Контрольная точка проекта: 7 октября 2026 года. {ph0}Журнал выполнения{ph1} " "работ · {ph2}Тестовый охват{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Проект до сих пор" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8059,12 +8061,12 @@ msgstr "" "которую можно играть, физикой мяча и весла, управлением усилениями и " "интеграцией Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Определение положения звука слева/справа при расчете" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8083,17 +8085,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Копировать" @@ -8104,7 +8106,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8114,18 +8116,18 @@ msgstr "" "{ph0}\"{ph1}{ph2}Используйте REA, чтобы узнать, как DX-Ball рассчитывает " "расположение стереозвука. Объясните расчет и покажите код.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 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 и " -"доказательства, лежащие в основе ответа." +"Пример запроса для вашего ИИ-помощника для программирования с доступным " +"локальным исполняемым файлом. В приведенном ниже исследовании показаны " +"запросы REA и доказательства, лежащие в основе ответа." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8140,7 +8142,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8154,12 +8156,12 @@ msgstr "" "с плавающей запятой. Это несоответствие дало агенту конкретную причину " "продолжить расследование." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Первое представление декомпилятора" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8169,18 +8171,18 @@ msgstr "" "инструкций можно увидеть входные данные и вычисления, которые используются " "для этого вызова." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Ответы на три вопроса с помощью REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Восстановите недостающие входные данные" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8191,14 +8193,14 @@ msgstr "" "вызывающими элементами. Здесь {ph0} предоставляет целочисленный ввод, " "отсутствующий в представлении декомпилятора." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Следуйте за вызывающим абонентом, чтобы понять вводимые данные" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8209,12 +8211,12 @@ msgstr "" "предыдущих инструкциях tile_x масштабируется {ph0}на 30; добавление 20 дает " "экранную координату кирпича, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Считайте значения, стоящие за адресами памяти" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8224,12 +8226,12 @@ msgstr "" "панорамирования. Теперь у агента есть значения, необходимые для выражения на" " языке Си." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "От выводов REA до C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8240,7 +8242,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8248,7 +8250,7 @@ msgstr "{ph0}Вход 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8256,7 +8258,7 @@ msgstr "{ph0}02{ph1} Умножить" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8264,7 +8266,7 @@ msgstr "{ph0}03{ph1} Вычесть" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8272,18 +8274,18 @@ msgstr "{ph0}Шкала 04{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Оригинальная выдержка из x86 ·" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Реконструированный C" @@ -8293,7 +8295,7 @@ msgstr "Реконструированный C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8313,7 +8315,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8330,7 +8332,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8348,7 +8350,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8365,7 +8367,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8378,7 +8380,7 @@ msgstr "" "преобразует результат в {ph4}; исходные сравнения с x86 проверяют " "возвращаемое значение." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8389,23 +8391,23 @@ msgstr "" "арифметике и возврату. В приведенный ниже полный список также включены " "промежуточные хранилища, настройка и очистка функций." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Полная сборка и подтверждающие доказательства" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "Результат REA · 0x406400–0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Что предоставляет вызывающий абонент" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8415,54 +8417,54 @@ msgstr "" "Функция brick-hit в {ph0} масштабирует свою координату плитки на 30, " "добавляет 20, а затем перемещает ее перед вызовом:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "То, что читают данные, устанавливает" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Адрес" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Ценность" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Используется для" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Первое умножение" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Вычитание" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} изначально" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Сохраненные весы для поддонов" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8478,7 +8480,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8488,12 +8490,12 @@ msgstr "" "{ph0}Поддерживаемый источник{ph1} · {ph2}Заметки о расследовании и ссылки на" " доказательства{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Проверка восстановленной функции" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8503,12 +8505,12 @@ msgstr "" "совпадают с исходными, а скомпилированные байты соответствуют исполняемому " "файлу." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3 205 случаев нарушения поведения" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8519,12 +8521,12 @@ msgstr "" " сохраненным значением C. Они охватывают все целочисленные позиции от 0 до " "640 в пяти масштабах панорамирования: 0, 0,5, 1, 20 и -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 совпадающих байта" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8536,7 +8538,7 @@ msgstr "" "применения рассмотренных изменений и проверки констант, на которые даны " "ссылки." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8551,18 +8553,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Продолжайте расследование" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8574,7 +8576,7 @@ msgstr "" "восстановите их состояние и зависимости, а затем сравните реализацию с " "исходной." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8584,7 +8586,7 @@ msgstr "" "инструкциям по настройке DX-Ball project и укажите соответствующую исходную " "цель. Затем запустите:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "При оформлении заказа DX-Ball" @@ -8593,7 +8595,7 @@ msgstr "При оформлении заказа DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8607,7 +8609,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8623,7 +8625,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8648,7 +8650,7 @@ msgstr "" "поддерживаемых тестов на C, исходных x86 и сопоставления скомпилированных " "байтов функций." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8656,7 +8658,7 @@ msgstr "" "DX-Ball sound-исследование панорамирования; горизонтальная прокрутка на " "экранах меньшего размера" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8672,70 +8674,70 @@ msgstr "" "от исходного x86 в 3205 случаях и с помощью компилятора VC4.0 " "воспроизводится на соответствие 63 байтам." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Тематическое исследование реконструкции DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Запрос на копирование примера" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Следите за расчетом положения звука слева/справа" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Скопируйте фрагмент оригинальной сборки" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Функция копирования звука-панорамирование" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Скопируйте полную сборку sound-pan" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Скопировать команду анализа DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Главная{ph1} страница / Витрины" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Тематические исследования REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8744,17 +8746,17 @@ msgstr "" "Android, игры, Electron и конкурс CTF с кодом, цифрами и проверенными " "результатами." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android · Анализ APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Как аутентификатор генерирует код входа в систему" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8765,22 +8767,22 @@ msgstr "" "Проследите за методами генерации с помощью REA, затем посмотрите на " "демонстрационные часы, чтобы понять, почему код меняется каждые 30 секунд." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Ознакомьтесь с тематическим исследованием Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF · Анализ программ с машинным кодом" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Решите проблему с проверкой флага CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8791,22 +8793,22 @@ msgstr "" "функции, преобразуйте маски и суммы в уравнения, затем проверьте флажок " "\"решено\" с помощью исходной программы." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Ознакомьтесь с тематическим исследованием CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Нативная · Реконструкция" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball рассчитывает положение звука слева/справа" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8818,22 +8820,22 @@ msgstr "" "приводят к созданию небольшой функции C, которая проверяется на соответствие" " исходному поведению и всем 63 скомпилированным байтам." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Ознакомьтесь с тематическим исследованием DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron · Отслеживание объектов" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Как Notion копирует текст и HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8845,22 +8847,22 @@ msgstr "" "посмотрите, как маленький HTML-маркер связывает данные расширенного блока с " "копией." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Ознакомьтесь с тематическим исследованием Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS · Реконструкция" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Как TH04 целится в кольцо из пуль" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8871,17 +8873,17 @@ msgstr "" " его операции умножения, деления и координации с понятным C++, а затем " "посмотрите, как они создают кольцо, направленное на игрока." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Ознакомьтесь с тематическим исследованием TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Пошаговые руководства" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8890,7 +8892,7 @@ msgstr "" "В руководствах описываются собственные вычисления, экспорт Electron и запрос" " к браузеру. Каждое из них начинается с запроса и конкретной цели." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Ознакомьтесь с руководствами" @@ -8910,12 +8912,12 @@ msgstr "" "Android authenticator, DX-Ball, Notion, TH04 и средства проверки флага " "DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -8924,25 +8926,25 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Тематическое исследование · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8951,12 +8953,12 @@ msgstr "" "Проследите вызов буфера обмена из API страницы Notion, через предварительную" " загрузку и основной процесс, в программу записи буфера обмена Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Мост внутри настольного пакета Notion" @@ -8968,7 +8970,7 @@ msgstr "Мост внутри настольного пакета Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8985,7 +8987,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9002,7 +9004,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9020,7 +9022,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9031,13 +9033,13 @@ msgstr "" "записывает предоставленный текст и HTML-код.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9047,14 +9049,14 @@ msgstr "" "загрузки и в основном процессе. При разрешении оболочек обнаруживаются " "вызовы Electron, стоящие за этими именами." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "В этом тематическом исследовании" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9062,7 +9064,7 @@ msgstr "{ph0}Следуйте по мосту из буфера обмена{ph1 #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9070,19 +9072,19 @@ msgstr "{ph0}Сохранение структуры блока{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Где выполняется операция копирования?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9102,17 +9104,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Копировать" @@ -9123,7 +9125,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9134,21 +9136,21 @@ msgstr "" "текст и HTML в системный буфер обмена. Показывайте код на каждом " "шаге.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " "coding agent." msgstr "" -"Пример запроса с локальным пакетом приложений Notion, доступным вашему " -"ИИ-помощнику для программирования." +"Пример запроса с локальным пакетом приложений Notion, доступным вашему ИИ-" +"помощнику для программирования." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA находит, с чего начать чтение" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9159,13 +9161,13 @@ msgstr "" "доступный для страницы, и вызов, который отправляет запрос IPC. Оба " "результата представлены с диапазонами исходных текстов в уменьшенном пакете:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA выводы → два места для открытия" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9180,7 +9182,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9194,12 +9196,12 @@ msgstr "" "точную информацию для поиска в основном пакете. В четырех приведенных ниже " "выдержках показан маршрут, по которому он подключается." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Четыре коротких фрагмента кода" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9208,13 +9210,13 @@ msgstr "" "Упрощенный по сравнению с пакетным JavaScript, с удобочитаемыми именами " "переменных. Несвязанные элементы опущены." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Начните с API, доступного для этой страницы" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9224,13 +9226,13 @@ msgstr "" "Этот участник предоставляет название канала. Реализация {ph0} сообщает нам, " "как запрос завершает обработку страницы." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Устраните оболочку предварительной загрузки" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9240,14 +9242,14 @@ msgstr "" "Возвращаемая функция перенаправляет аргументы через IPC запроса и ответа " "Electron. Теперь мы можем искать {ph0} на стороне основного процесса." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Проверьте, как зарегистрирован получатель" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9257,12 +9259,12 @@ msgstr "" "Основной процесс использует другую оболочку. Его метод {ph0} регистрирует " "{ph1} для этого канала." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Найдите запись и проверьте ее отправителя" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9273,13 +9275,13 @@ msgstr "" "данные в API буфера обмена Electron. Канал и две разрешенные оболочки " "подключают открытый метод к этому вызову." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Как скопированный блок сохраняет свою структуру?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9290,27 +9292,27 @@ msgstr "" "данные блока локально и вставляет идентификатор в скопированный HTML-код, " "чтобы связать их." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "HTML-ссылки на сохраненные данные блоков" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Прочитайте HTML-идентификатор" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Найдите тот же локальный идентификатор" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Восстановить данные блока Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9320,7 +9322,7 @@ msgstr "" "восстанавливает данные блока, если идентификаторы совпадают; устаревшая " "запись возвращает только текст и HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9329,24 +9331,24 @@ msgstr "" "При вставке Notion ищет HTML-идентификатор и сравнивает его с сохраненной " "копией. Совпадающие идентификаторы восстанавливают данные блока." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Дополнительные примеры и источники" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Другой пример: таблицы уценки" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9355,12 +9357,12 @@ msgstr "" "Notion преобразует Markdown в блочные данные. В этом примере показано, как " "таблица преобразуется в заголовок и строки данных." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Таблица с помощью анализатора уценки Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9369,13 +9371,13 @@ msgstr "" "Записанный вывод из извлеченного анализатора Markdown. Таблица преобразуется" " в строки и ячейки." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Другой путь: автономное подключение к SQLite" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9389,7 +9391,7 @@ msgstr "" "визуализации, а другой - служебному процессу SQLite. Последующие пакеты " "инструкций и результаты передаются через этот порт." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9399,7 +9401,7 @@ msgstr "" " данных и почему при отслеживании только первоначального IPC-запроса не " "учитывается последующий диалог." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Источники и как читать выдержки" @@ -9407,7 +9409,7 @@ msgstr "Источники и как читать выдержки" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9425,7 +9427,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9441,7 +9443,7 @@ msgstr "" "модули и небольшие модули управления; их выходные данные описывают эти " "тесты, а не захваченный сеанс пользовательского интерфейса рабочего стола." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9456,7 +9458,7 @@ msgstr "" "подключаются путем считывания их реализаций-оболочек в пакете." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9474,7 +9476,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9488,7 +9490,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9514,52 +9516,52 @@ msgstr "" "IPC-оболочку и основной процесс, с краткими выдержками кода и ознакомьтесь с" " его богатым форматом буфера обмена." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Тематическое исследование Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Скопировать запрос на анализ Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Скопировать фрагмент предварительной загрузки Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Скопировать фрагмент кода Notion для вызова оболочки" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Скопировать фрагмент оболочки обработчика Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Скопировать фрагмент приемника из буфера обмена Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Восстановление расширенных данных буфера обмена при вставке" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Наверх" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -9568,25 +9570,25 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Тематическое исследование · Тохоу 4: История земли лотосов" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9596,17 +9598,17 @@ msgstr "" "проверки исходной функции DOS, затем следуйте ее инструкциям на " "удобочитаемом C++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Посмотреть реконструкцию TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "От оригинальных инструкций к проверенному источнику" @@ -9617,7 +9619,7 @@ msgstr "От оригинальных инструкций к проверенн #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9634,7 +9636,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9652,7 +9654,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9668,7 +9670,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9680,7 +9682,7 @@ msgstr "" "записанных компилятором, проверки охватывают код генерации маркеров, " "содержащий этот вспомогательный элемент.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9689,14 +9691,14 @@ msgstr "" "REA возвращает исходный код и результаты его анализа. Проект TH04 " "предоставляет поддерживаемые проверки исходного кода и компилятора." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "В этом тематическом исследовании" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9704,7 +9706,7 @@ msgstr "{ph0}Кольцо с пулями{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9712,7 +9714,7 @@ msgstr "{ph0}Что возвращает REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9720,7 +9722,7 @@ msgstr "{ph0}Сборка на C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9728,18 +9730,18 @@ msgstr "{ph0}Проверка источника{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Полный проект{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Как кольцо нацеливается на игрока" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9759,16 +9761,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Копировать" @@ -9779,7 +9781,7 @@ msgstr "Копировать" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9790,7 +9792,7 @@ msgstr "" "пуль и направляет его на игрока. Объясните расчет и покажите " "код.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9800,7 +9802,7 @@ msgstr "" "локально." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9814,7 +9816,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9824,12 +9826,12 @@ msgstr "" "Иллюстрация восстановленного математического расчета угла для счета 16, " "направления игрока 40 и поворота шаблона 0. {ph0}Открыть рисунок{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Шаблон запуска в восстановленном источнике" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Нападение Элли на кольцо · отрывок из источника" @@ -9838,7 +9840,7 @@ msgstr "Нападение Элли на кольцо · отрывок из и #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9848,13 +9850,13 @@ msgstr "" "В этих строках выбирается шаблон перед настройкой сложности и " "производительности. {ph0}Прочитайте источник атаки{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Что возвращает REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9866,12 +9868,12 @@ msgstr "" " возвращает свои инструкции, псевдокод и ссылки. Три части этого результата " "объясняют закономерность." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Проверьте образ DOS, прежде чем читать его код" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9881,7 +9883,7 @@ msgstr "" "предоставленному исполняемому файлу. Путь, указанный выше, сокращен для " "отображения." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Прочитайте надпись на кольце \"умножай и дели\"" @@ -9889,7 +9891,7 @@ msgstr "Прочитайте надпись на кольце \"умножай #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9902,12 +9904,12 @@ msgstr "" "источников, которые указаны в поле {ph2}. Полная последовательность " "приведена ниже." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Найдите, где рисунок поворачивается в сторону игрока" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9920,12 +9922,12 @@ msgstr "" "кольцевому углу. Имена источников делают эти адреса удобочитаемыми; REA " "позволяет агенту проверять исходные операции, стоящие за ними." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "От ассемблера к удобочитаемому C++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9938,7 +9940,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9946,7 +9948,7 @@ msgstr "{ph0}Индекс 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9954,7 +9956,7 @@ msgstr "{ph0}02{ph1} Пространство" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9962,7 +9964,7 @@ msgstr "{ph0}03{ph1} Цель" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9970,18 +9972,18 @@ msgstr "{ph0}04{ph1} Вращать" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Магазин" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA · оригинальные 16-разрядные инструкции" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Читаемый C++ · краткое описание aimed-ring" @@ -9989,7 +9991,7 @@ msgstr "Читаемый C++ · краткое описание aimed-ring" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10004,7 +10006,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10020,7 +10022,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10035,7 +10037,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10050,7 +10052,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10064,7 +10066,7 @@ msgstr "" "же, как это происходит при преобразовании беззнаковых байт. Окружающий " "источник также преобразует этот угол и скорость в скорость вращения." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10076,7 +10078,7 @@ msgstr "" "Приведенные ниже проверки компилятора применяются к поддерживаемому " "исходному тексту в связанном проекте." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Ознакомьтесь с сохраняемым кольцом и прицелитесь в источник" @@ -10093,7 +10095,7 @@ msgstr "Ознакомьтесь с сохраняемым кольцом и п #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10103,12 +10105,12 @@ msgstr "" "{ph0}Кольцевой макрос{ph1} · {ph2}Цель и источник скорости{ph3} · " "{ph4}Представление угла{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Проверка поддерживаемого источника" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10118,12 +10120,12 @@ msgstr "" "маркеров, включая этот помощник, с помощью закрепленного набора инструментов" " Turbo C++ 4.0J." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 совпадающих байта" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10132,12 +10134,12 @@ msgstr "" "Скомпилированный код генерации маркеров соответствует 2139-байтовому разделу" " исходного исполняемого файла." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Две чистые сборки" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10150,7 +10152,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10158,59 +10160,59 @@ msgstr "" "Записано 3 октября 2026 года. {ph0}Ознакомьтесь с проверками " "компилятора{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Идентификация цели и объем анализа" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Первоначальная цель" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Вспомогательная запись" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} в загруженном изображении REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Смещение исходного файла" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, возвращаемый параметром {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Проверка записанного кода" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 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:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10221,7 +10223,7 @@ msgstr "" "отображение и перекрывающееся перемещение." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10236,7 +10238,7 @@ msgstr "" "приведенные выше, находятся в этих сообщенных диапазонах." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10253,7 +10255,7 @@ msgstr "" " в манифесте репозитория, при этом независимое происхождение нетронутого " "дампа все еще открыто." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10264,12 +10266,12 @@ msgstr "" "хронометраж и поведение аппаратного обеспечения PC-98 проверяются во время " "выполнения в проекте реконструкции отдельно." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Полная реконструкция TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10282,7 +10284,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10294,7 +10296,7 @@ msgstr "{ph0}Изучите репозиторий TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10310,7 +10312,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10326,7 +10328,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10352,22 +10354,22 @@ msgstr "" "за сборкой и восстановленным C++, чтобы увидеть, как расставлено кольцо пуль" " и как они нацелены на игрока." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Тематическое исследование по маркировке TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Скопировать запрос в качестве примера TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10375,7 +10377,7 @@ msgstr "" "TH04 фиксированные и нацеленные пулевые кольца; прокрутка по горизонтали на " "экранах меньшего размера" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10389,27 +10391,27 @@ msgstr "" "игрока. В обоих случаях расстояние между точками составляет 16 угловых " "единиц, или 22,5 градуса." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Скопировать шаблон запуска TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Следуйте расчету прицельного кольца TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Скопируйте фрагмент сборки TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Копировально-читаемый расчет прицельного кольца" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Наверх" @@ -10897,598 +10899,598 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Примеры" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Блог" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Начать" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Руководства" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Исходный код" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Лицензия MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Вступить в сообщество" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Подписаться в X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA · выбранный источник скрипта" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Исходный код" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Ожидаемый результат форматирования" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Инструкции" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Вызывающий абонент" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Константы" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Функция C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Кнопка" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API предварительной загрузки" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "МПК" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Файл CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Ваш щелчок" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Захваченный запрос" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Экспорт скрипта" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA результат · сводка.выдержка из ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA выдержка из инструкции · 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA запрос вызывающего абонента · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" "Результаты в байтах REA · интерпретируются как удвоения в порядке убывания" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Восстановленный отрывок из C ·" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Витрины →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Выбранные настройки из проверенного скрипта" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Читаемая сводка об обработчике %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA · выбранные оригинальные инструкции" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Идентификаторы операторов · Исходный код Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → агент · выбранные результаты" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → агент · методы и вызывающие абоненты" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA · выбранный декомпилированный Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Читаемое резюме · интерпретация агента" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA · generateOTP, полный корпус" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Скачать Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Скачать Android analysis provider" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → агент · выбранные результаты" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → агент · выбранные инструкции" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Агент → REA · прочитано_байт" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → агент · седьмые записи" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Оригинальный исполняемый файл · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Скачайте оригинальную игру challenge" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Скачать решатель" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Результат REA · фрагмент псевдокода" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Агент → REA · функция {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → агент · отрывок из инструкции" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → агент · отрывок из сообщения о звонящем" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Результаты в байтах REA · декодируются как двойные" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Начните со своей собственной цели" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Генерация кода" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Восстановленное правило" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Регулируемые часы" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Двоичный" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Проверяющий код" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Уравнения" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Правильно!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Выполнимый" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Выводы REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Восстановленный C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Утверждение" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Упакованное приложение" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Открытый API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Оболочки IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Буфер обмена" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Исходный код DOS" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Инструкции по REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Расчет угла наклона" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Пулевое кольцо" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Открытый API страницы" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Вызов IPC средства визуализации" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Отправлено в системный буфер обмена" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Сохранено локально с помощью Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Ввод данных для уценки" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Вывод структурированного синтаксического анализатора · выдержка" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Проанализируйте свое собственное приложение" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → агент · выбранные поля" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Агент → REA · функция {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → агент · отрывок из инструкции" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Результат той же функции · выдержка из aim" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Соответствующий поддерживаемый C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Кольцевой макрос · Ветвь TH04, фрагмент" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Угол и скорость · выдержка из источника" @@ -11520,7 +11522,7 @@ msgstr "Перевод обновляется. Пока прочтите эту #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11538,7 +11540,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11559,7 +11561,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11580,7 +11582,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11599,7 +11601,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11612,14 +11614,14 @@ msgstr "" "проверь установку.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Реконструкция · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11630,7 +11632,7 @@ msgstr "" "кодирующий агент и ознакомьтесь с предлагаемыми изменениями." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11639,7 +11641,7 @@ msgstr "Приведенный пример · {ph0} и npm · Ваш кодир #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11658,7 +11660,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11674,7 +11676,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11693,7 +11695,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11704,7 +11706,7 @@ msgstr "" "форматирования в {ph7} и записывает файл.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11719,7 +11721,7 @@ msgstr "{ph0} · строки 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11733,7 +11735,7 @@ msgstr "" "результат.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11746,17 +11748,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Вам понадобится {ph0}22 (22.23.4+), 24 (24.22.1+) или 26+ (>=26.12.1). В комплект поставки " -"входит {ph1}npm ." +"Вам понадобится {ph0}22 (22.23.4+), 24 (24.22.1+) или 26+ (>=26.12.1). В " +"комплект поставки входит {ph1}npm ." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11764,20 +11767,20 @@ msgstr "У вас нет {ph0} или вы не уверены?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Если {ph0} печатает версии v22.23.4+, v24.22.1+ или v26.12.1+, все готово. Если он " -"выводит более старую версию или \"не распознается\" / \"команда не " +"Если {ph0} печатает версии v22.23.4+, v24.22.1+ или v26.12.1+, все готово. " +"Если он выводит более старую версию или \"не распознается\" / \"команда не " "найдена\", установите {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11791,7 +11794,7 @@ msgstr "{ph0} · пример выдержки из источника" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11802,9 +11805,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11812,7 +11815,7 @@ msgstr "{ph0} · пример источника" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11827,7 +11830,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11844,7 +11847,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11855,7 +11858,7 @@ msgstr "" "{ph3} дают 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11869,7 +11872,7 @@ msgstr "REA · загружено {ph0} · выбранные строки" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11888,7 +11891,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11901,28 +11904,28 @@ msgstr "" "небольшую демонстрацию, в которой можно менять время.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} · Член API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} · Помощник IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "main/{ph0} · помощник обработчика" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11941,7 +11944,7 @@ msgstr "Переключить на тёмную тему" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11957,18 +11960,18 @@ msgstr "" " с агентом." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Специализация моделей{ph0}Эссе" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Нужна ли для обратной разработки более крупная модель?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11977,12 +11980,12 @@ msgstr "" "Что реконструкция Touhou помогает понять об универсальных и " "специализированных моделях и обучении на обратной связи от компилятора." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Автор N0zoM1z0 · 13 октября 2026 г." -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" @@ -11991,38 +11994,38 @@ msgstr "Перейти к содержанию" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}Главная страница{ph1} / {ph2}Блог{ph3} / Модели и реверс-инжиниринг" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Эссе" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Нужна ли реверс-инжинирингу модель большего размера?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Автор N0zoM1z0 · 13 октября 2026 г." -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Главное" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12035,7 +12038,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12048,7 +12051,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12061,7 +12064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12074,7 +12077,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12085,14 +12088,14 @@ msgstr "" "стоимость.{ph1} Это то, что я хочу измерить для всего рабочего процесса ИИ-" "агента." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "В этой статье" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12100,7 +12103,7 @@ msgstr "{ph0}Что изменили более сильные модели{ph1} #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12108,7 +12111,7 @@ msgstr "{ph0}Зачем специализироваться?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12116,7 +12119,7 @@ msgstr "{ph0}Где следует хранить этот опыт?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12124,7 +12127,7 @@ msgstr "{ph0}Изучаем следующий полезный эксперим #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12132,7 +12135,7 @@ msgstr "{ph0}Обратное проектирование и обучение #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12140,7 +12143,7 @@ msgstr "{ph0}Когда программа проверки ошибается{p #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12148,18 +12151,18 @@ msgstr "{ph0}Сравнение, которое стоит провести{ph1} #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}О каком ИИ-агенте идет речь?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Что изменили более сильные модели" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12174,7 +12177,7 @@ msgstr "" " модели, в репозиториях фиксировалось, что удалось восстановить в каждом " "сеансе." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12189,12 +12192,12 @@ msgstr "" "застопорились, изменения в исходном коде показывают, что сделало этот " "прогресс возможным." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Временным переменным требовалось перекрывающееся время жизни." -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12215,7 +12218,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12229,7 +12232,7 @@ msgstr "" "снова изучил проблему{ph3}, он предложил полезную гипотезу о времени жизни " "этих временных переменных." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12246,7 +12249,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12261,7 +12264,7 @@ msgstr "" "целевых экспериментов {ph0}чистая перекомпиляция из исходного кода " "подтвердила, что полная функция соответствует{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12273,7 +12276,7 @@ msgstr "" "компилятора помогли усовершенствовать эту гипотезу и привести ее в " "соответствие с исходным кодом." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Другой граф потока управления" @@ -12282,7 +12285,7 @@ msgstr "Другой граф потока управления" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12304,7 +12307,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12321,7 +12324,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12335,7 +12338,7 @@ msgstr "" "возможностям модели: агент может долго пробовать локальные варианты, прежде " "чем найти лучший способ выразить окружающую работу." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12349,7 +12352,7 @@ msgstr "" "позволяет нам проверять открытия и их проверки; контролируемое сравнение " "поможет отделить эффект модели от унаследованного ею опыта." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12365,12 +12368,12 @@ msgstr "" "способностей? Насколько многому может научиться модель, неоднократно работая" " с этим компилятором и кодом?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Почему специализированная модель ИИ может преуспеть?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12385,7 +12388,7 @@ msgstr "" "подтверждают это полезными примерами: связанные циклы и вспомогательные " "механизмы служат источником гипотез для разных игр." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12405,7 +12408,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12421,7 +12424,7 @@ msgstr "" "именования, который повлиял на выбор компилятора. Это предложило более " "многообещающую гипотезу для {ph2}реконструкции {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12431,7 +12434,7 @@ msgstr "" " получить требуемый макет без увеличения объема памяти. Затем полная функция" " совпала." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12444,7 +12447,7 @@ msgstr "" "определить, какие варианты исходного кода стоит протестировать в первую " "очередь." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12463,7 +12466,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12483,14 +12486,14 @@ msgstr "" "нам первоначальное ожидание, но каждая цель говорит нам, применимо ли оно. " "Специализированная модель должна будет различать эти контексты." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Где следует хранить этот опыт?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12506,7 +12509,7 @@ msgstr "" "проекта. Эта память включает в себя уроки компилятора, а также исходники и " "неудачные эксперименты, которые сделали их полезными." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12523,7 +12526,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12542,7 +12545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12559,7 +12562,7 @@ msgstr "" "что означает результат для ее следующей попытки. Знание соответствующей " "закономерности — это только начало этого процесса." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12573,12 +12576,12 @@ msgstr "" "генерирование кандидатов, лучшие решения после обратной связи или и то, и " "другое." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Изучаем следующий полезный эксперимент" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12592,7 +12595,7 @@ msgstr "" "дает сбой, результат может сузить оставшиеся возможности и предложить более " "полезный следующий эксперимент." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12605,32 +12608,32 @@ msgstr "" "информации. Каждый из следующих экспериментов помог определить, что еще " "необходимо изменить." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Эксперимент" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Чему нас научил его результат" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Попробуйте другой способ скопировать результаты" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Код копирования меняется, но функция по-прежнему отличается." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Используйте возвращаемые значения напрямую" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12638,12 +12641,12 @@ msgstr "" "Копирование следует исходному шаблону, но временное хранилище все равно " "отличается." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Сохраняйте все временные переменные действительными одновременно" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12652,18 +12655,18 @@ msgstr "" "Они получают отдельное хранилище, но одно из них по-прежнему перекрывает " "значение, используемое позже для проверок коллизий." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Держите значение проверки столкновений отдельно" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Чистая перекомпиляция из исходного кода подтверждает полное совпадение." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12672,7 +12675,7 @@ msgstr "" "Избранные эксперименты из приведенной выше реконструкции атакующей функции, " "сгруппированные по тому, чему они нас научили." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12688,7 +12691,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12703,7 +12706,7 @@ msgstr "" "перестают быть информативными, агент должен иметь возможность вернуться к " "исходному представлению или снова проверить доказательства." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12717,12 +12720,12 @@ msgstr "" " переписываний устранит этот выбор вместе с частью поведения, которому мы " "хотим, чтобы модель научилась." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Чем реверс-инжиниринг интересен для обучения с подкреплением" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12736,7 +12739,7 @@ msgstr "" "Агент может скомпилировать кандидат, изучить различия и выбрать следующий " "шаг." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12754,7 +12757,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12777,7 +12780,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12794,7 +12797,7 @@ msgstr "" "обрабатывала вычисления с плавающей запятой{ph1}. Прежде чем агент смог " "протестировать полезную поправку, он должен был решить, что именно измерять." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12806,12 +12809,12 @@ msgstr "" "появится, мы сможем выяснить, насколько далеко может зайти изученная " "политика поиска." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Когда программа проверки ошибается" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12823,7 +12826,7 @@ msgstr "" "воспроизводимый ответ нужно понимать в пределах того, что он действительно " "проверяет." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12846,7 +12849,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12861,7 +12864,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12878,7 +12881,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12896,7 +12899,7 @@ msgstr "" "инструкций следует понимать с точки зрения байтов и данных, которые оно " "проверяет." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12915,7 +12918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12927,12 +12930,12 @@ msgstr "" "исследовательской задачи.{ph1} Чем лучше модель оптимизирует получаемую " "обратную связь, тем важнее понимать саму эту связь." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Сравнение, которое стоит провести" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12948,7 +12951,7 @@ msgstr "" "контролируемая специализация и версия, обученная RL, позволят нам изучить, " "что добавляет обучение." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12962,7 +12965,7 @@ msgstr "" "доступные знания. Повторные испытания помогут отличить надежную стратегию " "поиска от возможного решения, которое окажется успешным случайно." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12978,7 +12981,7 @@ msgstr "" " часть работы, необходимой для ее достижения. Измерение их по отдельности " "выявило бы такое разделение работы." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12993,7 +12996,7 @@ msgstr "" "исходного кода и исключил бы их проверенные ответы как из обучающих данных, " "так и из библиотеки поиска." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -13008,7 +13011,7 @@ msgstr "" "компиляцию, покажет, обеспечивает ли это качество эффективный рабочий " "процесс. Затраты на обучение следует оценивать отдельно." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -13026,7 +13029,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13048,7 +13051,7 @@ msgstr "" " Такая диагностика может помочь в следующем эксперименте, но я бы сопоставил" " любую награду за «приближение» с полной приемочной проверкой." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13064,12 +13067,12 @@ msgstr "" "еще добавится обучение? Ответы помогут нам решить, где тот или иной тип " "модели наиболее полезен." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "О каком ИИ-агенте идет речь?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13085,7 +13088,7 @@ msgstr "" "смысл, более широкий агент может вернуться к целевым данным или исследовать " "само измерение." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13096,7 +13099,7 @@ msgstr "" "выбирать по мере развития расследования. Агент сохраняет свободу менять " "направление, которое сделало возможными предыдущие прорывы." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13110,7 +13113,7 @@ msgstr "" "решения требуют широкого суждения, а какие улучшаются за счет повторного " "опыта работы с конкретным ремеслом." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13127,7 +13130,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13137,12 +13140,12 @@ msgstr "" "{ph0}Репозитории дают нам возможность проверить вопрос.{ph1} Я хотел бы " "использовать эту запись для сравнения и посмотреть, что мы узнаем." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Доказательства и атрибуция моделей" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13156,7 +13159,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13183,7 +13186,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13208,7 +13211,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13233,7 +13236,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13260,7 +13263,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13272,7 +13275,7 @@ msgstr "" "запятой{ph3}, {ph4}TH08 численное исследование{ph5} и {ph6}TH09 " "реконструкция с сохранением повторов{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13297,22 +13300,22 @@ msgstr "" "Чему реконструкция Touhou научила меня об общих моделях, специализированных " "моделях и умении предлагать лучшие гипотезы на основе отзывов компилятора." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "На этой странице" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Эссе «Модели и реверс-инжиниринг»" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Избранные эксперименты по реконструкции" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Наверх" @@ -13321,7 +13324,7 @@ msgstr "Наверх" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13333,68 +13336,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Примеры{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Тематические исследования REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android · Анализ APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Как аутентификатор генерирует код входа в систему" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Ознакомьтесь с тематическим исследованием Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron · Отслеживание объектов" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Как Notion копирует текст и HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Ознакомьтесь с тематическим исследованием Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Нативная · Реконструкция" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball рассчитывает положение звука слева/справа" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Ознакомьтесь с тематическим исследованием DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Параметры настройки" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13405,7 +13408,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13417,7 +13420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13425,7 +13428,7 @@ msgstr "{ph0}1. Подготовьте компьютер{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13433,7 +13436,7 @@ msgstr "{ph0}2. Выберите агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13441,7 +13444,7 @@ msgstr "{ph0}3. Подключите REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13449,18 +13452,18 @@ msgstr "{ph0}4. Попробуйте исследование{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Другие цели и инструменты анализа{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Подготовьте компьютер" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13470,7 +13473,7 @@ msgstr "" "помощник для программирования может читать их и запускать инструменты за " "вас." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13481,7 +13484,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13492,7 +13495,7 @@ msgstr "Если winget недоступен, {ph0}скачайте устано #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13503,17 +13506,17 @@ msgstr "" "disabled on this system\"{ph1}, используйте вместо него {ph3}. Для npm " "используйте {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Создайте рабочую папку для агента" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "В терминале создайте папку для упражнения и перейдите в неё:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13522,12 +13525,12 @@ msgstr "" "Оставьте этот терминал открытым для следующего шага. Если у вас уже есть " "рабочая папка, откройте её вместо новой." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Выберите ИИ-помощника для программирования" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13537,12 +13540,12 @@ msgstr "" "для исследования программ. Выберите одно приложение-клиент ниже; если раньше" " им не пользовались, откройте инструкции." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · используйте свой аккаунт ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13553,40 +13556,40 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Установка Codex и вход в аккаунт{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf или VS Code · используйте редактор" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" "Установите редактор для своей операционной системы и войдите в аккаунт." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Откройте папку rea-work, созданную на шаге 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · используйте свой аккаунт Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Установите с помощью команды для своей операционной системы:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13600,13 +13603,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Установка Claude Code и варианты аккаунтов{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · используйте настольный чат" @@ -13616,7 +13619,7 @@ msgstr "Claude Desktop · используйте настольный чат" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13628,7 +13631,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13640,19 +13643,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Установка OpenCode и настройка модели{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Все поддерживаемые клиенты и их идентификаторы для настройки" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13662,12 +13665,12 @@ msgstr "" "Выпуск 6.4.0 в npm поддерживает перечисленные ниже клиенты. Чтобы явно " "выбрать клиент, укажите его идентификатор с {ph0}." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Клиент" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Идентификатор для настройки" @@ -13677,7 +13680,7 @@ msgstr "Идентификатор для настройки" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13696,7 +13699,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13706,13 +13709,13 @@ msgstr "" "{ph0}Настройка клиентов и устранение неполадок{ph1} · {ph2}Доступность в " "выпусках{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · подключите на компьютере, где он работает" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13725,29 +13728,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Инструкции по подключению Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Подключите REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Вставьте этот запрос в своего ИИ-помощника для программирования:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Для конкретного клиента добавьте его идентификатор для настройки:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13759,7 +13762,7 @@ msgstr "" "Enter. В списке клиентов REA перемещайтесь стрелками, выберите клиент " "клавишей Space и нажмите Enter для продолжения." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13768,7 +13771,7 @@ msgstr "" "MCP — это соединение, через которое агент вызывает REA. Навык задаёт порядок" " действий для исследования программ." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13779,7 +13782,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13789,21 +13792,21 @@ msgstr "" "Замените {ph0} идентификатором своего клиента для настройки. При успешной " "проверке выводится {ph1}. Затем попросите агента:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Проверь, что REA подключён, и покажи, какие инструменты REA ты можешь " "использовать." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Попробуйте первое исследование" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13815,7 +13818,7 @@ msgstr "" "кнопкой {ph0}экспорта заметок{ph1}. Ваш агент может проверить его код, не " "устанавливая и не запуская Electron." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Ваш ИИ-помощник для программирования" @@ -13829,7 +13832,7 @@ msgstr "Ваш ИИ-помощник для программирования" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13843,7 +13846,7 @@ msgstr "" "записывается {ph4}, какие поля он содержит, а также соответствующие файлы и " "строки.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Ищите краткое объяснение со ссылками на файлы и строки:" @@ -13852,7 +13855,7 @@ msgstr "Ищите краткое объяснение со ссылками н #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13866,13 +13869,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Проверьте предсказание в пошаговом упражнении →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Скачайте пример сами или используйте своё приложение" @@ -13880,14 +13883,14 @@ msgstr "Скачайте пример сами или используйте с #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Пример загрузки ZIP-файла{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13899,7 +13902,7 @@ msgstr "" "экспорте." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13909,12 +13912,12 @@ msgstr "" "Исследуй приложение по пути {ph0} с помощью REA. Найди, как оно экспортирует" " данные, и покажи соответствующие файлы и строки." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Исследуйте другой вид программ" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13923,13 +13926,13 @@ msgstr "" "Выберите раздел для своей цели. Провайдер анализа — это локальный " "инструмент, который REA использует для этого вида программ." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" "Исполняемые файлы и библиотеки машинного кода · Hopper, Ghidra или IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13939,47 +13942,47 @@ msgstr "" "это ваша операционная система, а цель — программа, которую вы хотите " "исследовать." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Провайдер анализа" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Недоступно" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Поддерживаемые дистрибутивы" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · экспериментально" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Проверенные профили" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Проверенный профиль без графического интерфейса" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "См. руководство провайдера" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · разрешите установщику установить или подключить его" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13991,7 +13994,7 @@ msgstr "" "лицензию. В Linux установщик подготавливает поддерживаемую демоверсию и " "отдельный дисплей для неё." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -14001,7 +14004,7 @@ msgstr "" "Omarchy. Hopper — коммерческая программа; ограничения демоверсии определяет " "разработчик." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -14015,18 +14018,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Настройка Hopper и устранение неполадок{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · установите бесплатный инструмент анализа и Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -14036,7 +14039,7 @@ msgstr "" "пакет для архитектуры своего компьютера." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14049,7 +14052,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14065,7 +14068,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14073,7 +14076,7 @@ msgstr "{ph0}Скачать JDK{ph1} · {ph2}Скачать Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14083,7 +14086,7 @@ msgstr "" "Проверьте Java. Первая команда выводит {ph0}; используйте эту папку для " "{ph1}. Вторая подтверждает, что компилятор установлен:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14101,7 +14104,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14111,12 +14114,12 @@ msgstr "" "{ph0}Настройка Ghidra и требования к архитектуре{ph1} · {ph2}Руководство по " "Ghidra в Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · подключите существующую установку" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14128,7 +14131,7 @@ msgstr "" "бинарным файлом или к супервизору без графического интерфейса, который " "открывает отдельную базу данных." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14140,7 +14143,7 @@ msgstr "" "интерфейса в macOS arm64 с IDA Professional 9.1. У необязательного нативного" " моста к GUI свои требования к версиям и платформам." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14152,13 +14155,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}Профили IDA, примеры регистрации и проверенные платформы{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14169,18 +14172,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Пройдите пример анализа машинного кода{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Сайты, Android, .NET, прошивки и другие цели" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14189,110 +14192,110 @@ msgstr "" "Откройте руководство для своей цели. В каждом указаны дополнительные " "инструменты, поддерживаемые хосты и первая команда." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Цель" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Необходимые инструменты" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Руководство" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Открыть руководство{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Сайт" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / пакеты" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Устройство Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Ресурсы Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Проект JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Прошивка" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / сбой Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Логические сигналы" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Поведение процесса" @@ -14308,7 +14311,7 @@ msgstr "Поведение процесса" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14318,18 +14321,18 @@ msgstr "" "{ph0}Руководство по Flutter{ph1} · {ph2}Пакеты и ресурсы{ph3} · {ph4}Байткод" " EVM{ph5} · {ph6}Все руководства по исследованию{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Используйте REA из терминала" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Команды CLI, глобальная установка и curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14339,7 +14342,7 @@ msgstr "" "Замените {ph0} именем или адресом функции из списка функций цели. Сначала " "нужно настроить Ghidra." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14348,7 +14351,7 @@ msgstr "" "В macOS или Linux после подготовки Node.js можно также воспользоваться " "установщиком через curl:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14358,12 +14361,12 @@ msgstr "" " В редакторах включите REA в настройках MCP и разрешите его инструменты в " "чате агента." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL и пути с пробелами" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14375,17 +14378,17 @@ msgstr "" " используйте там пути Linux. Провайдеры без графического интерфейса работают" " на том же хосте, что и REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Команда настройки для Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Обновите или удалите REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14396,7 +14399,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14410,52 +14413,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Подробнее об обновлении и удалении{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Копировать команду настройки REA для Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Копировать команду" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Запрос на копирование заметок для расследования" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14465,12 +14468,12 @@ msgstr "" "Если curl и unzip отсутствуют, сначала установите их. В Debian или Ubuntu " "выполните {ph0}; в других дистрибутивах используйте свой пакетный менеджер." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Закройте терминал, откройте его снова, затем выполните:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14485,7 +14488,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14495,19 +14498,19 @@ msgstr "" "{ph0}Настройка Cursor{ph1} · {ph2}Настройка Windsurf / Devin Desktop{ph3} · " "{ph4}Настройка VS Code и Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · выберите модель ИИ" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Подготовьте файл регистрации IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14522,7 +14525,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14535,7 +14538,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14548,22 +14551,22 @@ msgstr "" "бинарный файл в IDA и запустите плагин на стороне IDA, прежде чем просить " "REA его исследовать." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "База данных SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Байткод EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Установите Codex с помощью команды для своей операционной системы:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14574,7 +14577,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14585,12 +14588,12 @@ msgstr "" "(.pkg){ph1}, откройте его и следуйте инструкциям. Затем снова откройте " "Терминал." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Уже пользуетесь Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14602,7 +14605,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14612,7 +14615,7 @@ msgstr "" "Просмотрите и одобрите план, снова откройте Claude, затем {ph0}проверьте " "подключение по шагу 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14623,12 +14626,12 @@ msgstr "" "macOS или Linux arm64 перед продолжением соберите нативный декомпилятор для " "своего компьютера." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Соберите нативный декомпилятор Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14641,7 +14644,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14651,7 +14654,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14661,19 +14664,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · инструкции по нативной сборке{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Затем проверьте Ghidra и сохраните пути к нему для своего клиента:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14681,13 +14684,13 @@ msgstr "Почему {ph0} даёт 220 в Калькуляторе?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Как это работает{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14696,22 +14699,22 @@ msgstr "" "Спросите своего агента-программиста о приложении, игре или сайте. REA даёт " "ему инструменты, чтобы исследовать код, на котором основан ответ." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Начать" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Посмотреть пример ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Как это работает" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14722,49 +14725,49 @@ msgstr "" " самой программы. С REA ваш агент может проследить код, объяснить функцию и " "помочь воссоздать её." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Спросите об одной функции" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Дайте агенту программу или страницу и задайте вопрос." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Исследуйте программу" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA возвращает код, ссылки и наблюдения во время выполнения." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Разберитесь и попробуйте изменить" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Агент использует результаты исследования, чтобы объяснить или воссоздать " "функцию." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Проследить инструкции шаг за шагом" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Задать агенту тот же вопрос" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14773,7 +14776,7 @@ msgstr "" "Начните с 6. Добавляйте 0,001 при каждом обновлении без сбоев, пока скорость" " ниже 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14781,7 +14784,7 @@ msgstr "" "Изучите функцию выпущенного приложения или игры вместе с кодом и " "проверенными результатами." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14791,7 +14794,7 @@ msgstr "" " передвиньте демонстрационные часы и узнайте, почему код меняется каждые 30 " "секунд." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14800,7 +14803,7 @@ msgstr "" "Проследите JavaScript из пакета Notion до системного буфера обмена и " "узнайте, как копирование сохраняет расширенные данные блоков." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14809,12 +14812,12 @@ msgstr "" "Восстановите, как положение мяча превращается в звук слева или справа в игре" " для Windows 1996 года." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Выберите цель." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14825,7 +14828,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14844,13 +14847,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Пример запроса · Веб-сайт" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Да, вот этот." @@ -14863,7 +14866,7 @@ msgstr "Да, вот этот." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14878,7 +14881,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14892,18 +14895,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Запрос на копирование проекта веб-сайта" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Запрос на копирование реконструкции игры" @@ -14915,7 +14918,7 @@ msgstr "Запрос на копирование реконструкции иг #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14927,7 +14930,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14935,23 +14938,23 @@ msgstr "{ph0}Примеры →{ph1} — исследования и интер #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Блог →{ph1} — методы и заметки о воссоздании ПО." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Посмотреть полное исследование Калькулятора" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Попробовать более крупный проект" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14960,7 +14963,7 @@ msgstr "" "Попробуем два примера: изменим скорость игры, затем воссоздадим кнопку % " "Калькулятора." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14969,7 +14972,7 @@ msgstr "" "Игра ускоряется по мере бега. Чтобы воссоздать её с регулировкой скорости, " "сначала нужно понять, как скорость меняется." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Спросите о скорости" @@ -14982,7 +14985,7 @@ msgstr "1. Спросите о скорости" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14990,12 +14993,12 @@ msgid "" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Пример вопроса · Игра с динозавром" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Найдите правило изменения скорости" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -15004,12 +15007,12 @@ msgstr "" "REA позволяет агенту читать код запущенной игры. Скорость начинается с 6 и " "немного растёт при каждом обновлении, пока она меньше 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Поиграйте в результат" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -15018,7 +15021,7 @@ msgstr "" "Мы воспроизвели это правило в мини-игре ниже и добавили ползунок скорости. " "Запустите игру и выберите свою скорость." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -15027,7 +15030,7 @@ msgstr "" "Включите JavaScript, чтобы играть. Правило и исходный код ниже можно читать " "и без него." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -15036,7 +15039,7 @@ msgstr "" "Кнопка % работает по-разному после + и ×. Найдём оба правила и проверим их в" " небольшом калькуляторе." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Спросите о кнопке %" @@ -15049,18 +15052,18 @@ msgstr "1. Спросите о кнопке %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Пример вопроса · Калькулятор" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Найдите оба правила" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15069,12 +15072,12 @@ msgstr "" "REA помогает агенту читать код кнопки %. В нём используются два разных " "правила:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Попробуйте кнопку %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15082,7 +15085,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15090,7 +15093,7 @@ msgstr "{ph0}Прочитайте FAQ{ph1} — настройка и часты #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15100,13 +15103,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — сообщите об ошибке или предложите функцию." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Настройка для вашей платформы:" @@ -15114,14 +15117,14 @@ msgstr "Настройка для вашей платформы:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Другие способы установки: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15136,7 +15139,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15150,7 +15153,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15162,7 +15165,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15173,7 +15176,7 @@ msgstr "" "который вывел установщик. В Linux команда настройки по умолчанию — {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15185,67 +15188,67 @@ msgstr "" "Перечисли функции и строки, затем объясни часть, обрабатывающую " "пользовательский ввод, со ссылками на код." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Участники" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Перейти к содержанию" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Главная{ph1} / Участники" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Создаём вместе." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Спасибо всем, кто помогает делать REA лучше." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15253,22 +15256,22 @@ msgid "" msgstr "" "Код, документация, тесты, переводы и идеи — участвовать можно по-разному." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Как внести вклад" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Присоединиться к обсуждению →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Участники" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Найти участника" @@ -15276,13 +15279,13 @@ msgstr "Найти участника" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "По {ph0}списку участников на GitHub{ph1} · Обновлено: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Участники не найдены. Попробуйте другое имя пользователя." @@ -15300,12 +15303,12 @@ msgstr "" "Познакомьтесь с теми, кто вносит вклад в код, документацию, тесты и идеи " "REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Имя пользователя на GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Наверх" diff --git a/website/locales/th/messages.po b/website/locales/th/messages.po index 2aebe3977f2..14b5f98de0b 100644 --- a/website/locales/th/messages.po +++ b/website/locales/th/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}บ้าน{ph1} /บล็อก" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "บล็อก" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "ความคิดเกี่ยวกับวิศวกรรมย้อนกลับ" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "ฟื้นฟูเกม{ph0}เรียงความ" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "การปฏิวัติอุตสาหกรรมในวิศวกรรมย้อนกลับ" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "สิ่งที่คู่มือใหม่และ " "reconstructingTH08,TH095และTH04สอนฉันเกี่ยวกับเจ้าหน้าที่ปลายทางและความรู้นั่นรประกอบที่อีกฝั่งยิ่งสนง.โครงการ." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "อ่านบทความ" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "โดย N0zoM1z0 ·10 ตุลาคม 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "ความคิดเกี่ยวกับวิศวกรรมย้อนกลับ,การวาดภาพบนประสบการณ์ในทางปฏิบัติกับ REA " "และเจ้าหน้าที่ปัญญาประดิษฐ์" -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -140,122 +140,122 @@ msgid "" msgstr "" "REA-หาวิธีการทำงานของซอฟต์แวร์ วิศวกรรมย้อนกลับกับตัวแทนการเขียนโค้ดของคุณ" -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "หน้าแรก REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "เมนูหลัก" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA บน GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "เข้าร่วม REA บน Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "ติดตาม REA บน X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -264,35 +264,35 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "เรียงความ" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "การปฏิวัติอุตสาหกรรมในวิศวกรรมย้อนกลับ" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "โดย N0zoM1z0 ·10 ตุลาคม 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "ประเด็นสำคัญ" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -304,7 +304,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -317,7 +317,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -330,7 +330,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -342,7 +342,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -352,65 +352,65 @@ msgstr "" "{ph0}เราอยู่ในยุคแรกของการปฏิวัติอุตสาหกรรมของรี{ph1} " "วิธีการยังคงเป็นรูปเป็นร่าง มีเหลืออีกมากมายให้สำรวจ" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "วิธีสารประกอบประสบการณ์" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "อิสระในการทำงาน" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "ผู้ช่วย AI" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "การตรวจสอบ" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "เกณฑ์อ้างอิงสำหรับตรวจสอบ" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "คลังโค้ด" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "หน่วยความจำของงาน" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -419,7 +419,7 @@ msgstr "รหัส,หลักฐาน,{ph0}ตรวจสอบและ #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -428,26 +428,26 @@ msgstr "ไม่ตรงกัน{ph0}{ph1}แก้ไขสมมติฐ #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "นำกลับมาใช้" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -456,14 +456,14 @@ msgstr "" "แต่ละโครงการออกต่อไปด้วยจุดเริ่มต้นที่ดีขึ้น " "ซึ่งรวมถึงการแก้ไขเช็คเมื่อเราค้นพบช่องว่าง" -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "ในบทความนี้" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -471,7 +471,7 @@ msgstr "{ph0}สิงหาคม 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -479,7 +479,7 @@ msgstr "{ph0}TH08:ความต่อเนื่อง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -487,7 +487,7 @@ msgstr "{ph0}สองวิธี{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -495,7 +495,7 @@ msgstr "{ph0}TH095:การทบต้น{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -503,7 +503,7 @@ msgstr "{ph0}TH04:สถาปัตยกรรม{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -511,7 +511,7 @@ msgstr "{ph0}จากที่แน่นอนที่จะอ่านไ #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -519,18 +519,18 @@ msgstr "{ph0}การเปลี่ยนแปลงอุตสาหกร #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "สิ่งที่เปลี่ยนแปลงในเดือนสิงหาคม 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -544,7 +544,7 @@ msgstr "" "การต่อไปหมายถึงการใช้จ่ายมากขึ้นของเวลาของตัวเองในการทำงานต่อไป " "มันยังหมายถึงการเก็บภาพขนาดใหญ่มากขึ้นในหัวของฉัน." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -557,7 +557,7 @@ msgstr "" "นั่นคือประสบการณ์ที่อยู่เบื้องหลังบทความนี้. " "วิธีการที่จะมีประโยชน์อื่นๆแต่แต่ละเขตข้อมูลความต้องการที่จะสร้างสิ่งที่มันสามารถตรวจ" -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -569,7 +569,7 @@ msgstr "" "ผมอยากเห็นว่าตัวแทนจะสามารถเข้าถึงโปรแกรมและเครื่องมือพัฒนาสามัญได้ไกลแค่ไหน" " การฟื้นฟูทูโฮทำให้ผมมีโครงการมากมายที่จะหาคำตอบได้" -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -585,7 +585,7 @@ msgstr "" "มันอาจจะเขียนการวินิจฉัยขนาดเล็กและใช้ผลในการตัดสินใจว่าจะลองต่อไป " "ให้มันว่าเสรีภาพสร้างความแตกต่าง:ฉันสามารถใช้ความสนใจมากขึ้นในทิศทางของโครง" -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -596,7 +596,7 @@ msgstr "" "แล้วผมก็เริ่มสงสัยว่าอะไรจะรอดพ้นจากโครงการปัจจุบัน " "เกมต่อไปจะได้รับประโยชน์จากทุกอย่างที่เราเพิ่งได้เรียนรู้?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08:อาคารในการทำงานของมนุษย์" @@ -605,7 +605,7 @@ msgstr "TH08:อาคารในการทำงานของมนุษ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -619,7 +619,7 @@ msgstr "" "แหล่งข่าวสาธารณะของพวกเขาทำให้ฉันมีรากฐานที่สำคัญ " "มันมาพร้อมกับความรู้เกี่ยวกับการสร้างและประวัติของการมีส่วนร่วมที่ผมเก็บรักษาไว้ใน" -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -630,7 +630,7 @@ msgstr "" "ความต่อเนื่องของฉันเริ่มต้นในวันที่ 13 สิงหาคม โดย 19 " "สิงหาคมบัญชีแยกประเภทที่บันทึกไว้สำหรับทุก 1,107 ระบุฟังก์ชั่นเกม" -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -641,7 +641,7 @@ msgstr "" "สิงหาคมประมาณสิบเอ็ดวันหลังจากที่ต่อเนื่องเริ่ม ฉบับเว็บตาม เดอะพื้นเมือง " "Linux ปล่อย 64 บิตมาถึงเมื่อวันที่ 30 สิงหาคม" -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -655,7 +655,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -672,12 +672,12 @@ msgstr "" "ตรวจสอบรันไทม์สามารถบอกเราว่าเส้นทางที่ใช้สิทธิถึงสถานะที่คาดไว้ " "ตัวแทนเสนอคำอธิบายและทดสอบมัน;ไม่ตรงกันให้มันบางสิ่งบางอย่างที่เฉพาะเจาะจงใน" -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "ตรงกับค่าคงที่ผิดพอดี" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -688,7 +688,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -700,7 +700,7 @@ msgstr "" " แหล่งที่มาที่สร้างขึ้นใหม่ตรวจสอบอำนาจของผู้เล่นกับ {ph0}. ต้นฉบับที่ใช้ " "{ph1} เกณฑ์สูงสุด-อำนาจ" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -714,13 +714,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -734,7 +734,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -751,7 +751,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -766,7 +766,7 @@ msgstr "" "จุดลอยตัวอ้างอิงอย่างต่อเนื่อง " "มันพบอีกสิบสองอ้างอิงที่ไม่ถูกต้องในห้าฟังก์ชั่นที่ยอมรับ" -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -779,7 +779,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -789,7 +789,7 @@ msgstr "" "{ph0}การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ{ph1} " "ซ่อมมันเป็นส่วนหนึ่งของการซ่อมเกม" -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -806,7 +806,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -821,7 +821,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -830,7 +830,7 @@ msgid "" msgstr "" "{ph0}ชุดที่ประสบความสำเร็จให้เราทั้งการกู้คืนรหัสและสภาพแวดล้อมที่ดีกว่าสำหรับชุดต่อไป.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "สองความคิดที่แตกต่างกันของการฟื้นฟู" @@ -839,7 +839,7 @@ msgstr "สองความคิดที่แตกต่างกันข #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -851,7 +851,7 @@ msgstr "" "ทำให้ความขัดแย้งกับชนิดของงานนี้อย่างชัดเจน " "ประกาศประกาศว่าการพัฒนาต่อไปจะเกิดขึ้นเอกชนจนกว่าจะเสร็จสิ้น หนึ่งทางอ่าน:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -859,7 +859,7 @@ msgid "" msgstr "" "การเพิ่มขึ้นของกริฟเตอร์(ไอรวบรวมและพอร์ต)ในพื้นที่นี้การจากการทำงานของเราสีภาพที่ไ…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -875,7 +875,7 @@ msgstr "" "ผมเคารพความพยายามที่อยู่เบื้องหลังมัน " "ความขัดแย้งที่ฉันต้องการจะหารือเกี่ยวกับวิธีการฟื้นฟูควรดำเนินการและวิธีการมีส่วนร่วม" -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -887,7 +887,7 @@ msgstr "" " โครงการหนึ่งต้องอาศัยความเชี่ยวชาญของบุคคลนั้นอย่างมาก " "ความไว้วางใจในผู้สนับสนุนที่สำคัญเพราะมากของเหตุผลที่เกิดขึ้นในขณะที่พวกเขาทำงา" -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -897,7 +897,7 @@ msgstr "" "โครงการที่มีอยู่แล้วรักษาความรู้ในแหล่งที่มาของพวกเขาและสร้างเครื่องมือ " "สิ่งที่เปลี่ยนแปลงสำหรับผมก็คือเจ้าหน้าที่สามารถใช้ความรู้นั้นเพื่อติดตามการสืบสวนต่อไปได้ด้วยตัวเอง" -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -911,7 +911,7 @@ msgstr "" "การฟื้นฟูที่นำเสนอแล้วมีเพื่อความอยู่รอดการตรวจสอบที่เกี่ยวข้อง " "ฉันต้องการให้บุคคลอื่นสามารถที่จะตรวจสอบว่าทำไมเราเลือกการดำเนินงาน,แม้ว่าตัวแ" -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -924,7 +924,7 @@ msgstr "" "ที่ทำให้เกิดคำถามจริงเกี่ยวกับเครดิต " "การเปลี่ยนแปลงสิ่งที่ผู้ดูแลจำเป็นต้องรู้ก่อนที่จะยอมรับการมีส่วนร่วม" -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -939,7 +939,7 @@ msgstr "" "คนยังคงมีการออกแบบกระบวนการและรับรู้เมื่อผลผลิตที่ไม่ถูกต้อง " "ชุมชนต่างๆสามารถเลือกได้ว่าพวกเขาต้องการเปลี่ยนแปลงมากแค่ไหน" -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -963,7 +963,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -976,14 +976,14 @@ msgstr "" "ใบเสนอราคาเป็นข้อความที่ตัดตอนมาที่สั้นลง TH08ของ " "{ph4}เครดิตและแหล่งที่มา{ph5} บันทึกขอบเขตความต่อเนื่อง" -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095:ประสบการณ์เริ่มต้นการทบต้น" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -997,7 +997,7 @@ msgstr "" "สิงหาคมกับศูนย์ยืนยันฟังก์ชั่นเกมในบัญชีแยกประเภท เรายังคงต้องเรียนรู้เกม " "แต่เรารู้อยู่แล้วมากขึ้นเกี่ยวกับวิธีการเริ่มต้นการฟื้นฟูและวิธีการที่จะให้มันย้าย" -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1011,7 +1011,7 @@ msgstr "" "ฟื้นฟูถูกทำเครื่องหมายเล่นได้เมื่อวันที่ 10 " "กันยายนประมาณสิบสองวันหลังจากการเริ่มต้น" -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1022,7 +1022,7 @@ msgstr "" "เป้าหมายใหม่จะได้รับประโยชน์จากการทำงานที่ทำในเกมอื่น. " "ประสบการณ์ที่มีอยู่แล้วในเครื่องมือและในวิธีการที่โครงการได้รับการจัด" -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1036,7 +1036,7 @@ msgstr "" " เราต้องเห็นพวกเขาทำงานด้วยกัน บทเรียนนั้นช่วยสร้างวิธีการที่เราเข้าหา " "TH095ทั้งโปรแกรมสร้าง" -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1048,7 +1048,7 @@ msgstr "" "เมื่อมันกลายเป็นตรวจสอบว่าเซสชั่นอื่นสามารถทำงานก็สามารถให้ความช่วยเหลือหลังจ" " ตัวแทนต่อไปสามารถใช้ผลลัพธ์โดยไม่ต้องทำซ้ำการสืบสวนที่นำไปสู่มัน" -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1062,7 +1062,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1073,7 +1073,7 @@ msgstr "" "{ph0}วิธีการที่จะกลายเป็นส่วนหนึ่งของวัสดุเริ่มต้นสำหรับเกมถัดไป{ph1} " "เราสามารถใช้ความพยายามของโครงการต่อไปมากขึ้นกับสิ่งที่เป็นจริงใหม่เกี่ยวกับเป้าหมาย" -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1085,7 +1085,7 @@ msgstr "" "Theyตรวจสอบการตัดสินใจและเรียกใช้การตรวจสอบก่อนที่จะดำเนินการต่อการทำงา " "พวกเขาไม่ได้มีการสร้างประวัติของโครงการทั้งหมดเพื่อหาเหตุผลที่แหล่งที่มาที่มีลักษณะ" -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04:เวิร์กโฟลว์มีชีวิตอยู่สถาปัตยกรรมที่แตกต่างกัน" @@ -1094,7 +1094,7 @@ msgstr "TH04:เวิร์กโฟลว์มีชีวิตอยู่ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1110,7 +1110,7 @@ msgstr "" "กเขา ที่อยู่ {ph2}เรค 98{ph3} " "ให้ความรู้ที่มีคุณค่าและวัสดุแหล่งที่มาที่นี่ด้วย" -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1123,7 +1123,7 @@ msgstr "" "งานปัจจุบันเป็นพอร์ตพื้นเมือง 64 บิต " "การสร้างเวอร์ชันดอสทำงานก่อนทำให้พอร์ตการสื่อสารนั้นมีการอ้างอิง" -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1135,7 +1135,7 @@ msgstr "" "นอกจากนี้ยังมีการเปลี่ยนแปลงคอมไพเลอร์และรันไทม์กับที่เราตรวจสอบการทำงานของ " "แต่ตัวแทนยังคงสามารถทำตามคำถามผ่านไปยังผลลัพธ์และให้ผลลัพธ์ที่เป็นแนวทางในการทดลองต่อไป" -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1150,7 +1150,7 @@ msgstr "" "เมื่อหลักฐานและการตรวจสอบที่มีอยู่ตัวแทนสามารถทำงานผ่านคำถามมากที่สุดเท่าที่มันไ" " Windows ชื่อเรื่อง" -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1161,7 +1161,7 @@ msgstr "" "การเปลี่ยนแปลงแพลตฟอร์มอย่างมีนัยสำคัญไม่ได้บังคับให้เราเริ่มต้นใหม่ด้วยวิธีการใหม่ในการทำงาน" " สถาปัตยกรรมกำหนดปัญหาเวิร์กโฟลว์ยังคงให้เราวิธีแก้ปัญหา" -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1178,7 +1178,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1188,19 +1188,19 @@ msgstr "" "รัฐโครงการณวันที่ 10 ตุลาคม 2026: {ph0}การฟื้นฟูและทดสอบด้วยตนเอง{ph1} · " "{ph2}พอร์ต 64 บิต{ph3}. ท่าเรือยังคงอยู่ในการพัฒนา" -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "จากโค้ดที่แน่นอนไปยังโค้ดที่อ่านได้" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1213,7 +1213,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1229,7 +1229,7 @@ msgstr "" "จากนั้นเราสามารถให้ชื่อที่มีความหมายและประเภทที่เหมาะกับหลักฐาน " "เราให้เหตุผลกับแหล่งที่มาเพื่อให้คนต่อไปสามารถดูว่าการตีความที่มาจากไหน" -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1244,14 +1244,14 @@ msgstr "" "บิตในการตัดสินใจว่าวัตถุที่ควรจะเป็นเจ้าข " "ที่จะย้ายพฤติกรรมได้อย่างปลอดภัยเราจำเป็นต้องกู้คืนความสัมพันธ์ที่อยู่เบื้องหลังการเข้" -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "คำสั่งที่ผมใช้ตอนนี้คือ:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1267,7 +1267,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1283,7 +1283,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1299,7 +1299,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1313,7 +1313,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1329,7 +1329,7 @@ msgstr "" " " "การตรวจสอบที่สองว่าโปรแกรมที่สร้างขึ้นใหม่ยังคงสร้างและทำงานอย่างถูกต้องตามเส้นทางที่เราออกกำลังกาย" -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1342,7 +1342,7 @@ msgstr "" "การเปลี่ยนแปลงความเป็นเจ้าของสามารถออกจากสองส่วนของเกมโดยใช้สำเนาที่แตกต่ " "การเก็บรักษาทั้งสองตรวจสอบให้ตัวแทนคอนกรีตล้มเหลวในการตรวจสอบก่อนที่จะดำเนิ" -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1359,7 +1359,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1377,7 +1377,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1388,12 +1388,12 @@ msgstr "" "การฟื้นฟูความหมายทำให้ความรู้ที่กู้คืนใช้งานได้{ph1} " "พอร์ตแล้วสามารถสร้างทั้งสอง" -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "อะไรทำให้เกิดการเปลี่ยนแปลงทางอุตสาหกรรม" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1405,7 +1405,7 @@ msgstr "" "เมื่อตัวแทนสามารถดำเนินการมากของการสอบสวนไปข้างหน้า,การปรับปรุงสภาพแวดล้ " "เครื่องมือที่ดีกว่าจะช่วยให้มีทุกฟังก์ชันในภายหลังที่จำเป็น." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1418,7 +1418,7 @@ msgstr "" " ตัวแทนต้องการอิสรภาพมากพอที่จะทำตามผลลัพธ์ที่ไม่คาดคิด " "ถ้าต้องรอให้ดิฉันกำหนดแต่ละขั้นงานส่วนใหญ่ยังคงเกี่ยวข้องกับความสนใจของดิฉัน." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1431,7 +1431,7 @@ msgstr "" "ตรวจสอบล้มเหลวจะช่วยให้มันเข้าใจความผิดพลาดดีพอที่จะลองอีกครั้ง. " "ฉันยังต้องตัดสินใจว่าหลักฐานที่สะสมจะสนับสนุนโครงการนี้หรือไม่" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1445,7 +1445,7 @@ msgstr "" "โครงการฟื้นฟูวัสดุคอมไพเลอร์และการตรวจสอบการอ้างอิงของตัวเอง " "ตัวแทนสามารถใช้ผู้ที่จะทดสอบแหล่งที่มาที่นำเสนอและดูว่าคำอธิบายของมันถือขึ้น" -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1463,7 +1463,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1482,7 +1482,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1498,7 +1498,7 @@ msgstr "" "เมื่อเราพบข้อบกพร่องในเครื่องมือที่ใช้ร่วมกัน,เราต้องซ่อมแซมและทบทวนผลที่ได้รับผลก" " โครงการถัดไปแล้วสามารถสืบทอดเครื่องมือที่แข็งแกร่ง" -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1513,7 +1513,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1525,7 +1525,7 @@ msgstr "" "รงการที่ใช้ร่วมกันเพื่อดำเนินการตรวจสอบและบทเรียนของพวกเขาไปข้างหน้า. " "ทำงานในหนึ่งเกมสามารถปรับปรุงเงื่อนไขเริ่มต้นอีก" -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1537,12 +1537,12 @@ msgstr "" "ปรับปรุงเครื่องมือเหล่านั้นจะเปลี่ยนแปลงจำนวนคนถัดไป-หรือตัวแทนถัดไป-" "สามารถทำได้." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "โครงการที่เราสามารถพิจารณาได้ในขณะนี้" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1553,7 +1553,7 @@ msgstr "" "เกมอาจจะน่าสนใจที่จะย้อนกลับวิศวกรและยังคงต้องการมากขึ้นของความสนใจของตัวเอ " "หลายโครงการจะอยู่ความคิด" -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1569,7 +1569,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1579,7 +1579,7 @@ msgstr "" "ตอนนี้ผมมองไปที่โปรแกรมที่ไม่คุ้นเคยและขอให้: " "{ph0}อะไรการเข้าถึงข้อเสนอแนะและความรู้ที่สะสมจะช่วยให้ตัวแทนทำงานเกี่ยวกับเรื่องนี้{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1590,12 +1590,12 @@ msgstr "" "แต่ละคนสามารถปรับปรุงวิธีการที่เราเข้าใกล้ต่อไป " "ผมอยากสืบต่อไปว่ามันพาเราไปได้ไกลแค่ไหน" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "ความคืบหน้าโครงการและแหล่งที่มา" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1628,7 +1628,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1662,7 +1662,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1680,7 +1680,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1704,7 +1704,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1727,7 +1727,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1743,7 +1743,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1765,7 +1765,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1779,7 +1779,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1799,27 +1799,27 @@ msgstr "" "N0zoM1z0สะท้อนถึงป้อนเองย้อนกลับวิศวกรรม,Touhou ชิ้นกับ AI " "เจ้าหน้าที่และความรู้รประกอบที่ข้ามTH08,TH095และPC-98TH04." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "ประสบการณ์การทำงานระหว่างโครงการ" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "เรียงความการฟื้นฟู" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -1828,18 +1828,18 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "ตรวจสอบ→สร้าง→เปลี่ยน" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "สร้างกฎความเร็วของไดโนเสาร์" @@ -1848,7 +1848,7 @@ msgstr "สร้างกฎความเร็วของไดโนเส #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1860,15 +1860,15 @@ msgstr "" "ส่งคืนสคริปต์ที่กำลังทำงานอยู่;{ph1} เราใช้กฎในการสร้างมินิเกมนี้ด้วย " "{ph2}ปรับความเร็ว{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "ในหน้านี้" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1876,7 +1876,7 @@ msgstr "{ph0}เล่นและเปลี่ยนความเร็ว{ #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1884,7 +1884,7 @@ msgstr "{ph0}อ่านกฎการกู้คืน{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1892,18 +1892,18 @@ msgstr "{ph0}ตรวจสอบการฟื้นฟู{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "เล่นและเปลี่ยนความเร็ว" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1914,48 +1914,48 @@ msgstr "" "ย้ายแถบเลื่อนความเร็วที่จะลองเกมที่ช้าลงหรือเร็วขึ้น;มันสลับไปยังความเร็วคงที่" " เลือกกฎการกู้คืนที่จะเริ่มต้นที่ 6 และค่อยๆเร่งอีกครั้ง" -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "เล่นเกมที่สร้างขึ้นใหม่" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "เล่น" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "กระโดด ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "เริ่มใหม่" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "ความเร็ว" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "ใช้กฎการเร่งการกู้คืน" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -1963,7 +1963,7 @@ msgid "" msgstr "" "เปิดใช้งาน JavaScript เพื่อเล่นการฟื้นฟู รหัสและคำอธิบายข้างต้นยังคงอ่านได้" -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "อ่านสคริปต์ REA กลับมา" @@ -1971,7 +1971,7 @@ msgstr "อ่านสคริปต์ REA กลับมา" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1985,7 +1985,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1995,18 +1995,18 @@ msgstr "" "การตั้งค่าคือ {ph0}, {ph1} และ {ph2}. " "เกมวิ่งสาขานี้ในการปรับปรุงโดยไม่มีการปะทะกัน" -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "ใช้กฎเดียวกันในเกมใหม่" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "คัดลอก" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2022,18 +2022,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "ตรวจสอบการฟื้นฟู" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2043,27 +2043,27 @@ msgstr "" "เราเรียกว่าฟังก์ชั่นการปรับปรุงเกมเดิมที่มีอุปสรรคและการตั้งเวลาอัตโนมัติปิดการใช้งาน" " เปรียบเทียบความเร็วที่บันทึกไว้กับรีเพลย์ของกฎการกู้คืน" -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "อัพเดท" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "เกมเดิม" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "กฎที่สร้างขึ้นใหม่" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "เรียกใช้การตรวจสอบความเร็ว" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2072,14 +2072,14 @@ msgstr "" "ค่าปัดเศษเป็นสามทศนิยม " "สาขาตรวจสอบก่อนที่จะเพิ่มเพื่อให้เพิ่มขึ้นสุดท้ายสามารถใช้ความเร็วสูงกว่า 13" -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "ลองวิเคราะห์ด้วยตัวคุณเอง" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2088,14 +2088,14 @@ msgstr "{ph0}ตั้งค่า REA{ph1} กับตัวแทนการ #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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} น้าเว็บ" -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2111,7 +2111,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2123,7 +2123,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวแทนการเ #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2136,7 +2136,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2151,7 +2151,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2176,64 +2176,64 @@ msgid "" msgstr "" "อ่านกฎความเร็วของเกมไดโนเสาร์ด้วย REA สร้างมันแล้วเปลี่ยนความเร็วและเล่น" -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "ฟื้นฟูความเร็วไดโนเสาร์" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 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:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "คัดลอกกฎความเร็วที่สร้างขึ้นใหม่" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "คัดลอกไดโนเสาร์พร้อมท์วิเคราะห์" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}บ้าน{ph1} /คำถามที่พบบ่อย" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REAคำถามที่พบบ่อย" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "การตั้งค่าการอัปเดตการวิเคราะห์และการแก้ไขปัญหา" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "หัวข้อ" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2241,7 +2241,7 @@ msgstr "{ph0}การตั้งค่าและการปรับปร #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2249,7 +2249,7 @@ msgstr "{ph0}การวิเคราะห์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2257,31 +2257,31 @@ msgstr "{ph0}การแก้ไขปัญหา{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}ข้อมูลและการแบ่งปัน{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "การตั้งค่าและการปรับปรุง" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "ติดตั้ง REA อย่างไร?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "เทอร์มินัล*การตั้งค่าตัวแทน" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "คัดลอก" @@ -2289,7 +2289,7 @@ msgstr "คัดลอก" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2303,13 +2303,13 @@ msgstr "" "จากนั้นระบุพาธไฟล์และคำถาม " "ดูข้อกำหนดและขั้นตอนวิเคราะห์ครั้งแรกได้ใน{ph0}คู่มือการตั้งค่า{ph1}" -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "ซึ่งตัวแทนการเขียนโค้ดสามารถใช้ REA?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2324,32 +2324,32 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}เชื่อมต่อตัวแทนการเข้ารหัสของคุณ{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "อัปเดต REA อย่างไร?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 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:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "เทอร์มินัล*ติดตั้งแล้ว CLI" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2359,14 +2359,14 @@ msgstr "" "เรียกคำสั่งปรับปรุงการตั้งค่าที่แสดงหลังอัปเดต หากตั้งค่าผู้ช่วยด้วย {ph0} " "ให้เรียก:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "เทอร์มินัล*รีเฟรชการตั้งค่าตัวแทน" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2379,7 +2379,7 @@ msgstr "" "จึงต้องเรียกคำสั่งตั้งค่าอีกครั้งเพื่อใช้เวอร์ชันใหม่ หากต้องการใช้ CLI " "ครั้งเดียว ให้ต่อคำสั่งที่ต้องการหลัง {ph0}" -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "คือการติดตั้งทักษะจาก skills.sh พอแล้ว?" @@ -2387,7 +2387,7 @@ msgstr "คือการติดตั้งทักษะจาก skills.s # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2399,17 +2399,17 @@ msgstr "" "REA{ph1}เพื่อเชื่อมต่อเซิร์ฟเวอร์ MCP และติดตั้ง skill ที่ตรงกัน " "จากนั้นเริ่มผู้ช่วยใหม่เพื่อใช้งานเครื่องมือ" -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "การวิเคราะห์" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "สิ่งที่ฉันสามารถวิเคราะห์ด้วย REA?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "เริ่มต้นด้วยชนิดของซอฟต์แวร์ที่คุณมี:" @@ -2417,7 +2417,7 @@ msgstr "เริ่มต้นด้วยชนิดของซอฟต์ # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2429,7 +2429,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2440,7 +2440,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2449,7 +2449,7 @@ msgstr "{ph0}หน้าเว็บเบราว์เซอร์{ph1}:ส # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2460,13 +2460,13 @@ msgstr "" "REA ยังวิเคราะห์ managed assembly เช่น .NET, Android APK, เฟิร์มแวร์ " "และทรัพยากรในแพ็กเกจได้ ดูขั้นตอนจริงได้ใน{ph0}กรณีศึกษา{ph1}" -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "ฉันต้อง Hopper, Ghidra หรือ IDA?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2479,7 +2479,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2492,13 +2492,13 @@ msgstr "" "เครื่องมือที่ใช้ได้ขึ้นอยู่กับระบบปฏิบัติการและเป้าหมาย " "{ph0}ตั้งค่าการวิเคราะห์เนทีฟ{ph1}" -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "ฉันสามารถใช้ REA โดยไม่มีตัวแทนการเขียนโค้ด?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2507,7 +2507,7 @@ msgstr "" "ได้ CLI ใช้ขั้นตอนวิเคราะห์เดียวกัน สำหรับแอป JavaScript หรือ Electron " "ในเครื่อง:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "เทอร์มินัล*การวิเคราะห์การใช้งานแบบคงที่" @@ -2515,7 +2515,7 @@ msgstr "เทอร์มินัล*การวิเคราะห์ก # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2526,13 +2526,13 @@ msgstr "" "ดูตัวเลือกติดตั้งใน{ph0}คู่มือ CLI{ph1}" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2548,7 +2548,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2560,13 +2560,13 @@ msgstr "" "ดูกระบวนการได้จาก{ph0}การคำนวณของ DX-Ball{ph1}และ{ph2}ตัวตรวจ flag ของ " "CTF{ph3}" -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "ควรถามอะไรกับผู้ช่วย?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2583,7 +2583,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2592,7 +2592,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวแทนการเ # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2602,19 +2602,19 @@ msgstr "" "เปลี่ยนพาธเป็นเป้าหมายของคุณ " "{ph0}คู่มือ{ph1}มีพรอมป์ต์ตัวอย่างสำหรับโปรแกรมเนทีฟ Electron และเบราว์เซอร์" -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "การแก้ไขปัญหา" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "ทำไมตัวแทนของฉันไม่สามารถเห็น REA เครื่องมือ?" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2624,7 +2624,7 @@ msgstr "" "หลังตั้งค่า ให้เริ่มผู้ช่วยใหม่หรือเชื่อมต่ออีกครั้ง ตรวจสอบการลงทะเบียน REA" " ด้วย {ph0} ตัวอย่างสำหรับ Codex:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "เทอร์มินัล*ตรวจสอบลูกค้าหนึ่ง" @@ -2633,7 +2633,7 @@ msgstr "เทอร์มินัล*ตรวจสอบลูกค้า #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2643,7 +2643,7 @@ msgstr "" "เปลี่ยน {ph0} เป็น ID ของไคลเอนต์ เช่น {ph1} หรือ {ph2} " "หากรายงานว่าการลงทะเบียนหายไปหรือเก่า ให้ตั้งค่าไคลเอนต์นั้นอีกครั้ง:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "เทอร์มินัล*ซ่อมแซมการตั้งค่าของไคลเอนต์หนึ่ง" @@ -2651,7 +2651,7 @@ msgstr "เทอร์มินัล*ซ่อมแซมการตั้ # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2663,7 +2663,7 @@ msgstr "" "ให้ดูข้อผิดพลาดการเชื่อมต่อ MCP ของไคลเอนต์ " "{ph0}ดูวิธีวินิจฉัยเพิ่มเติม{ph1}" -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "ฉันจำเป็นต้องเริ่มต้น Hopper ก่อน?" @@ -2671,7 +2671,7 @@ msgstr "ฉันจำเป็นต้องเริ่มต้น Hopper # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2683,7 +2683,7 @@ msgstr "" "ให้เลือกโหมดทดลองหรือเปิดใช้งานใบอนุญาตในหน้าจอเปิดครั้งแรก " "ก่อนเริ่มการวิเคราะห์อัตโนมัติ {ph0}ดูการตั้งค่าเครื่องมือเนทีฟ{ph1}" -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "ควรทำอย่างไรเมื่อพบข้อผิดพลาด?" @@ -2691,7 +2691,7 @@ msgstr "ควรทำอย่างไรเมื่อพบข้อผิ # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2704,7 +2704,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2716,18 +2716,18 @@ msgstr "" "ชนิดเป้าหมาย ขั้นตอนทำซ้ำ และข้อความผิดพลาด " "หากเป็นการวิเคราะห์เนทีฟให้ระบุชื่อเครื่องมือด้วย" -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "ข้อมูลและการแบ่งปัน" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "ไม่ REA อัปโหลดแอปของฉัน?" # Reviewed for readable instructions and accurate software terminology. -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2736,7 +2736,7 @@ msgstr "" "REA วิเคราะห์เป้าหมายบนเครื่องของคุณ ผู้ช่วยจะได้รับผลลัพธ์ " "และผลลัพธ์นั้นอยู่ภายใต้นโยบายข้อมูลของผู้ให้บริการโมเดลที่ผู้ช่วยใช้" -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "ฉันจะแบ่งปันตัวอย่างหรือมีส่วนร่วมได้อย่างไร" @@ -2746,7 +2746,7 @@ msgstr "ฉันจะแบ่งปันตัวอย่างหรือ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2762,7 +2762,7 @@ msgstr "" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2787,77 +2787,77 @@ msgstr "" "คำตอบสำหรับคำถาม REA ที่พบบ่อย: การติดตั้ง อัปเดต เครื่องมือวิเคราะห์ " "ผู้ช่วยเขียนโค้ด การแก้ปัญหา และการแชร์ตัวอย่าง" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "คำถามที่พบบ่อยเกี่ยวกับ REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "คัดลอกREAคำสั่งการตั้งค่า" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "คัดลอก REA อัพเดตคำสั่ง" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "คัดลอกคำสั่งรีเฟรชการตั้งค่าตัวแทน" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "คัดลอก REA CLI คำสั่งการวิเคราะห์" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "คัดลอกตัวอย่างพร้อมท์การวิเคราะห์" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "คัดลอกคำสั่งการวินิจฉัยไคลเอ็นต์" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "สำเนาคำสั่งการตั้งค่าขอบเขต" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}บ้าน{ph1} /การสืบสวนครั้งแรกของคุณ" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2866,14 +2866,14 @@ msgstr "" "ใช้ REA " "นาดเล็กทำตามปุ่มบันทึกการส่งออกและตรวจสอบรายละเอียดหนึ่งด้วยตัวคุณเอง" -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "ในการออกกำลังกายนี้" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2881,7 +2881,7 @@ msgstr "{ph0}1. ตั้งค่า{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2889,7 +2889,7 @@ msgstr "{ph0}2. สอบถามเกี่ยวกับการส่ง #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2897,7 +2897,7 @@ msgstr "{ph0}3. ทำตามคำตอบ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2905,13 +2905,13 @@ msgstr "{ph0}4. พรีเมียร์ลีก{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. เชื่อมต่อตัวแทนของคุณกับ REA" @@ -2924,30 +2924,30 @@ msgstr "1. เชื่อมต่อตัวแทนของคุณกั #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "คัดลอก" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "หรือเรียกใช้คำสั่งนี้ในเทอร์มินัลของคุณ:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -2956,14 +2956,14 @@ msgstr "" "ตรวจสอบแผนอนุมัติการตั้งค่าจากนั้นรีสตาร์ทตัวแทนของคุณ เชื่อมต่อแล้ว? " "ดำเนินการต่อด้านล่าง" -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. ถามที่ CSV ถูกเขียน" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2975,7 +2975,7 @@ msgstr "" "{ph0}บันทึกการส่งออก{ph1} ปุ่ม " "ตัวแทนของคุณสามารถตรวจสอบรหัสได้โดยไม่ต้องติดตั้งหรือเปิดตัว Electron." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2985,14 +2985,14 @@ msgstr "ตัวแทนของคุณดาวน์โหลดไฟล #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ดาวน์โหลดตัวอย่างไปรษณีย์{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3002,12 +3002,12 @@ msgstr "" "หากตัวแทนของคุณไม่สามารถดาวน์โหลดไฟล์ได้ให้เปิดเครื่องรูดที่เก็บถาวรนี้ด้วยตัวเอง" " ให้มันเส้นทางไป {ph0} โฟลเดอร์และคำถามการส่งออกเดียวกัน" -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. ทำตามคำตอบกลับไปที่รหัส" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ค้นหาคำอธิบายสั้นๆด้วยการอ้างอิงไฟล์และบรรทัด:" @@ -3016,7 +3016,7 @@ msgstr "ค้นหาคำอธิบายสั้นๆด้วยกา #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3027,12 +3027,12 @@ msgstr "" "ปุ่มส่งข้อความ {ph0} โปรเซสหลักแปลงโน้ตเป็น CSV แล้วบันทึกไฟล์ {ph1} " "ในโฟลเดอร์ดาวน์โหลดของผู้ใช้ โดยมีคอลัมน์ {ph2} และ {ph3}" -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "จากปุ่มไปยังนักเขียนไฟล์" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3040,7 +3040,7 @@ msgid "" msgstr "" "REAการวิเคราะห์แบบคงที่ของคู่ข้อความที่มีการจัดการ ปลายทางถูกอ่านจากรหัส" -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3051,18 +3051,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. พรีเมียร์ลีก" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3071,36 +3071,36 @@ msgstr "" "เครื่องหมายจุลภาคแยก CSV คอลัมน์ " "จะเกิดอะไรขึ้นเมื่อชื่อโน้ตมีเครื่องหมายจุลภาคหรือใบเสนอราคา" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "เรียกใช้การตรวจสอบตัวเอง" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. ถามคำถามอื่น" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "ลองติดตามผลในการสนทนาเดียวกัน:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3112,7 +3112,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3127,7 +3127,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3141,7 +3141,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3165,116 +3165,116 @@ msgstr "" "ลองดู REA ในแอพพลิเคโน้ตขนาดเล็ก " "ตั้งค่าตัวแทนของคุณขอที่บันทึกส่งออกไปและตรวจสอบ CSV รูปแบบที่มีชื่อตัวอย่าง" -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "ครั้งแรกของคุณ REA การสืบสวน" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "คัดลอก REA พร้อมท์การติดตั้ง" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "คัดลอกคำสั่งการตั้งค่า" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "คัดลอกบันทึกการตรวจสอบพรอมต์" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "คัดลอก CSV ตรวจสอบพรอมต์" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "คัดลอกคำสั่งตรวจสอบรูปแบบ" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}บ้าน{ph1} /เริ่มต้นใช้งาน" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "ตั้งค่า REA." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "เปิดเทอร์มินัลและตรวจสอบ:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "เทอร์มินัล" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "คัดลอก" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3286,7 +3286,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3298,7 +3298,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3309,7 +3309,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3317,7 +3317,7 @@ msgstr "{ph0}ใช้ CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3331,18 +3331,18 @@ msgstr "{ph0}การรับความช่วยเหลือ{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}ผู้ช่วย AI เขียนโค้ดของคุณ" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "หรือเรียกใช้การตั้งค่าด้วยตัวคุณเอง" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "ฉันจะเปิดเทอร์มินัลได้อย่างไร?" @@ -3351,7 +3351,7 @@ msgstr "ฉันจะเปิดเทอร์มินัลได้อย #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3366,7 +3366,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3378,7 +3378,7 @@ msgstr "{ph0}macOS:{ph1} กด {ph2} {ph3} พิมพ์ {ph4}Terminal{ph5} #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3391,7 +3391,7 @@ msgstr "{ph0}Linux:{ph1} กด {ph2} {ph3} {ph4} บนเดสก์ท็อ #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3401,7 +3401,7 @@ msgstr "" "วางคำสั่งด้วย {ph0} {ph1} (macOS: {ph2} {ph3}; เทอร์มินัล Linux: {ph4} {ph5}" " {ph6}) แล้วกด Enter" -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3412,7 +3412,7 @@ msgstr "" "การเชื่อมต่อและทักษะการตรวจสอบการจับคู่การรักษาสำรองของการกำหนดค่าที่มีอยู่ " "มันถามก่อนที่จะใช้การเปลี่ยนแปลง" -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "เริ่มแอปที่เชื่อมต่อใหม่อย่างไร?" @@ -3421,7 +3421,7 @@ msgstr "เริ่มแอปที่เชื่อมต่อใหม่ #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3436,7 +3436,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3446,7 +3446,7 @@ msgstr "" "{ph0}ตัวแทนเทอร์มินัล{ph1} (Claude Code, Codex, Gemini " "CLI):ออกจากเซสชั่นและเริ่มต้นอีกครั้ง" -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "ฉันจะได้รับเส้นทางเต็มของโฟลเดอร์ได้อย่างไร" @@ -3455,7 +3455,7 @@ msgstr "ฉันจะได้รับเส้นทางเต็มขอ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3469,7 +3469,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3481,7 +3481,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3491,13 +3491,13 @@ msgstr "" "{ph0}ระบบใดๆ:{ph1} " "ลากโฟลเดอร์ลงในหน้าต่างเทอร์มินัลและเส้นทางของมันปรากฏขึ้น" -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3505,14 +3505,14 @@ msgid "" msgstr "" "วิเคราะห์เป็นJavaScriptหรือElectronองโปรแกรมหรือโฟลเดอร์ASARแฟ้มจัดเก็บโดยไม่มีกำลังแอพฯ:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "การวิเคราะห์แอปพลิเคชันแบบคงที่" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3522,13 +3522,13 @@ msgstr "" "แทนที่พาธด้วยไดเรกทอรีแอปที่คุณแยกออกหรือ {ph0} แฟ้ม บน Windows เส้นทางเช่น " "{ph1} ทำงานที่นี่" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "หาไฟล์ .asar ของแอปได้ที่ไหน?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3539,7 +3539,7 @@ msgstr "Electron ปพลิเคชันมักจะเก็บไว้ #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3551,7 +3551,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3564,20 +3564,20 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1} มักจะ {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3588,36 +3588,36 @@ msgstr "" " การเชื่อมต่อ REA ไม่สามารถแก้ไขได้ถูกทำเครื่องหมายในผลลัพธ์" #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "ติดตั้ง CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "เชื่อมต่อของคุณ Ghidra การติดตั้ง" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "เชื่อมต่อ Ghidra บน Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3628,13 +3628,13 @@ msgstr "" "เนทีฟ x86 และ x64 บนไดรฟ์ NTFS ภายในเครื่องแบบคงที่ ใช้ Ghidra 12.1.x " "ที่ติดตั้งไว้แล้วและ JDK 21 ขึ้นไปแบบ 64 บิต:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 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:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3643,18 +3643,18 @@ msgstr "" "เชื่อมต่อHopperบmacOSหรือLinux. " "รันคำสั่งการติดตั้งข้างต้นจะตรวจพบการติดตั้งที่มีอยู่หรือเสนอแผนการติดตั้งเพื่อขออนุมัติ" -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "การรับความช่วยเหลือ" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "ถ้าตัวแทนของคุณไม่เห็น REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3664,22 +3664,22 @@ msgstr "" "รีสตาร์ทหรือเชื่อมต่อไคลเอ็นต์หลังจากการตั้งค่า ตรวจสอบ REA การเชื่อมต่อกับ " "{ph0};สำหรับ Codex:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "หากผู้ให้บริการต้องการความสนใจ" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "ตรวจสอบผู้ให้บริการที่คุณใช้ สำหรับ Ghidra:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "ตรวจสอบผู้ให้บริการหนึ่งราย" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "รายงานให้ตรวจสอบล้มเหลวและแนะนำขั้นตอนถัดไป." @@ -3688,7 +3688,7 @@ msgstr "รายงานให้ตรวจสอบล้มเหลวแ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3701,7 +3701,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3715,7 +3715,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3728,7 +3728,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3751,68 +3751,68 @@ msgstr "" "บนเครื่องจากเทอร์มินัล พร้อมขั้นตอนตั้งค่า คำถามแรก " "และคู่มือเครื่องมือวิเคราะห์เนทีฟ" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "คัดลอก Node.js ตรวจสอบรุ่น" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "คัดลอก Node.js คำสั่งการติดตั้งสำหรับ Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "คัดลอก Homebrew Node.js คำสั่งการติดตั้ง" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "สำเนาคำสั่งการติดตั้งสำหรับ Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 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:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REAคู่มือการเริ่มต้นใช้งาน" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "คัดลอก REA พร้อมท์การติดตั้ง" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "คัดลอกJavaScriptคำสั่งการวิเคราะห์" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "คัดลอกCLIคำสั่งการติดตั้ง" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "คัดลอกคำสั่งการวินิจฉัยผู้ให้บริการ" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -3821,20 +3821,20 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}บ้าน{ph1} / {ph2}กเขา{ph3} /การสังเกตเบราว์เซอร์" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3843,14 +3843,14 @@ msgstr "" "การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ,การเขียนเนื้อหา JavaScript " "ที่สร้างการดาวน์โหลด" -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "ในคู่มือนี้" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3858,7 +3858,7 @@ msgstr "{ph0}ตัวอย่าง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3866,7 +3866,7 @@ msgstr "{ph0}เปิดเบราว์เซอร์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3874,7 +3874,7 @@ msgstr "{ph0}สอบถามตัวแทนของคุณ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3882,13 +3882,13 @@ msgstr "{ph0}จับภาพจาก CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "เกิดอะไรขึ้นเมื่อคุณคลิกส่งออก?" @@ -3898,7 +3898,7 @@ msgstr "เกิดอะไรขึ้นเมื่อคุณคลิก #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3909,7 +3909,7 @@ msgstr "" "ร {ph0}ตัวอย่างเบราว์เซอร์หมายเหตุ{ph1} มี {ph2}บันทึกการส่งออก{ph3} ปุ่ม " "คลิกโหลด {ph4} รูปแบบสองบันทึกเป็น CSV และเริ่มต้นการดาวน์โหลด" -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "จากการคลิกที่ CSV ดาวน์โหลด" @@ -3920,7 +3920,7 @@ msgstr "จากการคลิกที่ CSV ดาวน์โหลด" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3935,7 +3935,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3953,7 +3953,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3963,17 +3963,17 @@ msgstr "" "{ph0}03·ตัวแทนของคุณ{ph1}{ph2}อ่านรหัสส่งออก{ph3}{ph4}เชื่อมต่อคำขอสังเกตไปที่" " {ph5} ใน {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "เริ่มการจับภาพก่อนที่จะคลิกส่งออกหมายเหตุ" -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "เปิด Chrome ด้วยการดีบักระยะไกล" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -3982,21 +3982,21 @@ msgstr "" "เปิดตัวอย่างบันทึกย่อที่โฮสต์กับโปรไฟล์เบราว์เซอร์ที่แยกต่างหากและพอร์ตการดีบักโลคั" " บนLinux:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "เริ่มต้นเบราว์เซอร์ตัวอย่าง" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "คัดลอก" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4005,7 +4005,7 @@ msgstr "" "ใช้เส้นทางปฏิบัติการของเบราว์เซอร์ที่ติดตั้งบน macOS หรือ Windows. " "คุณสามารถแทนที่ลิงค์เพจด้วยเพจอื่นที่คุณต้องการตรวจสอบได้" -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4014,7 +4014,7 @@ msgstr "" "REA เชื่อมต่อกับเบราว์เซอร์ที่มีอยู่นี้ " "คุณสามารถควบคุมเพจดำเนินการและปิดเบราว์เซอร์เมื่อเสร็จสิ้น" -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "เว็บแคม,ถ้ำมอง,ซ่อน,จับได้,นอกใจ," @@ -4027,7 +4027,7 @@ msgstr "เว็บแคม,ถ้ำมอง,ซ่อน,จับได้ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4039,7 +4039,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวแทนการเ #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4050,7 +4050,7 @@ msgstr "" "สิ่งที่ร้องขอไม่ได้ทำให้และวิธีการที่เป็น CSV สร้าง?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4060,7 +4060,7 @@ msgstr "" "รือไม่ ให้ตัวแทนของคุณดีบักปลายทาง, {ph0} และลิงค์หน้า " "ให้มันเริ่มการจับภาพก่อนที่จะคลิก" -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4070,23 +4070,23 @@ msgstr "" "ตัวแทนของคุณค้นพบเป้าหมายหน้าเริ่มต้นหน้าต่างสังเกตการณ์และอ่านหลักฐานที่เกิดขึ้น" " จากนั้นก็สามารถตรวจสอบสคริปต์ที่อยู่เบื้องหลังการส่งออก" -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "หรือจับภาพจากเทอร์มินัล" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "ค้นหารหัสเป้าหมายของหน้าเว็บ:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "ค้นหาหน้าเว็บ" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4096,14 +4096,14 @@ msgstr "" "เลือกเป้าหมายด้วยลิงค์ตัวอย่างหมายเหตุ แทนที่ {ph0} " "ด้านล่างมีรหัสของตนแล้วเรียกใช้:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "จับสิบวินาทีถัดไป" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4113,7 +4113,7 @@ msgstr "" "ให้คำสั่งเชื่อมต่อไม่กี่วินาที,แล้วคลิก {ph0}บันทึกการส่งออก{ph1} " "ในเบราว์เซอร์ที่ ผลลัพธ์จะมาถึงหลังจากที่หน้าต่างการสังเกตสิ้นสุดลง" -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4123,49 +4123,49 @@ msgstr "" "ผลลัพธ์ที่จับมีเพจที่เลือกกิจกรรมของเครือข่ายระหว่างหน้าต่างนั้นและรูปร่างของการตอ" " คำขอก่อนหน้านี้อยู่นอกการจับภาพนี้" -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "อ่านคำขอและส่งออกสคริปต์" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 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:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "จับความจริง" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "ค่า" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "คำขอ" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "การตอบสนอง" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "ผู้ริเริ่มการร้องขอ" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} *สคริปต์" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "โครงสร้างการตอบสนอง" @@ -4173,19 +4173,19 @@ msgstr "โครงสร้างการตอบสนอง" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "อ่านสคริปต์ที่โหลด" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4196,7 +4196,7 @@ msgstr "" "อ่านแหล่งที่มาของสคริปต์ที่จับเพื่อดูว่ามีการใช้ข้อมูล:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4208,7 +4208,7 @@ msgstr "" "ขั้นตอนการจัดรูปแบบมาจากสคริปต์;จับเครือข่ายกำหนดว่าการคลิกนี้ร้องขอ {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4220,7 +4220,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4244,65 +4244,65 @@ msgstr "" "สังเกตบันทึกการส่งออกด้วย " "REA:เลือกหน้าเบราว์เซอร์จับคลิกตรวจสอบการร้องขอและทำตามสคริปต์การส่งออก" -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "การสังเกตเบราว์เซอร์" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "คัดลอกเริ่มต้นตัวอย่างเบราว์เซอร์" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "คัดลอกตัวอย่างพรอมต์" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "คัดลอกค้นหาหน้า" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "คัดลอกจับภาพสิบวินาทีถัดไป" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "คัดลอกอ่านสคริปต์ที่โหลด" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}บ้าน{ph1} /คู่มือ" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA กเขา" -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4311,37 +4311,37 @@ msgstr "" "วิเคราะห์ฟังก์ชั่นพื้นเมืองและ Electron ส่งออกหรือคำขอเบราว์เซอร์ " "คู่มือแต่ละคนรวมถึงให้รหัสและผล" -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "การสืบสวนครั้งแรก" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "ตั้งค่า REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "เชื่อมต่อตัวแทนการเข้ารหัสของคุณหรือใช้ REA จากอาคารผู้โดยสาร" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "เริ่มต้นใช้งาน REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "โปรแกรมเครื่องรหัส" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "กู้คืนการคำนวณของตำแหน่งเสียงซ้าย/ขวา" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4350,22 +4350,22 @@ msgstr "" "เริ่มต้นด้วย Windows ปฏิบัติการเกม " "ตรวจสอบคำแนะนำ,ทำตามโทร,อ่านค่าคงที่ตัวเลขและตรวจสอบการกู้คืนซี." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "คู่มือการวิเคราะห์โปรแกรมเครื่องรหัส" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "ทำตาม CSV ส่งออก" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4374,30 +4374,30 @@ msgstr "" "แอพพลิเคบันทึกย่อขนาดเล็กกระจายคุณลักษณะหนึ่งในการแสดงผล,โหลดล่วงหน้าและกระบ" " ใช้ REA การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & Electron คู่มือ" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "พฤติกรรมของเบราว์เซอร์" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "สังเกตการคลิก" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4405,7 +4405,7 @@ msgid "" msgstr "" "เปิดตัวอย่างบันทึกการทำงานจับการร้องขอการส่งออกและหารหัสที่จะเปลี่ยนการตอบสน" -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "คู่มือการสังเกตเบราว์เซอร์" @@ -4424,12 +4424,12 @@ msgstr "" "เรียนรู้ REA ผ่านตัวอย่างการทำงานสั้น:การคำนวณพื้นเมืองและ Electron CSV " "การส่งออกและคำขอเบราว์เซอร์" -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -4438,20 +4438,20 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4460,14 +4460,14 @@ msgstr "" "การตลาดทางอินเทอร์เน็ต,การขาย,การตลาด,การโฆษณา Electron การเงินและการลงทุน " "CSV นักเขียนไฟล์" -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "ในคู่มือนี้" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4475,7 +4475,7 @@ msgstr "{ph0}ตัวอย่าง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4483,7 +4483,7 @@ msgstr "{ph0}สอบถามตัวแทนของคุณ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4491,7 +4491,7 @@ msgstr "{ph0}ติดตามรหัสส่งออก{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4499,20 +4499,20 @@ msgstr "{ph0}ลองตัวอย่าง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "ที่ไม่\"บันทึกการส่งออก\"ไป?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4524,7 +4524,7 @@ msgstr "" "การเขียนข้อความโฆษณา,บล็อก,การเขียนในนามคนอื่น,บทความ,การเขียนเนื้อหา CSV. " "ลักษณะการทำงานจะถูกกระจายไปทั่วหลายแฟ้ม" -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "ร CSV ส่งออกข้าม Electron กระบวนการ" @@ -4538,7 +4538,7 @@ msgstr "ร CSV ส่งออกข้าม Electron กระบวนกา #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4555,7 +4555,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4571,7 +4571,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4584,13 +4584,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4600,14 +4600,14 @@ msgstr "" "REA การเรียกตัวจัดการและระบุเอพีไอที่เปิดเผย " "พาธจะอนุมานจากรหัสจับรันไทม์สามารถตรวจสอบสิ่งที่ดำเนินการ" -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "ถามเกี่ยวกับ CSV ส่งออก" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4625,14 +4625,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "คัดลอก" @@ -4643,7 +4643,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4654,7 +4654,7 @@ msgstr "" "สร้าง?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4662,7 +4662,7 @@ msgid "" "{ph0}." msgstr "รือไม่ รวมเส้นทางที่แน่นอนไปยังโฟลเดอร์โปรแกรมประยุกต์หรือ {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4672,17 +4672,17 @@ msgstr "" "REA อ่านไฟล์โปรแกรมและสร้างแผนที่จุดเข้าโมดูลและขอบเขตของกระบวนการ " "ตัวแทนของคุณใช้แผนที่เพื่อจำกัดการสืบสวนให้แคบลงให้เป็นคุณลักษณะการส่งออก" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "ติดตามรหัสส่งออก" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "การแปลภาษา,การพิสูจน์อักษร,การตรวจแก้" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4692,7 +4692,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4704,7 +4704,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4714,7 +4714,7 @@ msgstr "" "การอ่านผู้ดูแลตอบคำถามเดิม: {ph0} รูปแบบบันทึกและกระบวนการหลักเขียน {ph1} " "ลงในโฟลเดอร์ดาวน์โหลดของผู้ใช้" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4723,7 +4723,7 @@ msgstr "" "บันทึกโดย REA 4.1.0 ในตัวอย่างที่สามารถดาวน์โหลดได้ด้านล่าง " "การวิจัยทางการเงิน,การเงิน,ตลาดการเงิน,การวิเคราะห์ทางการเงิน" -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "วิเคราะห์ตัวอย่างด้วยตัวคุณเอง" @@ -4731,25 +4731,25 @@ msgstr "วิเคราะห์ตัวอย่างด้วยตัว #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ดาวน์โหลดตัวอย่างไปรษณีย์{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "เรียกดูไฟล์ที่มาหก" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "การวิเคราะห์แอปพลิเคชันแบบคงที่" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4760,7 +4760,7 @@ msgstr "" "คุณควรหาช่องทางไอพีซีหนึ่งช่องและตัวจัดการการจับคู่หนึ่งใน {ph0}. " "สถานที่ที่มาอยู่ใน {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4771,13 +4771,13 @@ msgstr "" "ตัวแทนสามารถทำตามสตริงที่แท้จริงชื่อเอพีไอหรือช่องทางไอพีซีด้วย " "REAคุณลักษณะของเครื่องมือติดตาม" -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "ตรวจสอบ CSV นักเขียน" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4787,7 +4787,7 @@ msgstr "" "ทำตาม {ph0} ไปยังผู้จัดการของตน ซึ่งปัจจัยการผลิตถึง CSV " "นักเขียนและสิ่งที่เกิดขึ้นถ้าการเขียนไฟล์ล้มเหลว?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4801,7 +4801,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4815,7 +4815,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4828,7 +4828,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4853,32 +4853,32 @@ msgstr "" "ออกแบบเว็บไซต์,ออกแบบกราฟิก,ออกแบบโลโก้,การสร้างตราสินค้า REA. " "รวมไฟล์ตัวอย่างที่สามารถดาวน์โหลดได้และผลการวิเคราะห์ที่ได้รับการยืนยัน" -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "คัดลอกตัวอย่างพรอมต์" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "คัดลอกการวิเคราะห์แอ็พพลิเคชันแบบคงที่" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -4887,34 +4887,34 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}บ้าน{ph1} / {ph2}กเขา{ph3} /การวิเคราะห์โปรแกรมเครื่องรหัส" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " "check the recovered C." msgstr "ตรวจสอบคำแนะนำเดิมระบุการป้อนข้อมูลและค่าคงที่แล้วตรวจสอบการกู้คืนซี" -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "ในคู่มือนี้" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4922,7 +4922,7 @@ msgstr "{ph0}ตัวอย่าง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4930,7 +4930,7 @@ msgstr "{ph0}สอบถามตัวแทนของคุณ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4938,7 +4938,7 @@ msgstr "{ph0}อ่าน REA ผลลัพธ์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4946,18 +4946,18 @@ msgstr "{ph0}กู้คืนและตรวจสอบ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "คำนวณตำแหน่งเสียงสเตอริโอซ้าย/ขวา" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4968,7 +4968,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4979,7 +4979,7 @@ msgstr "" "ฟังก์ชั่นเริ่มต้น, {ph0} มีผลแยกคอมไพเลอร์สั้น:เรียกฟังก์ชันไป {ph1}. REA " "งกลับคำแนะนำและเรียกฟังก์ชันซึ่งให้ตัวแทนวิธีการตรวจสอบเลขคณิตที่ขาดหายไป" -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "ใหม่กับเงื่อนไขเหล่านี้?" @@ -4988,7 +4988,7 @@ msgstr "ใหม่กับเงื่อนไขเหล่านี้?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5000,7 +5000,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5013,7 +5013,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5025,7 +5025,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5035,7 +5035,7 @@ msgstr "{ph0}ที่อยู่:{ph1} ตำแหน่งในโปรแ #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5044,7 +5044,7 @@ msgid "" msgstr "" "{ph0}ค่าคงที่:{ph1} ตัวเลขคงที่เก็บไว้ในโปรแกรมอ่านเป็นไบต์ดิบและถอดรหัส" -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "สามชิ้นของหลักฐานหนึ่งการคำนวณ" @@ -5055,7 +5055,7 @@ msgstr "สามชิ้นของหลักฐานหนึ่งกา #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5071,7 +5071,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5089,7 +5089,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5099,7 +5099,7 @@ msgstr "" "{ph0}03·ไบต์ข้อมูล{ph1}{ph2}ค่าคงที่เป็นตัวเลข{ph3}{ph4}ไบต์อ้างอิงถอดรหัสไป" " {ph5}, {ph6} และค่าสเกล{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5108,7 +5108,7 @@ msgstr "" "REA ให้คำแนะนำ,ความสัมพันธ์การเรียกฟังก์ชันและไบต์. " "เจ้าหน้าที่ตีความพวกเขาด้วยกัน" -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "ถามเกี่ยวกับพฤติกรรม" @@ -5117,7 +5117,7 @@ msgstr "ถามเกี่ยวกับพฤติกรรม" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5128,19 +5128,19 @@ msgstr "" "{ph2}การตั้งค่าเครื่องมือวิเคราะห์พื้นเมือง{ph3} " "ให้ปฏิบัติการในท้องถิ่นและคำถาม:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "ฉันควรใช้เครื่องมือวิเคราะห์ใด" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA การศึกษาและการติว,อังกฤษ(สหราชอาณาจักร),อังกฤษ(สหรัฐอเมริกา):" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5154,7 +5154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5166,7 +5166,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5176,7 +5176,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5191,14 +5191,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "คัดลอก" @@ -5209,7 +5209,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5219,7 +5219,7 @@ msgstr "" "{ph0}›{ph1}{ph2}ใช้ REA เพื่อหาวิธีการ DX-Ball คำนวณเสียงแพน " "อธิบายการคำนวณและแสดงรหัส{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5231,7 +5231,7 @@ msgstr "" "เพื่อใช้สำเนาของคุณเองหรือถามชนิดเดียวกันของคำถามเกี่ยวกับขนาดเล็กอื่น " "Windows โปรแกรมที่คุณมี" -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "ฉันจะได้รับเส้นทางเต็มของแฟ้มได้อย่างไร" @@ -5240,7 +5240,7 @@ msgstr "ฉันจะได้รับเส้นทางเต็มขอ #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5254,7 +5254,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5266,7 +5266,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5275,17 +5275,17 @@ msgid "" msgstr "" "{ph0}ระบบใดๆ:{ph1} ลากไฟล์ลงในหน้าต่างเทอร์มินัลและเส้นทางของมันจะปรากฏขึ้น" -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "อ่าน REA ผลลัพธ์" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "อ่านข้อมูล" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5294,13 +5294,13 @@ msgstr "" "คำแนะนำโหลดอาร์กิวเมนต์จำนวนเต็มและแปลงสำหรับเลขคณิตจุดลอยตัว " "นี่คือการป้อนข้อมูลที่ขาดจากมุมมองหลอกแรก" -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "ติดตามฟังก์ชันที่เรียก" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5310,12 +5310,12 @@ msgstr "" "REA ระบุตัวฟังก์ชันที่เรียกหาอิฐ คำแนะนำก่อนหน้านี้คูณกระเบื้องประสานงานด้วย" " 30;เพิ่ม {ph0} (20)ให้ตำแหน่งหน้าจอของอิฐ" -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "อ่านค่าคงที่อ้างอิง" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5324,12 +5324,12 @@ msgstr "" "คณิตศาสตร์อ้างอิงที่อยู่เหล่านี้ " "การอ่านไบต์เป็นค่าจริงลำดับคำสั่งจะบอกเอเจนต์ว่ามีการใช้งานอย่างไร" -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "เขียนและตรวจสอบฟังก์ชั่นการกู้คืน" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5340,7 +5340,7 @@ msgstr "" "ก่อนที่จะแปลงจำนวนเต็ม " "การคำนวณทำให้ศูนย์กลางของหน้าจอที่ศูนย์กลางของสนามสเตอริโอ" -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5352,21 +5352,21 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" "{ph0}เครื่องชั่งสำหรับธุรกิจค้าปลีกอาหารเครื่องชั่งคิดราคาเครื่องชั่งติดป้ายราคา{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "ลองใช้ไบนารีของคุณเอง" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5379,7 +5379,7 @@ msgstr "" "แล้วให้ตัวแทนของคุณปฏิบัติการในท้องถิ่นหรือห้องสมุดและคุณลักษณะในการตรวจสอบ " "คำถามเริ่มต้นที่มีประโยชน์รวมถึง\"วิธีการคือไฟล์นี้แยก?\"หรือ\"ฟังก์ชั่นใดที่จัดการกับการกระทำของเมนูนี้”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5388,13 +5388,13 @@ msgstr "" "ถ้าคุณรู้อยู่แล้วว่าชื่อฟังก์ชั่นหรือที่อยู่คุณสามารถสอบถามได้จากขั้ว " "สำหรับการกำหนดค่า Ghidra การติดตั้ง:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "การวิเคราะห์ฟังก์ชัน" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5407,7 +5407,7 @@ msgstr "" "CLI การอิมพอร์ตการเรียกใช้และการวิเคราะห์ไบนารีแล้วปิดเซสชัน ตัวแทนของคุณ " "MCP การสืบค้นข้อมูลใช้ไบนารีที่นำเข้าอีกครั้งในขณะที่เซสชันนั้นเปิดอยู่" -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5430,50 +5430,50 @@ msgstr "" "กู้คืนการคำนวณพื้นเมืองด้วย " "REA:ตรวจสอบคำแนะนำตามโทรอ่านค่าคงที่และตรวจสอบการสร้างขึ้นใหม่ซี" -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "การวิเคราะห์โปรแกรมเครื่องรหัส" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "คัดลอกตัวอย่างพรอมต์" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "คัดลอกการวิเคราะห์ฟังก์ชัน" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "ตั้งค่า REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5481,7 +5481,7 @@ msgstr "{ph0}ตั้งค่า REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5489,7 +5489,7 @@ msgstr "{ph0}เกมไดโนเสาร์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5497,7 +5497,7 @@ msgstr "{ph0}เครื่องคิดเลข{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5505,25 +5505,25 @@ msgstr "{ph0}ลองดู REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}ศึกษาเพิ่มเติม{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "วิศวกรรมย้อนกลับกับตัวแทนการเข้ารหัสของคุณ" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "เรียนรู้ว่า{ph0}ซอฟต์แวร์ทำงานอย่างไร" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "วางพรอมป์ต์นี้ในผู้ช่วยเขียนโค้ด AI ของคุณ:" @@ -5536,33 +5536,33 @@ msgstr "วางพรอมป์ต์นี้ในผู้ช่วยเ #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "คัดลอก" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "หรือรันคำสั่งนี้ในเทอร์มินัล:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "ตรวจสอบและอนุมัติแผนการตั้งค่า แล้วเริ่มผู้ช่วยใหม่" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5570,7 +5570,7 @@ msgstr "{ph0}01{ph1} ถอดรหัสสาขา" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5578,7 +5578,7 @@ msgstr "{ph0}02{ph1} ติดตามการโทร" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5588,20 +5588,20 @@ msgstr "{ph0}03{ph1} กู้คืนกฎ" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}ต้นฉบับ 64·เลือกคำแนะนำ{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01·สาขาใด?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5611,29 +5611,29 @@ msgstr "" "“{ph0}0*5 บาท? 0*5 องศาเซลเซียส?{ph1} สองกระโดดไปยังสถานที่เดียวกัน " "ผู้ประกอบการคนไหน”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "ค้นหารหัสคำสั่งแล้วติดป้ายชื่อสาขา" -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "แบ่ง÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "คูณ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · ฟังก์ชันที่เรียกทำอะไร?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5643,24 +5643,24 @@ msgstr "" "\"100 เป็นที่ชัดเจน การโทรเป็นแค่ที่อยู่ {ph0}อันไหนแบ่งกัน? " "ซึ่งค่าไปใน?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "ตรวจสอบฟังก์ชั่นผู้ช่วยและติดตามค่าที่เก็บไว้" -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "แบ่ง" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03·กฎคืออะไร?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5670,19 +5670,19 @@ msgstr "" "\"เส้นทางนี้คูณด้วยอินพุตอื่นๆ แล้ว {ph0}10%หมายถึง 10%ของ 200{ph1} " "หลังจาก+.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "ตั้งชื่อตัวดำเนินการและตรวจสอบเส้นทางตัวดำเนินการทั้งสอง" -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "เหตุผลผู้เชี่ยวชาญที่เป็นตัวอย่าง" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5698,87 +5698,87 @@ msgstr "{ph0}คุณถอดรหัสคำแนะนำตามสา #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "คำตอบตัวอย่าง·ขึ้นอยู่กับการค้นพบ" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "ข้อมูลที่ REA ให้" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "คำแนะนำของผู้จัดการถอดรหัสและการโทร" -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "สิ่งที่ผู้ช่วยอธิบาย" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "ซึ่งสาขาที่ใช้สิ่งที่มันคำนวณและวิธีการที่จะสร้างมัน" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "ตัวอย่าง 01*Chromeเกมไดโนเสาร์" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "ทำไมไดโนเสาร์จึงวิ่งเร็วขึ้น?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "เล่น" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "กระโดด ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "เริ่มใหม่" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "ความเร็ว" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "ใช้กฎการเร่งการกู้คืน" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "กฎเดิม:เริ่มต้นที่ 6 จากนั้นเพิ่มขึ้นถึง 13" -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5790,7 +5790,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5803,18 +5803,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "ตรวจสอบเป้าหมาย: {ph0}วายู Chromium-รุ่นเบราว์เซอร์ที่ได้มา{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "เปิดห้องปฏิบัติการความเร็ว→" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "สิ่งที่แต่ละส่วนทำ" @@ -5825,7 +5825,7 @@ msgstr "สิ่งที่แต่ละส่วนทำ" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5841,7 +5841,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5856,7 +5856,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5865,13 +5865,13 @@ msgid "" msgstr "" "{ph0}03·คุณ{ph1}{ph2}เปลี่ยนความเร็วและเล่น{ph3}{ph4}ลองเร่งเดิมแล้วเลือกก้าวของคุณเอง{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "ดูสคริปต์การตรวจสอบและวิธีการลองวิเคราะห์" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5881,7 +5881,7 @@ msgstr "" "REA ตรวจสอบรุ่นเบราว์เซอร์ผ่านการเชื่อมต่อดีบักท้องถิ่นและส่งกลับโหลด {ph0} " "รวมทั้งแหล่งที่มาและย่อย" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5894,7 +5894,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5910,7 +5910,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5927,7 +5927,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5935,34 +5935,34 @@ msgid "" msgstr "" "{ph0}ตรวจสอบรหัสความเร็ว{ph1} · {ph2}Chromium ผู้เขียน·ใบอนุญาตบีเอส{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "ตัวอย่าง 02*Windowsเครื่องคิดเลข" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "สร้างปุ่ม % ของเครื่องคิดเลขขึ้นใหม่" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "รีเซ็ต" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10%ของ 200=20. จากนั้น 200+20=220" -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "ภาพประกอบโต้ตอบของกฎร้อยละตรวจสอบ" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5974,7 +5974,7 @@ msgstr "สำหรับตัวอย่างนี้, {ph0} และ {ph #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5985,7 +5985,7 @@ msgstr "" "{ph0}›{ph1}{ph2}ใช้ REA เพื่อตรวจสอบ Windows ปุ่ม%ของเครื่องคิดเลข " "กู้คืนกฎหลังจาก+และ×แล้วสร้างเครื่องคิดเลขขนาดเล็กที่ใช้ทั้งสอง{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "ด้วย+" @@ -5993,13 +5993,13 @@ msgstr "ด้วย+" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "กับ×" @@ -6007,13 +6007,13 @@ msgstr "กับ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "จากแอปที่ติดตั้งไปยังปุ่ม%การทำงาน" @@ -6025,7 +6025,7 @@ msgstr "จากแอปที่ติดตั้งไปยังปุ่ #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6043,7 +6043,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6053,12 +6053,12 @@ msgid "" msgstr "" "{ph0}03·ตัวแทนของคุณตีความมัน{ph1}{ph2}อธิบายและทำซ้ำกฎ{ph3}{ph4}ตรวจสอบสาขาที่มีแหล่งที่มาของไมโครซอฟท์,แล้วลอง+และ×ข้างต้น.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "ดูรหัสจริงและวิธีการตรวจสอบคำตอบ" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6078,7 +6078,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6088,17 +6088,17 @@ msgstr "" "{ph0}การดำเนินงานร้อยละ{ph1} · {ph2}กรณีทดสอบของไมโครซอฟท์{ph3} · " "{ph4}คู่มือการติดตั้งพื้นเมือง{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "การสืบสวนครั้งแรกของคุณ" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "ลองดู REA บนแอปขนาดเล็ก" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6107,17 +6107,17 @@ msgstr "" "ดาวน์โหลดตัวอย่างบันทึกของเรา,ติดตามของ CSV " "ส่งออกและตรวจสอบการป้อนข้อมูลที่มีการเปลี่ยนแปลงอย่างใดอย่างหนึ่ง" -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "ลองตัวอย่างที่แนะนำ" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "โปรแกรมเครื่องรหัส" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6125,34 +6125,34 @@ msgid "" msgstr "" "ตรวจสอบฟังก์ชัน,สตริง,การอ้างอิงและเรียกฟังก์ชันความสัมพันธ์ในปฏิบัติการและไลบรารี." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "คู่มือการวิเคราะห์โปรแกรมเครื่องรหัส" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "การประมวลผลข้อมูล,คีย์ข้อมูล,การพิมพ์ดีดคัดลอก ASAR ยวข้อง" -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "เวิร์กโฟลว์แอ็พพลิเคชัน" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "เบราว์เซอร์และรันไทม์กิจกรรม" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6160,12 +6160,12 @@ msgid "" msgstr "" "จับภาพกิจกรรมของเบราว์เซอร์หรือกระบวนการที่เลือกแล้วเปรียบเทียบผลลัพธ์ข้ามรัน" -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "คู่มือการสังเกตเบราว์เซอร์" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "มีคำถามไหม?" @@ -6184,54 +6184,54 @@ msgstr "" "แอพพลิเควิศวกรย้อนกลับ,ไบนารีและพฤติกรรมเบราว์เซอร์กับตัวแทนการเข้ารหัสของคุณ" " ทำตามคำแนะนำที่ชัดเจนและลองตัวอย่างแบบโต้ตอบกับ REA." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "คัดลอก REA พร้อมท์การติดตั้ง" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "คัดลอกคำสั่งการตั้งค่า" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "ปฏิบัติตามคู่มือการวิเคราะห์เครื่องคิดเลข" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "คัดลอกคำถามร้อยละเครื่องคิดเลข" -#: website/public/index.html:653 +#: website/public/index.html:659 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:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "คัดลอกไดโนเสาร์พร้อมท์วิเคราะห์" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "เลือกการคำนวณ" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "คัดลอกการวิเคราะห์เครื่องคิดเลขพร้อมท์" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -6240,25 +6240,25 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "กรณีศึกษา·Aegisตรวจสอบความถูกต้อง" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "เครื่องพิสูจน์ตัวตนอย่างไร{ph0}สร้างรหัสล็อกอิน?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6267,17 +6267,17 @@ msgstr "" "รหัสหกหลักเปลี่ยนทุก 30 วินาที ใช้ REA เพื่อหาการคำนวณในAndroid APK " "แล้วสร้างมันด้วยนาฬิกาที่คุณสามารถควบคุม" -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 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 ล้านบาท" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "ดู Aegis บน GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "จาก APK รหัสที่คุณสามารถทำซ้ำ" @@ -6288,7 +6288,7 @@ msgstr "จาก APK รหัสที่คุณสามารถทำซ #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6306,7 +6306,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6323,7 +6323,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6334,14 +6334,14 @@ msgstr "" "{ph0}03·สร้างและตรวจสอบ{ph1}{ph2}เปลี่ยนนาฬิกา " "ดูรหัส{ph3}{ph4}การสาธิตเบราว์เซอร์ใหม่ทำซ้ำกฎและตรวจสอบกับกรณีการอ้างอิงสาธารณะ{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "กรณีศึกษา" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6349,7 +6349,7 @@ msgstr "{ph0}สอบถามตัวแทนของคุณ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6357,7 +6357,7 @@ msgstr "{ph0}ลองสร้างรหัส{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6365,7 +6365,7 @@ msgstr "{ph0}ค้นหารหัสด้วย REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6373,7 +6373,7 @@ msgstr "{ph0}อ่านการคำนวณ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6381,20 +6381,20 @@ msgstr "{ph0}ตรวจสอบการฟื้นฟู{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "สอบถามตัวแทนของคุณ" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6412,14 +6412,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "คัดลอก" @@ -6427,7 +6427,7 @@ msgstr "คัดลอก" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6437,7 +6437,7 @@ msgstr "" "พรอมป์ต์ตัวอย่างสำหรับ APK ที่ดาวน์โหลดมา ให้ตั้งค่าการวิเคราะห์ Android ของ" " REA ก่อน {ph0}ดาวน์โหลด APK และการตั้งค่าการวิเคราะห์ ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "ลองสร้างรหัส" @@ -6445,7 +6445,7 @@ msgstr "ลองสร้างรหัส" # Reviewed for concrete meaning, software terminology and readable sentences. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6457,33 +6457,33 @@ msgstr "" "แล้วนำหมายเลขช่วงเวลากับคีย์บัญชีมาสร้างรหัส " "คีย์เดียวกันและช่วงเวลาเดียวกันจะให้รหัสเดียวกัน" -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "ย้ายนาฬิกาข้าม 60 วินาที" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "เวลา" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "วินาที" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "นาฬิกาตัวอย่างที่สามารถปรับได้ของเรา" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "บล็อก 30 วินาที" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "บล็อก" @@ -6492,35 +6492,35 @@ msgstr "บล็อก" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "รหัสที่สร้างขึ้น" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "คีย์บัญชี+บล็อก six หกหลัก" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "ตัวอย่างเวลาในไม่กี่วินาที" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 วินาที" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 วินาที" @@ -6529,7 +6529,7 @@ msgstr "60 วินาที" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6541,7 +6541,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6551,25 +6551,25 @@ msgstr "" "คีย์ได้รับการแก้ไขสาธารณะ {ph0}6238 ข้อมูลการทดสอบ{ph1}. " "การสาธิตดำเนินการคำนวณกู้คืนจาก APK." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 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:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "ค้นหารหัสด้วย REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "แคบ APK ถึงสามชั้นเรียน" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6579,14 +6579,14 @@ msgstr "" "{ph0} เป็นผู้สมัครคำนวณ;อีกสองกังวลแถบความคืบหน้าและบัญชีที่นำเข้า TOTP " "หมายถึงรหัสผ่านแบบครั้งเดียวตามเวลา" -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "เชื่อมต่อเครื่องกำเนิดไฟฟ้าเข้ากับจอแสดงผลของแอป" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6597,7 +6597,7 @@ msgstr "" "{ph0} จากนั้นแสดงการโทรจอแสดงผล {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6606,14 +6606,14 @@ msgid "" msgstr "" "คำขอแสดงเส้นทางอินพุตที่สั้นลง ชื่อชั้นผลลัพธ์ละเว้นทั่วไป {ph0} คำนำหน้า" -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "อ่านการคำนวณ" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6627,7 +6627,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6635,7 +6635,7 @@ msgstr "{ph0}01{ph1} บล็อกเวลา" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6643,7 +6643,7 @@ msgstr "{ph0}02{ph1} กุญแจ+บล็อก" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6651,7 +6651,7 @@ msgstr "{ph0}03{ph1} หกหลัก" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6663,7 +6663,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6676,7 +6676,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6690,7 +6690,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6700,7 +6700,7 @@ msgstr "" "ตัดตอนมาจากหลายวิธีการตรวจสอบที่มีการตัดสายสำหรับการแสดงผล " "แผงด้านขวาเป็นบทสรุปอธิบาย {ph0}Aegis รหัสคือจีพีแอล-3.0{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Insideในเครื่องกำเนิดไฟฟ้า" @@ -6709,7 +6709,7 @@ msgstr "Insideในเครื่องกำเนิดไฟฟ้า" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6719,7 +6719,7 @@ msgstr "" "เปิดตัว APK ทำให้ {ph0} ใน {ph1}. REA ตามสายจาก {ph2} " "และส่งกลับร่างกายนี้แหล่งที่มาเดิมเรียกผู้ช่วย {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6735,20 +6735,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "ตรวจสอบการฟื้นฟู" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6760,29 +6760,29 @@ msgstr "" "ผลผลิตของพวกเขาตรงกับการฟื้นฟูอิสระ {ph0}133 กรณีทดสอบ{ph1} " "รวมถึงขอบเขตเวลาบล็อกและรหัสที่เริ่มต้นด้วยศูนย์" -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "ตัวอย่างเวลา" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "รหัสหกหลัก" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 วินาที" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 วินาที" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6792,24 +6792,24 @@ msgstr "" "เครื่องกำเนิดไฟฟ้ายังตรงกับหกตีพิมพ์ SHA-1 กรณีอ้างอิงใน {ph0}6238{ph1}. " "ตรวจสอบการใช้เบราว์เซอร์กับพวกเขา:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "เรียกใช้การตรวจสอบอ้างอิง" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "อ่านการคำนวณการสาธิต" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 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:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6818,14 +6818,14 @@ msgstr "" "การตรวจสอบการทำงานแยกวิธีการจาวาและการสาธิตใหม่ Android APK " "ได้รับการตรวจสอบแบบคงที่" -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "ตรวจสอบ APK ตัวคุณเอง" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6838,7 +6838,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6846,18 +6846,18 @@ msgid "" "{ph1}. This case used JDK 21." msgstr "17 หรือสูงกว่า เลือกด้วย {ph0} หรือ {ph1}. คดีนี้ใช้เจดีเค 21" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6869,7 +6869,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6879,7 +6879,7 @@ msgstr "" "คำถามต่อไป: " "{ph0}จะเกิดอะไรขึ้นเมื่อบัญชีใช้ตัวเลขแปดหลักหรือช่วงเวลาที่แตกต่างกัน{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "แหล่งที่มา" @@ -6895,7 +6895,7 @@ msgstr "แหล่งที่มา" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6909,13 +6909,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}กรณีอ้างอิง 6238{ph1} · {ph2}ข้อมูลการทดสอบการสาธิต{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6940,37 +6940,37 @@ msgstr "" "ตรวจสอบที่AegisAndroidAPKกับREA,ฟื้นคืนของมันหก-ตัวเลขล็อกอิน-รหัสการคำนวณและลองชิ้นกับ" " comment." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK กรณีศึกษา" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "คัดลอก Aegis ตัวอย่างพรอมต์" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "ติดตามการคำนวณการเข้าสู่ระบบรหัส" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "คัดลอก APK คำสั่งการตรวจสอบ" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -6979,26 +6979,26 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}บ้าน{ph1} / {ph2}โชว์เคส{ph3} /ซีทีเอฟ" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "กรณีศึกษา·ดาวน์ดันเดอร์ซีเอฟ 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "หาธงใน{ph0}ไบนารีซีทีเอฟ" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7009,17 +7009,17 @@ msgstr "" "ในการตรวจสอบตัวตรวจสอบธงขนาดเล็ก,เปิดกฎของมันเป็นสมการและหาอินพุตที่ทำให้ก " "{ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "สี่เหลี่ยมสวมหน้ากากตรวจสอบธง*ง่าย · Linux 86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "ดูความท้าทายเดิม" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "จากไบนารีถึงคำตอบที่ถูกตรวจสอบ" @@ -7030,7 +7030,7 @@ msgstr "จากไบนารีถึงคำตอบที่ถูกต #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7047,7 +7047,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7065,7 +7065,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7076,21 +7076,21 @@ msgstr "" "{ph0}03*แก้ปัญหาและเรียกใช้{ph1}{ph2}กู้คืนธงยุคที่ถูกต้อง!{ph3}{ph4}สคริปต์หลามแก้สมการ" " REA จับโปรแกรมต้นฉบับที่ยอมรับผลลัพธ์{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" "ความท้าทายคือโจเซฟเผยแพร่ในพื้นที่เก็บข้อมูลอย่างเป็นทางการของดาวันเดอร์ซีฟ" -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "กรณีศึกษา" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7098,7 +7098,7 @@ msgstr "{ph0}ค้นหารหัสตรวจสอบ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7106,7 +7106,7 @@ msgstr "{ph0}อ่านหนึ่งหน้ากาก{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7114,7 +7114,7 @@ msgstr "{ph0}ประกอบรหัสที่อ่านได้{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7122,7 +7122,7 @@ msgstr "{ph0}แก้สมการ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7130,20 +7130,20 @@ msgstr "{ph0}ตรวจสอบคำตอบ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}ลองด้วยตัวคุณเอง{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "ค้นหารหัสตรวจสอบ" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7161,17 +7161,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "คัดลอก" @@ -7182,7 +7182,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7194,7 +7194,7 @@ msgstr "" "วิจัย,การเขียนทางเทคนิค,การเขียนรายงาน,การเขียนเชิงวิชาการ " "อธิบายวิธีการตรวจสอบการทำงานแล้วตรวจสอบคำตอบด้วยโปรแกรมต้นฉบับ{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7202,12 +7202,12 @@ msgid "" msgstr "" "พร้อมท์ตัวอย่างกับความท้าทายดาวน์โหลดพร้อมใช้งานภายในและการวิเคราะห์ผู้ให้บริก" -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "ทำตามพร้อมท์อินพุตไปยังฟังก์ชัน" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7215,14 +7215,14 @@ msgid "" msgstr "" "การอ้างอิงให้ตัวแทนสถานที่ในการตรวจสอบแม้ว่าชื่อฟังก์ชันเดิมของปฏิบัติการได้ถูกลบออก" -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "อ่านตรวจสอบและสองผู้ช่วย" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7234,7 +7234,7 @@ msgstr "" "ห่วงการตรวจสอบถอดรหัสหน้ากากรวมรหัสที่เลือกและเปรียบเทียบผลกับหมายเลขที่เก็บไว้" " มัน {ph0}-ขั้นตอนไบต์ข้าม {ph1} ไบต์ให้ 26 มาสก์" -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7244,12 +7244,12 @@ msgstr "" "เส้นทางเป้าหมายท้องถิ่นจะสั้นลงสำหรับการแสดงผล;ที่อยู่อ้างถึง " "REAของภาพที่นำเข้า" -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "หนึ่งตรวจสอบเผยตัวละครตัวหนึ่ง" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7261,13 +7261,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "อ่านหน้ากากและเป้าหมายจากไบนารี" @@ -7276,7 +7276,7 @@ msgstr "อ่านหน้ากากและเป้าหมายจา #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7288,12 +7288,12 @@ msgstr "" "หมายถึง -21 เป้าหมายคือจำนวนเต็มเอนเดียนน้อย ร่วมกันไบต์เหล่านี้บอกตัวแทนที่" " {ph2} เพื่อให้ตัวละครที่เป็น {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "จากคำแนะนำในการตรวจสอบที่อ่านได้" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7303,7 +7303,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7311,7 +7311,7 @@ msgstr "{ph0}01{ph1} เริ่มต้น" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7319,7 +7319,7 @@ msgstr "{ph0}02{ph1} เลือก" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7327,7 +7327,7 @@ msgstr "{ph0}03{ph1} เพิ่ม" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7335,18 +7335,18 @@ msgstr "{ph0}04{ph1} ล่วงหน้า" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} เปรียบเทียบ" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA *เลือกคำแนะนำเดิม" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "อ่านค·สรุปหนึ่งตรวจสอบ" @@ -7354,7 +7354,7 @@ msgstr "อ่านค·สรุปหนึ่งตรวจสอบ" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7362,7 +7362,7 @@ msgstr "{ph0}01*เริ่มที่ศูนย์{ph1} {ph2} ถือผ #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7373,7 +7373,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7385,7 +7385,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7399,7 +7399,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7409,7 +7409,7 @@ msgstr "" "{ph0}05*เปรียบเทียบกับเป้าหมายที่เก็บไว้{ph1} ฟังก์ชั่นการโทรได้รับผลรวมใน " "{ph2}. ไม่ตรงกันกระโดดไป {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7418,12 +7418,12 @@ msgstr "" "คำแนะนำมาจากผู้ช่วยข้อสรุปและฟังก์ชั่นการเรียก " "คเป็นบทสรุปอธิบายที่มีชื่ออธิบายและแบนลูป 36 เซลล์" -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "แก้สมการ 26" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7434,13 +7434,13 @@ msgstr "" "รหัสอักขระและต้องมีทั้งหมด 1441 " "การเลือกที่ทับซ้อนกันให้สมการที่สคริปต์หลามขนาดเล็กสามารถแก้ร่วมกัน" -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "งูหลาม*ตัดตอนแก้" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7454,19 +7454,19 @@ msgstr "" "ธงที่มีตัวอักษรตัวเลขขีดและวงเล็บ ดาวน์โหลดที่สมบูรณ์รวมถึงทั้งหมด 26 " "หน้ากากและเป้าหมาย" -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "ดาวน์โหลดแก้ที่สมบูรณ์" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "ตรวจสอบคำตอบด้วยโปรแกรมต้นฉบับ" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7478,47 +7478,47 @@ msgstr "" "เปลี่ยนตัวอักษรที่เลือกจาก {ph0} ถึง {ph1} ทำให้ผลรวมแรก 1440 แทน 1441 " "และโปรแกรมปฏิเสธมัน" -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "อินพุต" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "ผลลัพธ์ที่สังเกต" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "รหัสออก" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "ธงของแก้" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "ตัวละครตัวหนึ่งเปลี่ยนไป" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "แสดงธงที่กู้คืนและเอาท์พุทที่จับ" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA*เอาท์พุทโปรแกรมต้นฉบับ" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "คัดลอกธง" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7526,12 +7526,12 @@ msgid "" msgstr "" "ค่าที่กู้คืนยังตรงกับธงในการเผยแพร่ข้อมูลเมตาความท้าทายของผู้จัดงาน,ตรวจสอบหลังจ" -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "แหล่งที่มาอัตลักษณ์เป้าหมายและรายละเอียดการวิเคราะห์" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7541,7 +7541,7 @@ msgstr "" "เพิ่งวิเคราะห์และสองระบวนการจับภาพใน 8 ตุลาคม 2026 ใช้REA4.1.0 " "กับGhidra12.1.4 บLinuxx64. 86-64 เอลฟ์ 15,248 ไบต์" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7563,7 +7563,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7573,12 +7573,12 @@ msgstr "" "{ph0}เปรียบเทียบกับแหล่งที่มาของผู้จัดงาน{ph1} · " "{ph2}ท้าทายข้อมูลเมตาและธง{ph3} · {ph4}REA บันทึกหลักฐาน{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "ลองด้วยตัวคุณเอง" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7587,13 +7587,13 @@ msgstr "" "ดาวน์โหลดความท้าทายเดิมและแก้ลงในโฟลเดอร์หนึ่ง " "ใช้พร้อมท์ข้างต้นเพื่อตรวจสอบกับตัวแทนของคุณหรือเรียกใช้สคริปต์ที่รวมอยู่" -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "เทอร์มินัล*แก้ปัญหาและเรียกใช้" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7604,7 +7604,7 @@ msgstr "" "สคริปต์พิมพ์ธงผู้สมัครวางไว้ที่พรอมต์ของโปรแกรม การแก้ความต้องการงูหลามและ " "{ph0}. การเรียกใช้ความต้องการที่ปฏิบัติการเดิม Linux จำนวน 86-64" -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "ตั้งค่า REA กับตัวแทนการเขียนโค้ดของคุณ" @@ -7624,27 +7624,27 @@ msgstr "" "ใช้ REA ธง " "หาฟังก์ชั่นการตรวจสอบสารสกัดจากหน้ากากและเปรียบเทียบธงกู้คืนกับโปรแกรมเดิม" -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "กรณีศึกษา" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "พร้อมท์ตัวอย่างการคัดลอก" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "สมการหน้ากากซีทีเอฟ;เลื่อนในแนวนอนบนหน้าจอขนาดเล็ก" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7655,42 +7655,42 @@ msgstr "" "เฉพาะเซลล์ที่ก่อให้เกิดผลรวม รหัสอักขระที่จำเป็นคือ 55 " "ซึ่งหมายความว่าอักขระคือ 7" -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "ทำตามการตรวจสอบซีทีเอฟ" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "คัดลอก" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "คัดลอกตรวจสอบซีทีเอฟที่อ่านได้" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "คัดลอก" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "คัดลอกกู้คืนธง" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "คัดลอกคำสั่งแก้" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -7699,26 +7699,26 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "กรณีศึกษา · DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "การฟื้นฟู DX-Ball{ph0}จากปฏิบัติการของ" # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7727,14 +7727,14 @@ msgstr "" "เป้าหมายคือสร้างเกม Windows ปี 1996 ขึ้นใหม่ด้วยโค้ด C ที่ดูแลต่อได้ REA " "ช่วยให้เอเจนต์วิเคราะห์ฟังก์ชันในโปรแกรมต้นฉบับทีละฟังก์ชัน" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows ไอ386·ซี · REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7746,14 +7746,14 @@ msgstr "" "งานธุรการงานทรัพยากรบุคคล>งานธุรการงานการจัดการทั่วไปงานธุรการงานทรัพยากร " "{ph0}เปิดรูป{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "กรณีศึกษา" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7761,7 +7761,7 @@ msgstr "{ph0}โครงการ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7769,7 +7769,7 @@ msgstr "{ph0}แพนเสียง{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7777,23 +7777,23 @@ msgstr "{ph0}การตรวจสอบผลลัพธ์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "รักษาฟังก์ชัน C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "เปรียบเทียบกับรหัสเดิม" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "ฟังก์ชั่นที่มีการจับคู่ไบต์ที่รวบรวมไว้" @@ -7804,7 +7804,7 @@ msgstr "ฟังก์ชั่นที่มีการจับคู่ไ #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7814,12 +7814,12 @@ msgstr "" "ด่านโครงการ:7 ตุลาคม 2026 {ph0}บัญชีแยกประเภท{ph1} · " "{ph2}ความคุ้มครองการทดสอบ{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "โครงการเพื่อให้ห่างไกล" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7833,12 +7833,12 @@ msgstr "" "ทำงานในเกมที่สามารถเล่นได้อย่างต่อเนื่องกับลูกและพายฟิสิกส์,การจัดการพลังงานขึ้นแ" " Windows บูรณาการ" -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "การหาการคำนวณตำแหน่งเสียงซ้าย/ขวา" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7856,17 +7856,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "คัดลอก" @@ -7877,7 +7877,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7887,7 +7887,7 @@ msgstr "" "{ph0}›{ph1}{ph2}ใช้ REA เพื่อหาวิธีการ DX-Ball คำนวณเสียงแพน " "อธิบายการคำนวณและแสดงรหัส{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7899,7 +7899,7 @@ msgstr "" "แบบสอบถามและหลักฐานที่อยู่เบื้องหลังคำตอบ" # Reviewed for concrete meaning, software terminology and readable sentences. -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7913,7 +7913,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7927,12 +7927,12 @@ msgstr "" "มุมมองการเรียนการสอนแสดงให้เห็นการป้อนข้อมูลสแต็คและการดำเนินงานจุดลอยตัว " "ความขัดแย้งนั้นทำให้ตัวแทนมีเหตุผลที่ชัดเจนที่จะสืบสวนต่อไป" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "มุมมองแยกคอมไพเลอร์แรก" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -7941,18 +7941,18 @@ msgstr "" "ผลลัพธ์แสดงการเรียกร้องการแปลง " "อ่านคำแนะนำด้านล่างแสดงให้เห็นการป้อนข้อมูลและการให้อาหารการคำนวณที่เรียก" -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "สามคำถามตอบผ่าน REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "กู้คืนข้อมูลที่ขาดหายไป" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7962,14 +7962,14 @@ msgstr "" "นะนำควบคู่ไปกับรหัสปลอมและฟังก์ชั่นการเรียก ที่นี่, {ph0} " "แสดงการป้อนข้อมูลจำนวนเต็มที่ขาดหายไปจากมุมมองแยกคอมไพเลอร์" -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "ติดตามฟังก์ชันที่เรียกที่จะเข้าใจการป้อนข้อมูล" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7979,12 +7979,12 @@ msgstr "" "REA ระบุสายนี้ในผลแรก คำแนะนำก่อนหน้านี้ขนาด {ph0} โดย 30;การเพิ่ม 20 " "จะช่วยให้การประสานงานหน้าจออิฐ, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "อ่านค่าที่อยู่เบื้องหลังที่อยู่หน่วยความจำ" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -7993,12 +7993,12 @@ msgstr "" "ไบต์ที่ส่งคืนจะสร้างค่าคงที่ทางคณิตศาสตร์ทั้งสองและขนาดแพนเริ่มต้น " "ตัวแทนตอนนี้มีค่าที่จำเป็นสำหรับนิพจน์ค" -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "จาก REAการค้นพบของค" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8008,7 +8008,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8016,7 +8016,7 @@ msgstr "{ph0}01{ph1} อินพุต" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8024,7 +8024,7 @@ msgstr "{ph0}02{ph1} คูณ" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8032,7 +8032,7 @@ msgstr "{ph0}03{ph1} ลบ" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8040,18 +8040,18 @@ msgstr "{ph0}04{ph1} เครื่องชั่ง" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "ต้นฉบับ 86·ข้อความที่ตัดตอนมา" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "สร้างขึ้นใหม่ค" @@ -8061,7 +8061,7 @@ msgstr "สร้างขึ้นใหม่ค" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8080,7 +8080,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8096,7 +8096,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8113,7 +8113,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8130,7 +8130,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8142,7 +8142,7 @@ msgstr "" "REAผลของแคลลี าการปวดหลังและอาการบวม {ph4};เปรียบเทียบต้นฉบับ-86 " "เทียบตรวจสอบค่าที่ส่งคืน" -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8152,23 +8152,23 @@ msgstr "" "ข้อความที่ตัดตอนมาประกอบเลือกป้อนข้อมูล,คณิตศาสตร์และคำแนะนำกลับมา " "รายการเต็มรูปแบบด้านล่างนอกจากนี้ยังมีร้านค้าแทรกแซงและการตั้งค่าฟังก์ชั่นและการ" -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "ประกอบเต็มรูปแบบและหลักฐานสนับสนุน" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA ผล·0*406400-0*40643" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "สิ่งที่อุปกรณ์โทร" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8178,54 +8178,54 @@ msgstr "" "ฟังก์ชั่นอิฐตีที่ {ph0} เครื่องชั่งน้ำหนักของกระเบื้องประสานงานโดย 30 เพิ่ม " "20 แล้วผลักดันมันก่อนที่จะเรียก:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "สิ่งที่ข้อมูลอ่านสร้าง" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "ที่อยู่" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "ค่า" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "ใช้สำหรับ" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "คูณครั้งแรก" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "การลบ" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} ในตอนแรก" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "ขนาดกระทะที่เก็บไว้" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8241,7 +8241,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8250,12 +8250,12 @@ msgid "" msgstr "" "{ph0}แหล่งบำรุงรักษา{ph1} · {ph2}บันทึกการตรวจสอบและการอ้างอิงหลักฐาน{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "การตรวจสอบฟังก์ชั่นการกู้คืน" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8263,12 +8263,12 @@ msgid "" msgstr "" "ฟังก์ชั่นการกู้คืนผ่านการตรวจสอบสอง:ค่าส่งคืนตรงกับต้นฉบับและไบต์ที่คอมไพล์ตรงกับปฏิ" -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205 กรณีพฤติกรรม" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8279,12 +8279,12 @@ msgstr "" "และเปรียบเทียบค่าตอบแทนของมันกับซีที่เก็บรักษาไว้มันครอบคลุมทุกตำแหน่งจำนวนเต็มตั้งแต่" " 0 ถึง 640 ที่ห้าเครื่องชั่งแพน:0,0.5,1,20 และ -1" -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 ไบต์ที่ตรงกัน" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8294,7 +8294,7 @@ msgstr "" "4.0 " "รีเพลย์คอมไพเลอร์ตรงกับฟังก์ชันที่สมบูรณ์หลังจากใช้การย้ายที่ตรวจสอบและตรวจสอบค่า" -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8308,18 +8308,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "ต่อการสืบสวน" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8328,7 +8328,7 @@ msgid "" msgstr "" "วิธีการเดียวกันจะถูกใช้สำหรับการปรับปรุงอนุภาคคิวการระเบิดและการสร้างโบนัส:ตรวจ" -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8337,7 +8337,7 @@ msgstr "" "เพื่อตรวจสอบฟังก์ชั่นเสียงแพนด้วยตัวคุณเองให้ทำตาม DX-Ball " "คำแนะนำในการติดตั้งของโครงการและจัดหาเป้าหมายเดิมที่ตรงกัน แล้วเรียกใช้:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "ใน DX-Ball ชำระเงิน" @@ -8346,7 +8346,7 @@ msgstr "ใน DX-Ball ชำระเงิน" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8360,7 +8360,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8376,7 +8376,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8399,13 +8399,13 @@ msgstr "" "ทำตาม DX-Ball ฟื้นฟูจากการวิเคราะห์ไบนารีผ่าน REA การทดสอบ 86 " "และการจับคู่ไบต์ฟังก์ชันที่รวบรวมไว้" -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 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:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8418,87 +8418,87 @@ msgstr "" "ครั้งไทล์_เอ็กซ์คำแนะนำในการโหลด,คูณด้วย 1.5625,ลบ 500.0,ใช้แพนสเกลและกลับ " "86 ใน 3,205 กรณีและโดยคอมไพเลอร์รีเพลย์ 4.0 ที่ตรงกับ 63 ไบต์" -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball กรณีศึกษาการฟื้นฟู" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "คัดลอกตัวอย่างพรอมต์" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "ติดตามการคำนวณตำแหน่งเสียงซ้าย/ขวา" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "คัดลอกประกอบต้นฉบับ" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "คัดลอกฟังก์ชั่นเสียงแพน" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "คัดลอกประกอบเสียงแพนที่สมบูรณ์" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "คัดลอกDX-Ballคำสั่งการวิเคราะห์" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}บ้าน{ph1} /ตู้โชว์" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA กรณีศึกษา" -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" " results." msgstr "Android,เกมส์, Electron รหัส,ตัวเลขและผลการตรวจสอบ" -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "แอนดรอยด์ · APK การวิเคราะห์" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "วิธีที่ผู้รับรองความถูกต้องสร้างรหัสล็อกอิน" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8508,22 +8508,22 @@ msgstr "" "ค้นหา Aegisการคำนวณรหัสหกหลักในการเปิดตัวของ APK. ติดตามวิธีการสร้างด้วย REA" " แล้วย้ายนาฬิกาสาธิตเพื่อดูว่าทำไมรหัสการเปลี่ยนแปลงทุก 30 วินาที" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "อ่านกรณีศึกษาAndroid" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "การวิเคราะห์ของโปรแกรมเครื่องรหัส" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "คีย์ข้อมูล,การพิมพ์ดีดคัดลอก" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8533,22 +8533,22 @@ msgstr "" "ตรวจสอบความท้าทายที่ลดลงง่ายด้วย REA. " "ค้นหาฟังก์ชั่นการตรวจสอบของเปิดหน้ากากและผลรวมเป็นสมการแล้วตรวจสอบธงแก้ไข" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "อ่านกรณีศึกษาซีทีเอฟ" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "พื้นเมือง*ฟื้นฟู" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballการคำนวณเสียงแพน" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8558,22 +8558,22 @@ msgstr "" "กู้คืนการคำนวณเสียงกระทะจาก 1996 Windows เกม " "REAล็กการตรวจสอบกับพฤติกรรมเดิมและทั้งหมด 63 ไบต์ที่รวบรวม" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "อ่าน DX-Ball กรณีศึกษา" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron*การติดตามคุณลักษณะ" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "ยังไง Notion คัดลอกข้อความและเอชทีเอ็ม" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8583,22 +8583,22 @@ msgstr "" "ออกแบบกราฟิก,ออกแบบโลโก้ Notionบรรจุ JavaScript. " "การป้องกันไวรัสมัลแวร์และอุปกรณ์ที่หายไปสำหรับมาร์ทโฟนและแท็บเล็" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "อ่าน Notion กรณีศึกษา" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98ดอส*ฟื้นฟู" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "ยังไง TH04 มีจุดมุ่งหมายแหวนกระสุน" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8608,17 +8608,17 @@ msgstr "" "ตรวจสอบผู้ช่วยมุม 16 บิตเดิมด้วย REA. " "นการประสานงานกับแถวคอ่านแล้วดูว่าพวกเขาผลิตแหวนที่มุ่งเป้าไปที่ผู้เล่น" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "อ่าน TH04 กรณีศึกษา" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "คำแนะนำทีละขั้นตอน" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8627,7 +8627,7 @@ msgstr "" "คำแนะนำเดินผ่านการคำนวณพื้นเมืองและ Electron การส่งออกและคำขอเบราว์เซอร์ " "แต่ละคนเริ่มต้นด้วยพรอมต์และเป้าหมายที่เป็นรูปธรรม" -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "อ่านคำแนะนำ" @@ -8646,12 +8646,12 @@ msgstr "" "ทำตาม REA การตรวจสอบผ่านรหัส,ตัวเลขและการสาธิต:การตรวจสอบAndroid, DX-Ball, " "Notion, TH04 และนักตรวจสอบธงขาลง" -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -8660,25 +8660,25 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "กรณีศึกษา · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "ยังไง Notion สำเนา{ph0}ข้อความและเอชทีเอ็ม" -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8688,12 +8688,12 @@ msgstr "" "Notionการเขียนข้อความโฆษณา,การเขียนในนามคนอื่น,บทความ,การเขียนเนื้อหา " "Electronนักเขียนคลิปบอร์ด" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "สะพานภายใน Notionแพ็คเกจเดสก์ท็อป" @@ -8705,7 +8705,7 @@ msgstr "สะพานภายใน Notionแพ็คเกจเดสก #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8722,7 +8722,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8739,7 +8739,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8756,7 +8756,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8767,13 +8767,13 @@ msgstr "" "การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8782,14 +8782,14 @@ msgstr "" "รหัสที่บรรจุใช้ช่องเดียวกันในการโหลดและกระบวนการหลัก การแก้ไขห่อเผยให้เห็น " "Electron เรียกฟังก์ชันตามชื่อพวกนั้น" -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "กรณีศึกษา" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8797,7 +8797,7 @@ msgstr "{ph0}ตามสะพานคลิปบอร์ด{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8805,19 +8805,19 @@ msgstr "{ph0}รักษาโครงสร้างของบล็อก{ #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "การดำเนินการคัดลอกไปที่ไหน?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8836,17 +8836,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "คัดลอก" @@ -8857,7 +8857,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8867,7 +8867,7 @@ msgstr "" "{ph0}›{ph1}{ph2}ใช้ REA เพื่อติดตามวิธีการ Notion อร์ดระบบ " "แสดงรหัสในแต่ละขั้นตอน{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -8876,12 +8876,12 @@ msgstr "" "ตัวอย่างพร้อมท์ด้วย " "Notionแพคเกจโปรแกรมท้องถิ่นที่มีให้ตัวแทนการเข้ารหัสของคุณ" -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA ค้นหาตำแหน่งที่จะเริ่มต้นการอ่าน" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8891,13 +8891,13 @@ msgstr "" "การวิเคราะห์โหลดพรีโหลดแท็บด้วย REA การเรียกที่ส่งคำขอไอพีซี " "การค้นพบทั้งสองมาพร้อมกับช่วงแหล่งที่มาในกลุ่มย่อ:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA ผลการวิจัย→สองสถานที่ที่จะเปิด" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8910,7 +8910,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8924,12 +8924,12 @@ msgstr "" "ชื่อนั้นทำให้ตัวแทนบางสิ่งบางอย่างที่แม่นยำในการค้นหาในกลุ่มหลัก. " "สี่ข้อความที่ตัดตอนมาด้านล่างแสดงเส้นทางที่เชื่อมต่อ." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "สี่ชิ้นสั้นของรหัส" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -8938,13 +8938,13 @@ msgstr "" "ง่ายจากบรรจุ JavaScript มีชื่อตัวแปรที่อ่านได้ " "สมาชิกที่ไม่เกี่ยวข้องจะถูกละเว้น" -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "การเขียนข้อความโฆษณา,การเขียนในนามคนอื่น" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8954,13 +8954,13 @@ msgstr "" "สมาชิกนี้ระบุชื่อช่อง การดำเนินงานของ {ph0} " "บอกเราว่าคำขอออกจากกระบวนการของหน้าเว็บอย่างไร" -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "แก้ไขกระดาษห่อของโหลด" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8970,14 +8970,14 @@ msgstr "" "ฟังก์ชั่นกลับส่งต่ออาร์กิวเมนต์ผ่าน Electronคำขอและการตอบสนองของไอพีซี " "ตอนนี้เราสามารถมองหา {ph0} ในด้านกระบวนการหลัก" -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "ตรวจสอบวิธีการลงทะเบียนผู้รับ" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8987,12 +8987,12 @@ msgstr "" "กระบวนการหลักใช้กระดาษห่ออื่น มัน {ph0} วิธีการลงทะเบียน {ph1} " "รับสัญญาณสำหรับช่องทางที่" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "ค้นหาการเขียนและการตรวจสอบผู้ส่ง" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9003,13 +9003,13 @@ msgstr "" "Electronคลิปบอร์ดเอพีไอ " "ช่องและตัวห่อที่แก้ไขแล้วสองตัวเชื่อมต่อวิธีการเปิดเผยกับสายนี้" -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "บล็อกที่ถูกคัดลอกเก็บโครงสร้างไว้ได้อย่างไร" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9019,27 +9019,27 @@ msgstr "" "Notionแก้ไขข้อความ {ph0}. " "การป้องกันไวรัสในเชิงรุกและการรักษาความปลอดภัยที่จะไปมือถือด้วยความมั่นใจ" -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "เชื่อมโยงไปยังบล็อกข้อมูลที่บันทึกไว้" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "อ่านรหัสเอชทีเอ็มแอล" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "ค้นหารหัสท้องถิ่นเดียวกัน" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "คืนค่า Notion บล็อกข้อมูล" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9048,7 +9048,7 @@ msgstr "" "ข้อความและรหัสตัวอย่าง " "การทดสอบโมดูลที่บันทึกไว้คืนค่าข้อมูลบล็อกเมื่อตรงกับรหัส;รายการเก่าส่งกลับเฉพาะข้อค" -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9057,22 +9057,22 @@ msgstr "" "เมื่อวาง, Notion ตรวจสอบกับสำเนาที่บันทึกไว้ " "รหัสที่ตรงกันจะคืนค่าข้อมูลที่ถูกบล็อก" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "ตัวอย่างและแหล่งที่มาเพิ่มเติม" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "อีกตัวอย่างหนึ่ง:ตารางยอด" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9081,25 +9081,25 @@ msgstr "" "Notion วิเคราะห์ยอดรวมลงในข้อมูลบล็อก " "ตัวอย่างนี้แสดงให้เห็นว่าตารางกลายเป็นแถวส่วนหัวและข้อมูล" -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "ตารางผ่าน Notionวิเคราะห์ยอดรวมของ" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " "and cells." msgstr "ผลลัพธ์ที่บันทึกจากตัวแยกยอดรวม ตารางจะกลายเป็นแถวและเซลล์" -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "เส้นทางอื่น:การเชื่อมต่อแบบออฟไลน์" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9112,7 +9112,7 @@ msgstr "" "กระบวนการหลักสร้างแชแนลข้อความและให้พอร์ตหนึ่งไปยังตัวแสดงผลและอื่นๆไปยังกระบ" " ชุดคำสั่งที่ตามมาและผลการเดินทางผ่านพอร์ตที่" -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9120,7 +9120,7 @@ msgid "" msgstr "" "ต่อไปนี้แฮนด์ออฟนี้อธิบายที่ทำงานฐานข้อมูล,และทำไมการติดตามเพียงการร้องขอไอพีซีเ" -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "แหล่งที่มาและวิธีการอ่านข้อความที่ตัดตอนมา" @@ -9128,7 +9128,7 @@ msgstr "แหล่งที่มาและวิธีการอ่าน #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9146,7 +9146,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9161,7 +9161,7 @@ msgstr "" "สินทรัพย์เหล่านั้นมีเวอร์ชั่นของตัวเอง " "โพรบที่บันทึกไว้ดำเนินการแยกโมดูลและสายรัดขนาดเล็ก;ผลของพวกเขาอธิบายหัววัดเหล่" -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9176,7 +9176,7 @@ msgstr "" "สมาชิกคลิปบอร์ดและรับจับคู่มีการเชื่อมต่อโดยการอ่านการใช้งานห่อของพวกเขาในแพค" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9193,7 +9193,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9207,7 +9207,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9232,52 +9232,52 @@ msgstr "" "ทำตาม Notionของคลิปบอร์ดเอพีไอผ่าน " "Electronโหลดของห่อไอพีซีและกระบวนการหลักที่มีข้อความที่ตัดตอนมารหัสสั้นและดูที่รูปแบบคลิปบอ" -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron กรณีศึกษา" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "คัดลอก Notion พรอมต์การวิเคราะห์" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "คัดลอก Notion โหลดข้อความที่ตัดตอนมา" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "คัดลอก Notion เรียกตัดตอนเสื้อคลุมห่อ" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "คัดลอก Notion ตัวจัดการตัดตอน" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "คัดลอก Notion ข้อความที่ตัดตอนมาจากคลิปบอร์ด" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "การกู้คืนข้อมูลคลิปบอร์ดที่อุดมไปด้วยในการวาง" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -9286,25 +9286,25 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "กรณีศึกษา*ทูโฮ 4:เรื่องโลตัสแลนด์" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9313,17 +9313,17 @@ msgstr "" "แหวนของกระสุนเริ่มต้นด้วยการคำนวณมุมสั้น ใช้ REA " "รวจสอบฟงกชันดอสดั้งเดิมจากนั้นปฏิบัติตามคำแนะนำของฟงกชันดอสที่สามารถอ่านได" -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 ·ดอส 16 บิต·ซีดีและแอสเซมบลี" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "ดู TH04 การฟื้นฟู" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "จากคำแนะนำเดิมไปยังแหล่งที่มาที่ตรวจสอบ" @@ -9334,7 +9334,7 @@ msgstr "จากคำแนะนำเดิมไปยังแหล่ง #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9350,7 +9350,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9367,7 +9367,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9383,7 +9383,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9394,7 +9394,7 @@ msgstr "" "{ph0}04·ตรวจสอบแหล่งที่มา{ph1}{ph2}2,139 " "ไบต์ที่ตรงกัน{ph3}{ph4}ตรวจสอบคอมไพเลอร์ที่บันทึกไว้ครอบคลุมรหัสรุ่นกระสุนที่ประกอบด้วยตัวช่วยนี้{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9403,14 +9403,14 @@ msgstr "" "REA ส่งกลับรหัสต้นฉบับและหลักฐานการวิเคราะห์ ร TH04 " "โครงการอุปกรณ์การบำรุงรักษาแหล่งที่มาและคอมไพเลอร์ตรวจสอบ" -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "กรณีศึกษา" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9418,7 +9418,7 @@ msgstr "{ph0}แหวนกระสุน{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9426,7 +9426,7 @@ msgstr "{ph0}อะไรนะ REA การคืนสินค้า{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9434,7 +9434,7 @@ msgstr "{ph0}การชุมนุมที่จะค++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9442,18 +9442,18 @@ msgstr "{ph0}การตรวจสอบแหล่งที่มา{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}โครงการเต็ม{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "วิธีแหวนเล็งไปที่ผู้เล่น" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9472,16 +9472,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "คัดลอก" @@ -9492,7 +9492,7 @@ msgstr "คัดลอก" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9503,7 +9503,7 @@ msgstr "" "สร้างแหวนของกระสุนและมีจุดมุ่งหมายที่ผู้เล่น " "อธิบายการคำนวณและแสดงรหัส{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9512,7 +9512,7 @@ msgstr "" "พร้อมท์ตัวอย่างด้วยการเช็คเอาท์ที่ปฏิบัติการและการฟื้นฟูเดิมที่มีอยู่ภายใน" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9526,7 +9526,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9536,12 +9536,12 @@ msgstr "" "ภาพประกอบของคณิตศาสตร์มุมกู้คืนสำหรับการนับ 16 ทิศทางผู้เล่น 40 " "และการหมุนแม่แบบ 0 {ph0}เปิดรูป{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "แม่แบบการยิงในแหล่งที่มาที่กู้คืน" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "การโจมตีแหวนของเอลลี่*ที่มาตัดตอนมา" @@ -9550,7 +9550,7 @@ msgstr "การโจมตีแหวนของเอลลี่*ที #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9560,13 +9560,13 @@ msgstr "" "เส้นเหล่านี้เลือกรูปแบบก่อนที่จะปรับความยากลำบากและประสิทธิภาพการทำงาน " "{ph0}อ่านแหล่งที่มาของการโจมตี{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "อะไรนะ REA การคืนสินค้า" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9577,12 +9577,12 @@ msgstr "" "เราตรวจสอบ {ph0} ฟังก์ชั่นที่กำหนดความเร็วและมุมของกระสุน REA " "ส่งคืนคำแนะนำของรหัสปลอมและการอ้างอิง สามส่วนของผลลัพธ์นั้นอธิบายรูปแบบ" -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "ตรวจสอบภาพก่อนอ่านรหัส" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9591,7 +9591,7 @@ msgstr "" "ตรวจสอบผูกโค้ดที่โหลดและระเบียนการย้ายไปยังปฏิบัติการที่ให้มา " "เส้นทางด้านบนจะสั้นลงสำหรับการแสดงผล" -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "อ่านแหวนคูณและหาร" @@ -9599,7 +9599,7 @@ msgstr "อ่านแหวนคูณและหาร" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9610,12 +9610,12 @@ msgstr "" "{ph0} ถือดัชนีกระสุน กะคูณด้วย 256 แล้วส่วนที่ใช้นับอ่านจาก {ph1}. " "ชื่อแหล่งที่มาที่เก็บรักษาไว้ {ph2}. ลำดับที่สมบูรณ์ปรากฏด้านล่าง" -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "หาที่รูปแบบหันไปทางผู้เล่น" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9628,12 +9628,12 @@ msgstr "" "ชื่อแหล่งที่มาทำให้ที่อยู่เหล่านั้นสามารถอ่านได้; REA " "ช่วยให้ตัวแทนตรวจสอบการดำเนินงานเดิมที่อยู่เบื้องหลังพวกเขา" -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "จากการชุมนุมที่จะอ่านค++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9645,7 +9645,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9653,7 +9653,7 @@ msgstr "{ph0}01{ph1} ดัชนี" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9661,7 +9661,7 @@ msgstr "{ph0}02{ph1} อวกาศ" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9669,7 +9669,7 @@ msgstr "{ph0}03{ph1} เล็ง" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9677,18 +9677,18 @@ msgstr "{ph0}04{ph1} หมุน" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} ร้านค้า" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA *คำแนะนำเดิม 16 บิต" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Reอ่านได้ค*สรุปเล็งแหวน" @@ -9696,7 +9696,7 @@ msgstr "Reอ่านได้ค*สรุปเล็งแหวน" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9710,7 +9710,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9725,7 +9725,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9739,7 +9739,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9753,7 +9753,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9766,7 +9766,7 @@ msgstr "" " ค่าห่อหลังจาก 255 เช่นเดียวกับการหล่อไบต์ที่ไม่ได้ลงนามไม่ " "แหล่งที่มาโดยรอบยังแปลงมุมนี้และความเร็วเป็นความเร็ว" -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9778,7 +9778,7 @@ msgstr "" " " "ตรวจสอบคอมไพเลอร์ด้านล่างนำไปใช้กับแหล่งที่มาของการบำรุงรักษาในโครงการที่เชื่" -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "อ่านแหวนที่เก็บรักษาไว้และจุดมุ่งหมาย" @@ -9795,7 +9795,7 @@ msgstr "อ่านแหวนที่เก็บรักษาไว้แ #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9805,12 +9805,12 @@ msgstr "" "{ph0}แมโครแหวน{ph1} · {ph2}จุดมุ่งหมายและแหล่งที่มาของความเร็ว{ph3} · " "{ph4}การแสดงมุม{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "การตรวจสอบแหล่งที่มาที่บำรุงรักษา" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -9820,24 +9820,24 @@ msgstr "" "การตรวจสอบการบันทึกของโครงการรวบรวมรหัสรุ่นกระสุน,รวมทั้งผู้ช่วยนี้,กับเทอร์โบตรึงค" " 44.0" -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 ไบต์ที่ตรงกัน" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "รหัสรุ่นกระสุนที่คอมไพล์ตรงกับส่วน 2,139 ไบต์ของปฏิบัติการเดิม" -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "สองสร้างสะอาด" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9850,65 +9850,65 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, 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:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "อัตลักษณ์เป้าหมายและขอบเขตการวิเคราะห์" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "เป้าหมายเดิม" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0},156,258 ไบต์,เมกะไบต์" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "รายการผู้ช่วย" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} ใน REAภาพโหลดของ" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "ชดเชยแฟ้มต้นฉบับ" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0},ส่งคืนโดย {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "การตรวจสอบรหัสที่บันทึกไว้" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA4.1.0·7 ตุลาคม 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9918,7 +9918,7 @@ msgstr "" "พวกเขายังเปรียบเทียบการมีส่วนร่วมของแผนที่และการย้ายที่ทับซ้อนกัน" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9932,7 +9932,7 @@ msgstr "" "ไบต์ร่างกายในสองช่วงข้ามช่วง 517 ไบต์;คำแนะนำที่เลือกข้างต้นอยู่ในช่วง" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9947,7 +9947,7 @@ msgstr "" " REA การตรวจสอบของเป้าหมายเดิมเดียวกัน " "ตัวตนของเกมที่ให้มาถูกตรึงโดยที่ประจักษ์พื้นที่เก็บข้อมูลที่มีแหล่งที่มาที่เก่าแก่การถ่ายโอน" -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9957,12 +9957,12 @@ msgstr "" "รูปที่แสดงให้เห็นถึงการคำนวณมุม การควบคุมเต็มรูปแบบเกมระยะเวลาและ PC-98 " "รวจสอบรันไทม์แยกต่างหากในโครงการฟื้นฟู" -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "เต็ม TH04 การฟื้นฟู" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9974,7 +9974,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9986,7 +9986,7 @@ msgstr "{ph0}สำรวจ TH04 ที่เก็บข้อมูล{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10001,7 +10001,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10017,7 +10017,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10040,28 +10040,28 @@ msgstr "" "ตรวจสอบ TH04ของเดิม 16 บิตรหัสดอสด้วย REA. " "นของกระสุนมีระยะห่างและมุ่งเป้าไปที่ผู้เล่น" -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 กรณีศึกษารูปแบบกระสุน" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "คัดลอก TH04 ตัวอย่างพรอมต์" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 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:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10074,27 +10074,27 @@ msgstr "" "หมุนทุกทิศทางโดยจำนวนเดียวกัน;ไฮไลต์จุดกระสุนแรกที่มีต่อผู้เ " "ทั้งคู่มีระยะห่าง 16 หน่วยหรือ 22.5 องศา" -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "คัดลอก TH04 เทมเพลตการยิง" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "ตาม TH04 การคำนวณวงแหวน" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "คัดลอก TH04 ตัดตอนมาประกอบ" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "สำเนาที่อ่านได้มุ่งเป้าแหวน-การคำนวณ" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" @@ -10570,597 +10570,597 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "ตัวอย่าง" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "บล็อก" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "เริ่มต้น" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "คู่มือ" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "ซอร์สโค้ด" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "สัญญาอนุญาต MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "เข้าร่วมชุมชน" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "ติดตามบน X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA *เลือกแหล่งสคริปต์" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "ซอร์สโค้ด" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "เอาต์พุตรูปแบบที่คาดหวัง" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "การแนะนำ" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "ฟังก์ชันที่เรียก" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "ค่าคงที่" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "ฟังก์ชัน C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "ปุ่ม" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "พรีโหลดเอพีไอ" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "ไอพีซี" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV แฟ้ม" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "คลิกของคุณ" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "คำขอจับ" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "ส่งออกสคริปต์" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REAผล·สรุปข้อความที่ตัดตอนมาจากไอพีซี" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA คำแนะนำ*0*406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA ข้อความที่ตัดตอนมา*0*411เอฟ5 บาท" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA ผลลัพธ์ไบต์*ตีความว่าเป็นคู่เล็กๆน้อยๆเอนเดียน" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "กู้คืนค*ตัดตอนมา" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "โชว์เคส→" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "การตั้งค่าที่เลือกจากสคริปต์ที่ตรวจสอบแล้ว" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "สรุปที่สามารถอ่านได้ของตัวจัดการ%" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA *เลือกคำแนะนำเดิม" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "รหัสผู้ประกอบการ·แหล่งที่มาของไมโครซอฟท์" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "เจ้าหน้าที่→ REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA agent ตัวแทน·ผลลัพธ์ที่เลือกไว้" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA →ตัวแทน*วิธีการและฟังก์ชันที่เรียก" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA *เลือกแยกจาวา" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "สรุปสามารถอ่านได้*การตีความของตัวแทน" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA *เครื่องกำเนิดไฟฟ้า,ร่างกายที่สมบูรณ์" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "ดาวน์โหลด Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "ดาวน์โหลดผู้ให้บริการวิเคราะห์Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "เจ้าหน้าที่→ REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA agent ตัวแทน·ผลลัพธ์ที่เลือกไว้" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA →ตัวแทน·คำแนะนำที่เลือกไว้" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "เจ้าหน้าที่→ REA ·อ่าน_ไบต์" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA →ตัวแทน*รายการที่เจ็ด" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "ปฏิบัติการเดิม · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "ดาวน์โหลดความท้าทายเดิม" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "ดาวน์โหลดแก้" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REAผล·รหัสปลอมที่ตัดตอนมา" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "เจ้าหน้าที่→ REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →ตัวแทน*ตัดตอนการเรียนการสอน" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA →ตัวแทน*ข้อความที่ตัดตอนมาโทร" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REAผลไบต์*ถอดรหัสเป็นคู่" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "เริ่มจากเป้าหมายของคุณเอง" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "การสร้างรหัส" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "กู้คืนกฎ" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "นาฬิกาปรับได้" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "ไบนารี" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "ตรวจสอบรหัส" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "สมการ" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "ถูกต้อง!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "ปฏิบัติการ" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA ผลลัพธ์" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "กู้คืนค" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "การตรวจสอบความถูกต้อง" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "แอพแพคเกจ" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "งคุณเอง" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "ห่อไอพีซี" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "คลิปบอร์ด" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "รหัสดอสต้นฉบับ" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA การแนะนำ" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "การคำนวณมุม" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "แหวนกระสุน" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "หน้าเว็บ" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "ทำให้เรียกฟังก์ชันไอพีซี" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "ส่งไปยังคลิปบอร์ดระบบ" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "บันทึกไว้ในประเทศโดย Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "อินพุตมาร์กดาวน์" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "การวิเคราะห์โครงสร้างผลลัพธ์*ข้อความที่ตัดตอนมา" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "วิเคราะห์แอปของคุณเอง" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "เจ้าหน้าที่→ REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA agent ตัวแทน·ช่องที่เลือกไว้" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "เจ้าหน้าที่→ REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →ตัวแทน*ตัดตอนการเรียนการสอน" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "ผลฟังก์ชั่นเดียวกัน*ตัดตอนมาจุดมุ่งหมาย" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "การบำรุงรักษาที่สอดคล้องกันค++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "แมโครแหวน · TH04 สาขาที่ตัดตอนมา" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "มุมและความเร็ว*ข้อความที่ตัดตอนมา" @@ -11193,7 +11193,7 @@ msgstr "แปลมีการปรับปรุง อ่านหน้ #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11210,7 +11210,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11231,7 +11231,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11251,7 +11251,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11270,7 +11270,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11283,7 +11283,7 @@ msgstr "" "แล้วตรวจสอบการติดตั้ง{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" @@ -11291,7 +11291,7 @@ msgstr "การฟื้นฟู · {ph0}" # Reviewed for readable instructions and accurate software terminology. #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11302,7 +11302,7 @@ msgstr "" "และตรวจสอบการเปลี่ยนแปลงที่เสนอ" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11311,7 +11311,7 @@ msgstr "ตัวอย่างที่ให้มา · {ph0} และ npm #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11329,7 +11329,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11345,7 +11345,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11364,7 +11364,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11375,7 +11375,7 @@ msgstr "" "{ph7} และเขียนไฟล์{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11390,7 +11390,7 @@ msgstr "{ph0} *สาย 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11403,7 +11403,7 @@ msgstr "" "แสดงการคาดการณ์และผลลัพธ์ที่เกิดขึ้นจริง{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11415,16 +11415,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"คุณจะต้อง {ph0} 22 (22.23.4+), 24 (24.22.1+) หรือ 26+ (>=26.12.1) npm มาพร้อมกับ {ph1}." +"คุณจะต้อง {ph0} 22 (22.23.4+), 24 (24.22.1+) หรือ 26+ (>=26.12.1) npm " +"มาพร้อมกับ {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11432,19 +11434,20 @@ msgstr "ไม่มี {ph0} หรือไม่แน่ใจ?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"หาก {ph0} แสดง v22.23.4+, v24.22.1+ หรือ v26.12.1+ ก็พร้อมใช้ หากแสดงรุ่นเก่าหรือ " -"‘not recognized’ / ‘command not found’ ให้ติดตั้ง {ph1} 24 LTS:" +"หาก {ph0} แสดง v22.23.4+, v24.22.1+ หรือ v26.12.1+ ก็พร้อมใช้ " +"หากแสดงรุ่นเก่าหรือ ‘not recognized’ / ‘command not found’ ให้ติดตั้ง {ph1} " +"24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11458,7 +11461,7 @@ msgstr "{ph0} ·ตัวอย่างแหล่งที่มาที่ #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11469,9 +11472,9 @@ msgstr "" "{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11479,7 +11482,7 @@ msgstr "{ph0} ·ตัวอย่างแหล่งที่มา" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11493,7 +11496,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11510,7 +11513,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11521,7 +11524,7 @@ msgstr "" "220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11535,7 +11538,7 @@ msgstr "REA *โหลด {ph0} *สายที่เลือก" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11554,7 +11557,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11567,28 +11570,28 @@ msgstr "" "แล้วสร้างเดโมเล็ก ๆ ที่ฉันปรับเวลาได้{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "แท็บ_เบราเซอร์_มุมมอง/{ph0} ·สมาชิกเอพีไอ" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "แท็บ_เบราเซอร์_มุมมอง/{ph0} ·ผู้ช่วยไอพีซี" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "หลัก/{ph0} *ผู้ช่วยผู้จัดการ" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11607,7 +11610,7 @@ msgstr "เปลี่ยนเป็นโหมดมืด" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11623,18 +11626,18 @@ msgstr "" "เพื่อตรวจสอบทราฟฟิกที่บันทึกไว้ร่วมกับเอเจนต์ของคุณ" #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "โมเดลเฉพาะทาง{ph0}บทความ" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "การวิศวกรรมย้อนกลับจำเป็นต้องใช้โมเดลที่ใหญ่ขึ้นไหม?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11643,12 +11646,12 @@ msgstr "" "ข้อคิดจากการสร้าง Touhou ขึ้นใหม่ เกี่ยวกับโมเดลทั่วไป โมเดลเฉพาะทาง " "และการเรียนรู้จากผลตอบกลับของคอมไพเลอร์" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "โดย N0zoM1z0 · 13 ตุลาคม 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" @@ -11657,37 +11660,37 @@ msgstr "ข้ามไปที่เนื้อหา" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Home{ph1} / {ph2}Blog{ph3} / โมเดลและวิศวกรรมย้อนกลับ" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "เรียงความ" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "วิศวกรรมย้อนกลับจำเป็นต้องมีโมเดลที่ใหญ่กว่านี้หรือไม่?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "โดย N0zoM1z0 · 13 ตุลาคม 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "ประเด็นสำคัญ" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11699,7 +11702,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11712,7 +11715,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11724,7 +11727,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11737,7 +11740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11747,14 +11750,14 @@ msgstr "" "{ph0}ประเมินผลการฟื้นฟูที่ได้รับการยืนยันควบคู่ไปกับเวลาและต้นทุน{ph1} " "นั่นคือสิ่งที่ฉันต้องการวัดสำหรับเวิร์กโฟลว์เอเจนต์ AI ที่สมบูรณ์" -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "ในบทความนี้" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11762,7 +11765,7 @@ msgstr "{ph0}โมเดลที่เก่งขึ้นเปลี่ย #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11770,7 +11773,7 @@ msgstr "{ph0}ทำไมจึงมีความเชี่ยวชาญ? #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11778,7 +11781,7 @@ msgstr "{ph0}ประสบการณ์นี้ควรเก็บไว #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11786,7 +11789,7 @@ msgstr "{ph0}เรียนรู้การทดลองที่มีป #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11794,7 +11797,7 @@ msgstr "{ph0}วิศวกรรมย้อนกลับและการ #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11802,7 +11805,7 @@ msgstr "{ph0}เมื่อตัวตรวจสอบความถูก #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11810,18 +11813,18 @@ msgstr "{ph0}การเปรียบเทียบที่คุ้มค #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}สิ่งนี้แนะนำเอเจนต์ AI ประเภทใด{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "โมเดลที่เก่งขึ้นเปลี่ยนอะไรบ้าง?" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11836,7 +11839,7 @@ msgstr "" "ขณะที่ฉันเปลี่ยนโมเดล " "พื้นที่เก็บข้อมูลได้เก็บบันทึกว่าแต่ละเซสชันจัดการเพื่อกู้คืนอะไรบ้าง" -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11850,12 +11853,12 @@ msgstr "" "เมื่อโมเดลรุ่นใหม่แก้จุดที่งานก่อนหน้าติดอยู่ได้ " "การเปลี่ยนแปลงซอร์สโค้ดช่วยให้เห็นว่าอะไรทำให้ก้าวหน้าได้" -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "ตัวแปรชั่วคราวจำเป็นต้องมีอายุการใช้งานที่ทับซ้อนกัน" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11876,7 +11879,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11890,7 +11893,7 @@ msgstr "" "เมื่อ {ph2}GPT-6.1-Sol ตรวจสอบปัญหาอีกครั้ง{ph3} " "ก็เสนอสมมติฐานที่เป็นประโยชน์เกี่ยวกับช่วงอายุของตัวแปรชั่วคราวเหล่านี้" -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11907,7 +11910,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11921,7 +11924,7 @@ msgstr "" "หลังจากการทดลองที่กำหนดเป้าหมายหลายครั้ง " "{ph0}การคอมไพล์ใหม่ทั้งหมดจากแหล่งที่มายืนยันว่าฟังก์ชันทั้งหมดตรงกัน{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11932,7 +11935,7 @@ msgstr "" "สมมติฐานเกี่ยวกับอายุการใช้งานของวัตถุชั่วคราวทำให้เอเจนต์ AI มีทิศทางใหม่ " "คำติชมของคอมไพเลอร์ช่วยปรับแต่งสมมติฐานนั้นให้กลายเป็นการจัดเรียงซอร์สโค้ดที่ตรงกัน" -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "กราฟโฟลว์ควบคุมที่แตกต่างกัน" @@ -11941,7 +11944,7 @@ msgstr "กราฟโฟลว์ควบคุมที่แตกต่า #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11963,7 +11966,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11981,7 +11984,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11995,7 +11998,7 @@ msgstr "" " " "ตัวแทนสามารถลองใช้รูปแบบท้องถิ่นต่อไปเป็นเวลานานก่อนที่จะพบวิธีที่ดีกว่าในการแสดงงานโดยรอบ" -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12010,7 +12013,7 @@ msgstr "" "ประวัติศาสตร์ช่วยให้เราตรวจสอบการค้นพบและการตรวจสอบของพวกเขา " "การเปรียบเทียบแบบควบคุมจะช่วยแยกผลกระทบของแบบจำลองออกจากประสบการณ์ที่สืบทอดมา" -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12025,12 +12028,12 @@ msgstr "" " สิ่งนี้ต้องใช้ความสามารถในการให้เหตุผลแบบกว้างๆ มากน้อยเพียงใด? " "โมเดลสามารถเรียนรู้ได้มากเพียงใดจากการทำงานซ้ำๆ กับคอมไพเลอร์และโค้ดนั้น" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "เหตุใดโมเดล AI เฉพาะทางจึงทำได้ดี" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12045,7 +12048,7 @@ msgstr "" "แหล่งเก็บข้อมูลสนับสนุนด้วยตัวอย่างที่เป็นประโยชน์: " "ลูปที่เกี่ยวข้องและการจัดเตรียมตัวช่วยได้ให้สมมติฐานแก่เกมต่างๆ" -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12065,7 +12068,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12081,7 +12084,7 @@ msgstr "" "ฟังก์ชันพื้นหลังก่อนหน้านี้ได้เปิดเผยรูปแบบการตั้งชื่อที่ส่งผลต่อการเลือกของคอมไพเลอร์" " นั่นเสนอสมมติฐานที่มีแนวโน้มมากขึ้นสำหรับ {ph2}การสร้าง {ph3}{ph4} ใหม่" -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12090,7 +12093,7 @@ msgstr "" "การใช้รูปแบบนั้นซ้ำสำหรับตัวแปรขนาดไฟล์ทำให้เกิดเค้าโครงที่ต้องการโดยไม่ต้องเพิ่มพื้นที่เก็บข้อมูล" " ฟังก์ชั่นครบถ้วนจึงเข้าคู่กัน" -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12102,7 +12105,7 @@ msgstr "" "โมเดลเฉพาะสำหรับคอมไพลเลอร์นี้สามารถเห็นกรณีดังกล่าวได้มากมาย " "และเรียนรู้ว่าซอร์สโค้ดรูปแบบใดที่ควรค่าแก่การทดสอบก่อน" -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12122,7 +12125,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12142,14 +12145,14 @@ msgstr "" "แต่ต้องตรวจในแต่ละเป้าหมายว่าใช้ได้หรือไม่ " "โมเดลเฉพาะทางต้องเรียนรู้ความแตกต่างเหล่านี้" -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "ประสบการณ์นี้ควรเก็บไว้ที่ไหน?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12165,7 +12168,7 @@ msgstr "" "หน่วยความจำดังกล่าวประกอบด้วยบทเรียนเกี่ยวกับคอมไพเลอร์ " "พร้อมด้วยแหล่งที่มาและการทดลองที่ล้มเหลวซึ่งทำให้มีประโยชน์" -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12182,7 +12185,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12200,7 +12203,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12218,7 +12221,7 @@ msgstr "" "โมเดลจะต้องตัดสินใจว่าผลลัพธ์มีความหมายอย่างไรสำหรับความพยายามครั้งถัดไป " "การรู้รูปแบบที่เกี่ยวข้องเป็นเพียงจุดเริ่มต้นของกระบวนการนั้นเท่านั้น" -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12232,12 +12235,12 @@ msgstr "" " เช่น การสร้างผู้สมัครที่ดีขึ้น การตัดสินใจที่ดีขึ้นหลังจากได้รับคำติชม " "หรือทั้งสองอย่าง" -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "เรียนรู้การทดลองที่มีประโยชน์ครั้งต่อไป" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12251,7 +12254,7 @@ msgstr "" "ผลลัพธ์ก็สามารถจำกัดความเป็นไปได้ที่เหลืออยู่ให้แคบลง " "และแนะนำการทดลองถัดไปที่มีประโยชน์มากขึ้น" -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12264,44 +12267,44 @@ msgstr "" "แต่เส้นทางไปยังแหล่งข้อมูลนั้นมีข้อมูลเพิ่มเติม " "การทดลองแต่ละรายการต่อไปนี้ช่วยระบุสิ่งที่ยังจำเป็นต้องเปลี่ยนแปลง" -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "การทดลอง" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "ผลลัพธ์ของมันสอนอะไรเรา" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "ลองวิธีอื่นในการคัดลอกผลลัพธ์" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "รหัสการคัดลอกเปลี่ยนไป แต่ฟังก์ชันยังคงแตกต่างออกไป" -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "ใช้ค่าที่ส่งคืนโดยตรง" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "" "การคัดลอกเป็นไปตามรูปแบบดั้งเดิม แต่การจัดเก็บชั่วคราวยังคงแตกต่างออกไป" -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "เก็บตัวแปรชั่วคราวทั้งหมดให้ถูกต้องในเวลาเดียวกัน" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12310,17 +12313,17 @@ msgstr "" "พวกเขาได้รับพื้นที่เก็บข้อมูลแยกต่างหาก " "แต่ยังมีอีกหนึ่งค่าที่ทับซ้อนกันกับค่าที่ใช้ในภายหลังสำหรับการตรวจสอบการชนกัน" -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "แยกค่าการตรวจสอบการชนกันออกจากกัน" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "การคอมไพล์ใหม่ทั้งหมดจากแหล่งที่มายืนยันการจับคู่ที่สมบูรณ์" -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12329,7 +12332,7 @@ msgstr "" "การทดลองที่เลือกจากการสร้างฟังก์ชันการโจมตีขึ้นใหม่ด้านบน " "โดยจัดกลุ่มตามสิ่งที่พวกเขาสอนเรา" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12345,7 +12348,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12360,7 +12363,7 @@ msgstr "" "เมื่อการแก้ไขเฉพาะที่หยุดให้ข้อมูล " "ตัวแทนควรสามารถทบทวนการนำเสนอแหล่งที่มาหรือตรวจสอบหลักฐานอีกครั้ง" -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12374,12 +12377,12 @@ msgstr "" "ลำดับการเขียนโค้ดใหม่ที่บังคับตายตัวจะตัดทางเลือกนี้ออก " "รวมถึงพฤติกรรมบางส่วนที่เราอยากให้โมเดลเรียนรู้" -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "เหตุใดวิศวกรรมย้อนกลับจึงน่าสนใจสำหรับการเรียนรู้แบบเสริมกำลัง" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12392,7 +12395,7 @@ msgstr "" "การทดลองซอร์สโค้ดหลายแบบจะให้ผลตอบกลับรวดเร็วและทำซ้ำได้ " "เอเจนต์สามารถคอมไพล์โค้ดที่เสนอ ตรวจส่วนที่ยังต่าง แล้วเลือกขั้นตอนถัดไป" -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12408,7 +12411,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12430,7 +12433,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12446,7 +12449,7 @@ msgstr "" "ทำให้ย้อนกลับไปถึงวิธีที่โปรแกรมดั้งเดิมจัดการการคำนวณจุดลอยตัว{ph1} " "ก่อนที่ตัวแทนจะทดสอบการแก้ไขที่เป็นประโยชน์ได้ ก็ต้องพิจารณาว่าจะวัดอะไรก่อน" -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12457,12 +12460,12 @@ msgstr "" "ช่วยให้สามารถตรวจสอบปัญหาได้ตั้งแต่แรก เมื่อมีการตรวจสอบแล้ว " "เราจะสามารถตรวจสอบได้ว่านโยบายการค้นหาที่เรียนรู้จะสามารถนำมาใช้ได้ไกลเพียงใด" -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "เมื่อตัวตรวจสอบความถูกต้องผิดพลาด" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12474,7 +12477,7 @@ msgstr "" "ผมเรียกข้อมูลอ้างอิงหรือเครื่องมือตรวจนี้ว่า oracle แม้คำตอบจะทำซ้ำได้ " "เราก็ต้องเข้าใจว่ามันตรวจสอบอะไรจริง ๆ" -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12497,7 +12500,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12511,7 +12514,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12527,7 +12530,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12543,7 +12546,7 @@ msgstr "" "ดังนั้นเราจึงจำเป็นต้องเข้าใจการทดสอบที่ผ่านในแง่ของกรณีที่ผ่านการทดสอบ " "ในทำนองเดียวกัน การจับคู่คำสั่งจะต้องเข้าใจในแง่ของไบต์และข้อมูลที่ตรวจสอบ" -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12560,7 +12563,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12572,12 +12575,12 @@ msgstr "" " ยิ่งโมเดลเก่งในการปรับตัวตามผลตอบกลับที่เราให้ " "ก็ยิ่งสำคัญที่เราต้องเข้าใจผลตอบกลับนั้น" -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "การเปรียบเทียบที่คุ้มค่า" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12592,7 +12595,7 @@ msgstr "" " จากนั้น ความเชี่ยวชาญพิเศษภายใต้การดูแลและเวอร์ชันที่ได้รับการฝึกอบรม RL " "จะให้เราตรวจสอบได้ว่าการฝึกอบรมใดบ้างที่เพิ่มเข้ามา" -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12606,7 +12609,7 @@ msgstr "" "ฉันจะเก็บโมเดลพื้นฐานและความรู้ที่มีอยู่ไว้คงที่เช่นกัน การทดลองซ้ำๆ " "จะช่วยแยกแยะกลยุทธ์การค้นหาที่เชื่อถือได้จากโซลูชันผู้สมัครที่ประสบความสำเร็จโดยบังเอิญ" -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12621,7 +12624,7 @@ msgstr "" "เอนกประสงค์ทำงานส่วนใหญ่ที่จำเป็นในการเข้าถึงโมเดลนั้น " "การวัดแยกกันจะเผยให้เห็นการแบ่งส่วนงานนั้น" -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12635,7 +12638,7 @@ msgstr "" " ผมจะกันซอร์สโค้ดที่เกี่ยวข้องทั้งกลุ่มออก " "และไม่ให้คำตอบที่ผ่านการตรวจแล้วอยู่ในข้อมูลฝึกหรือคลังสำหรับค้นคืน" -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12650,7 +12653,7 @@ msgstr "" "เพื่อดูว่าคุณภาพนั้นทำให้งานมีประสิทธิภาพจริงหรือไม่ " "ต้นทุนการฝึกต้องนับแยกต่างหาก" -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12668,7 +12671,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12690,7 +12693,7 @@ msgstr "" "แต่ฉันจะตรวจสอบรางวัลสำหรับการ \"เข้าใกล้\" " "เทียบกับการตรวจสอบการยอมรับทั้งหมด" -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12705,12 +12708,12 @@ msgstr "" "ทั้งสองโมเดลดึงข้อมูลได้ดีแล้ว การฝึกยังเพิ่มอีกเท่าไหร่? " "คำตอบจะช่วยให้เราตัดสินใจได้ว่าโมเดลแต่ละประเภทมีประโยชน์มากที่สุดที่ใด" -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "สิ่งนี้แนะนำเอเจนต์ AI ประเภทใด" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12725,7 +12728,7 @@ msgstr "" "งานนั้นก็สามารถถามโมเดล AI เฉพาะทางสำหรับผู้สมัครได้ หากผลลัพธ์ไม่สมเหตุสมผล" " สารในวงกว้างสามารถกลับไปยังหลักฐานเป้าหมายหรือตรวจสอบการวัดเองได้" -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12736,7 +12739,7 @@ msgstr "" "ความเชี่ยวชาญเฉพาะทางจะกลายเป็นเครื่องมือที่ตัวแทนสามารถเลือกได้ในขณะที่การสืบสวนพัฒนาขึ้น" " ตัวแทนรักษาอิสระในการเปลี่ยนทิศทางที่ทำให้ความก้าวหน้าก่อนหน้านี้เป็นไปได้" -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12750,7 +12753,7 @@ msgstr "" "นอกจากนี้ยังให้เหตุผลแก่เราในการถามว่าการตัดสินใจใดต้องใช้วิจารณญาณกว้างๆ " "และการตัดสินใจครั้งใดจะปรับปรุงผ่านประสบการณ์ซ้ำแล้วซ้ำเล่ากับงานฝีมือเฉพาะอย่าง" -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12767,7 +12770,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12777,12 +12780,12 @@ msgstr "" "{ph0}ที่เก็บข้อมูลช่วยให้เรามีวิธีทดสอบคำถาม{ph1} " "ฉันต้องการใช้บันทึกนั้นเพื่อสร้างการเปรียบเทียบและดูสิ่งที่เราเรียนรู้" -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "หลักฐานและการระบุแหล่งที่มาของแบบจำลอง" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -12795,7 +12798,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12821,7 +12824,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12846,7 +12849,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12871,7 +12874,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12898,7 +12901,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12910,7 +12913,7 @@ msgstr "" "การตรวจสอบคงที่แบบจุดลอยตัว{ph3}, {ph4}TH08 การตรวจสอบเชิงตัวเลข{ph5} และ " "{ph6}TH09 การสร้างใหม่เพื่อประหยัดการเล่นซ้ำ{ph7}" -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -12935,22 +12938,22 @@ msgstr "" "สิ่งที่ Touhou การสร้างใหม่สอนฉันเกี่ยวกับโมเดลทั่วไป โมเดลผู้เชี่ยวชาญ " "และการเรียนรู้ที่จะเสนอสมมติฐานที่ดีกว่าจากคำติชมของคอมไพเลอร์" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "ในหน้านี้" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "แบบจำลองและเรียงความวิศวกรรมย้อนกลับ" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "การทดลองสร้างใหม่ที่เลือก" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" @@ -12959,7 +12962,7 @@ msgstr "กลับขึ้นด้านบน" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12970,68 +12973,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}ตัวอย่าง{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA กรณีศึกษา" -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "แอนดรอยด์ · APK การวิเคราะห์" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "วิธีที่ผู้รับรองความถูกต้องสร้างรหัสล็อกอิน" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "อ่านกรณีศึกษาAndroid" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron*การติดตามคุณลักษณะ" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "ยังไง Notion คัดลอกข้อความและเอชทีเอ็ม" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "อ่าน Notion กรณีศึกษา" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "พื้นเมือง*ฟื้นฟู" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ballการคำนวณเสียงแพน" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "อ่าน DX-Ball กรณีศึกษา" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "ตัวเลือกการตั้งค่า" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13041,7 +13044,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13053,7 +13056,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13061,7 +13064,7 @@ msgstr "{ph0}1. เตรียมคอมพิวเตอร์{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13069,7 +13072,7 @@ msgstr "{ph0}2. เลือกผู้ช่วย AI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13077,7 +13080,7 @@ msgstr "{ph0}3. เชื่อมต่อ REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13085,18 +13088,18 @@ msgstr "{ph0}4. ลองสำรวจแอป{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}เป้าหมายและเครื่องมือวิเคราะห์ประเภทอื่น{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. เตรียมคอมพิวเตอร์" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13105,7 +13108,7 @@ msgstr "" "ใช้คอมพิวเตอร์ที่เก็บไฟล์ที่ต้องการวิเคราะห์ ผู้ช่วย AI " "เขียนโค้ดที่ทำงานบนเครื่องสามารถอ่านไฟล์เหล่านั้นและเรียกใช้เครื่องมือให้คุณได้" -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13116,7 +13119,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13127,7 +13130,7 @@ msgstr "{ph0}ดาวน์โหลดตัวติดตั้ง Node.js{p #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13138,17 +13141,17 @@ msgstr "" "system” (ระบบนี้ปิดการเรียกใช้สคริปต์){ph1} เมื่อเรียก {ph2} ให้ใช้ {ph3} " "แทน สำหรับ npm ให้ใช้ {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "สร้างโฟลเดอร์ทำงานสำหรับผู้ช่วย AI" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "ในเทอร์มินัล สร้างโฟลเดอร์สำหรับแบบฝึกหัด แล้วเข้าไปในโฟลเดอร์นั้น:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13157,12 +13160,12 @@ msgstr "" "เปิดเทอร์มินัลนี้ไว้สำหรับขั้นตอนถัดไป หากมีโฟลเดอร์ทำงานอยู่แล้ว " "ให้เปิดโฟลเดอร์นั้นแทน" -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. เลือกผู้ช่วย AI เขียนโค้ด" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13172,12 +13175,12 @@ msgstr "" "จัดหาเครื่องมือสำรวจซอฟต์แวร์ให้ผู้ช่วยใช้ " "เลือกแอปที่เชื่อมต่อหนึ่งแอปด้านล่าง หากยังไม่เคยใช้ ให้เปิดอ่านคำแนะนำ" -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · ใช้บัญชี ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13188,39 +13191,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}ติดตั้งและลงชื่อเข้าใช้ Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf หรือ VS Code · ใช้โปรแกรมแก้ไขโค้ด" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "ติดตั้งโปรแกรมแก้ไขโค้ดสำหรับระบบปฏิบัติการของคุณ แล้วลงชื่อเข้าใช้" -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "เปิดโฟลเดอร์ rea-work ที่สร้างไว้ในขั้นตอนที่ 1" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · ใช้บัญชี Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "ติดตั้งด้วยคำสั่งสำหรับระบบปฏิบัติการของคุณ:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13234,13 +13237,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}ติดตั้ง Claude Code และเลือกประเภทบัญชี{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · ใช้แชตในแอปเดสก์ท็อป" @@ -13250,7 +13253,7 @@ msgstr "Claude Desktop · ใช้แชตในแอปเดสก์ท็ #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13262,7 +13265,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13274,19 +13277,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}ติดตั้ง OpenCode และตั้งค่าโมเดล{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "แอปที่รองรับทั้งหมดและ ID สำหรับตั้งค่า" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13296,12 +13299,12 @@ msgstr "" "รุ่น npm 6.4.0 รองรับแอปด้านล่าง หากต้องการระบุแอปโดยตรง ให้ใช้ ID คู่กับ " "{ph0}" -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "แอปที่เชื่อมต่อ" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID สำหรับตั้งค่า" @@ -13311,7 +13314,7 @@ msgstr "ID สำหรับตั้งค่า" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13330,7 +13333,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13338,13 +13341,13 @@ msgid "" "availability{ph3}" msgstr "{ph0}ตั้งค่าแอปและแก้ปัญหา{ph1} · {ph2}การรองรับในรุ่นที่เผยแพร่{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · เชื่อมต่อบนคอมพิวเตอร์ที่รัน Bot" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13357,29 +13360,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}คำแนะนำการเชื่อมต่อ Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. เชื่อมต่อ REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "วางพรอมป์ต์นี้ในผู้ช่วยเขียนโค้ด AI ของคุณ:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "หากต้องการเลือกแอปใดแอปหนึ่ง ให้เพิ่ม ID สำหรับตั้งค่าของแอปนั้น:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13391,7 +13394,7 @@ msgstr "" "ในรายการแอปของ REA ใช้ปุ่มลูกศรเพื่อเลื่อน กด Space เพื่อเลือกแอป และ Enter " "เพื่อดำเนินการต่อ" -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13400,7 +13403,7 @@ msgstr "" "MCP คือการเชื่อมต่อที่ให้ผู้ช่วย AI เรียกใช้ REA ได้ " "ส่วนสกิลบอกขั้นตอนการสำรวจซอฟต์แวร์ให้ผู้ช่วย" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13411,7 +13414,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13421,20 +13424,20 @@ msgstr "" "แทนที่ {ph0} ด้วย ID สำหรับตั้งค่าของแอปที่ใช้ หากตรวจสอบสำเร็จ จะรายงาน " "{ph1} จากนั้นบอกผู้ช่วย AI ว่า:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "ตรวจสอบว่าเชื่อมต่อ REA แล้ว และบอกฉันว่าคุณใช้เครื่องมือ REA ใดได้บ้าง" -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. ลองสำรวจแอปเป็นครั้งแรก" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13445,7 +13448,7 @@ msgstr "" "ตัวอย่างนี้เป็นแอป Electron ที่มี 6 ไฟล์และปุ่ม {ph0}Export notes{ph1} " "ผู้ช่วย AI สำรวจโค้ดได้โดยไม่ต้องติดตั้งหรือเรียกใช้ Electron" -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "ผู้ช่วย AI เขียนโค้ดของคุณ" @@ -13459,7 +13462,7 @@ msgstr "ผู้ช่วย AI เขียนโค้ดของคุณ" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13472,7 +13475,7 @@ msgstr "" "หาว่าเกิดอะไรขึ้นเมื่อฉันคลิก Export notes แสดงว่า {ph4} ถูกเขียนที่ใด " "มีฟิลด์อะไรบ้าง และไฟล์กับบรรทัดที่เกี่ยวข้อง{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "ค้นหาคำอธิบายสั้นๆด้วยการอ้างอิงไฟล์และบรรทัด:" @@ -13481,7 +13484,7 @@ msgstr "ค้นหาคำอธิบายสั้นๆด้วยกา #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13494,13 +13497,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}ทดสอบสิ่งที่คาดการณ์ในแบบฝึกหัดพร้อมคำแนะนำ →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "ดาวน์โหลดตัวอย่างเอง หรือใช้แอปของคุณ" @@ -13508,14 +13511,14 @@ msgstr "ดาวน์โหลดตัวอย่างเอง หรื #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}ดาวน์โหลดไฟล์ ZIP ตัวอย่าง{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13526,7 +13529,7 @@ msgstr "" " ให้มันเส้นทางไป {ph0} โฟลเดอร์และคำถามการส่งออกเดียวกัน" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13536,12 +13539,12 @@ msgstr "" "ใช้ REA สำรวจแอปที่ {ph0} หาวิธีส่งออกข้อมูล " "และแสดงไฟล์กับบรรทัดที่เกี่ยวข้อง" -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "วิเคราะห์ซอฟต์แวร์ประเภทอื่น" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13550,12 +13553,12 @@ msgstr "" "เลือกหัวข้อที่ตรงกับเป้าหมายของคุณ Provider " "คือเครื่องมือวิเคราะห์บนเครื่องที่ REA ใช้กับซอฟต์แวร์ประเภทนั้น" -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "ไฟล์ปฏิบัติการและไลบรารีเนทีฟ · Hopper, Ghidra หรือ IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13564,47 +13567,47 @@ msgstr "" "ติดตั้งเครื่องมือวิเคราะห์หนึ่งตัวบนคอมพิวเตอร์ที่รัน REA " "โฮสต์คือระบบปฏิบัติการที่คุณใช้ ส่วนเป้าหมายคือโปรแกรมที่ต้องการวิเคราะห์" -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "เครื่องมือวิเคราะห์" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "ไม่รองรับ" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "ดิสทริบิวชันที่รองรับ" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · ทดลอง" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "รูปแบบการตั้งค่าที่ตรวจสอบแล้ว" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "การตั้งค่าแบบไม่มี GUI ที่ตรวจสอบแล้ว" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "ดูคู่มือเครื่องมือวิเคราะห์" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · ให้ขั้นตอนตั้งค่าติดตั้งหรือเชื่อมต่อให้" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13615,7 +13618,7 @@ msgstr "" "ให้เลือกโหมดเดโมหรือเปิดใช้งานใบอนุญาตเมื่อเปิด Hopper ครั้งแรก บน Linux " "ขั้นตอนตั้งค่าจะเตรียมเดโมที่รองรับและจอแสดงผลเฉพาะของเดโม" -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13624,7 +13627,7 @@ msgstr "" "โฮสต์ Linux: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS หรือ" " Omarchy Hopper เป็นซอฟต์แวร์เชิงพาณิชย์ และเดโมมีข้อจำกัดตามที่ผู้ผลิตกำหนด" -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13637,18 +13640,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}ตั้งค่า Hopper และแก้ปัญหา{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · ติดตั้งเครื่องมือวิเคราะห์ฟรีและ Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13658,7 +13661,7 @@ msgstr "" "เลือกแพ็กเกจที่ตรงกับสถาปัตยกรรมของคอมพิวเตอร์" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13671,7 +13674,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13686,7 +13689,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13694,7 +13697,7 @@ msgstr "{ph0}ดาวน์โหลด JDK{ph1} · {ph2}ดาวน์โห #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13704,7 +13707,7 @@ msgstr "" "ตรวจสอบ Java คำสั่งแรกจะแสดง {ph0} ให้ใช้โฟลเดอร์นั้นเป็นค่า {ph1} " "คำสั่งที่สองยืนยันว่าติดตั้งคอมไพเลอร์แล้ว:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13722,7 +13725,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13732,12 +13735,12 @@ msgstr "" "{ph0}ตั้งค่า Ghidra และข้อกำหนดด้านสถาปัตยกรรม{ph1} · {ph2}คู่มือ Ghidra บน " "Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · เชื่อมต่อกับที่ติดตั้งไว้แล้ว" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13748,7 +13751,7 @@ msgstr "" "เลือกเชื่อมต่อกับ GUI ที่เปิดไบนารีต้นฉบับอยู่ หรือใช้โพรเซสควบคุมแบบไม่มี " "GUI ที่เปิดฐานข้อมูลเฉพาะ" -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13759,7 +13762,7 @@ msgstr "" "รวมถึงโพรเซสควบคุมแบบไม่มี GUI บน macOS arm64 ที่ใช้ IDA Professional 9.1 " "บริดจ์ GUI เนทีฟที่เป็นตัวเลือกเสริมมีข้อกำหนดด้านรุ่นและแพลตฟอร์มของตัวเอง" -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13771,13 +13774,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}รูปแบบ IDA ตัวอย่างการลงทะเบียน และแพลตฟอร์มที่ตรวจสอบแล้ว{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -13789,18 +13792,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}ทำตามตัวอย่างการวิเคราะห์เนทีฟ{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "เว็บไซต์ Android, .NET, เฟิร์มแวร์ และเป้าหมายอื่น" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -13809,110 +13812,110 @@ msgstr "" "เปิดคู่มือสำหรับเป้าหมายที่คุณมี แต่ละคู่มือระบุเครื่องมือเพิ่มเติม " "โฮสต์ที่รองรับ และคำสั่งแรก" -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "เป้าหมาย" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "เครื่องมือที่ต้องเตรียม" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "คู่มือ" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}เปิดคู่มือ{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "เว็บไซต์" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / แพ็กเกจ" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "อุปกรณ์ Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "ทรัพยากร Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "โปรเจกต์ JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "เฟิร์มแวร์" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / โปรแกรมขัดข้องบน Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "สัญญาณลอจิก" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "พฤติกรรมของโพรเซส" @@ -13928,7 +13931,7 @@ msgstr "พฤติกรรมของโพรเซส" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13938,18 +13941,18 @@ msgstr "" "{ph0}คู่มือ Flutter{ph1} · {ph2}แพ็กเกจและทรัพยากร{ph3} · {ph4}ไบต์โค้ด " "EVM{ph5} · {ph6}คู่มือการสำรวจทั้งหมด{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "ใช้ REA จากเทอร์มินัล" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "คำสั่ง CLI การติดตั้งแบบโกลบอล และ curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13959,7 +13962,7 @@ msgstr "" "แทนที่ {ph0} ด้วยชื่อฟังก์ชันหรือที่อยู่จากรายการฟังก์ชันของเป้าหมาย " "ต้องตั้งค่า Ghidra ก่อน" -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -13968,7 +13971,7 @@ msgstr "" "บน macOS หรือ Linux คุณใช้ตัวติดตั้งผ่าน curl ได้เช่นกัน หลังเตรียม Node.js " "แล้ว:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -13978,12 +13981,12 @@ msgstr "" "สำหรับโปรแกรมแก้ไขโค้ด ให้เปิดใช้ REA ในการตั้งค่า MCP " "และอนุญาตเครื่องมือในแชตของผู้ช่วย AI" -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL และพาธที่มีช่องว่าง" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -13994,17 +13997,17 @@ msgstr "" "AI ทำงานใน WSL ให้ติดตั้ง Node.js และ REA ในสภาพแวดล้อม Linux นั้น และใช้พาธ" " Linux เครื่องมือวิเคราะห์แบบไม่มี GUI ทำงานบนโฮสต์เดียวกับ REA" -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "คำสั่งตั้งค่าบน Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "อัปเดตหรือลบ REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14016,7 +14019,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14030,52 +14033,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}รายละเอียดการอัปเดตและถอนการติดตั้ง{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "คัดลอกคำสั่งตั้งค่า REA บน Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "คัดลอกคำสั่ง" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "คัดลอกบันทึกการตรวจสอบพรอมต์" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14085,12 +14088,12 @@ msgstr "" "ติดตั้ง curl และ unzip ก่อนหากยังไม่มี บน Debian หรือ Ubuntu ให้เรียก {ph0} " "สำหรับดิสทริบิวชันอื่น ให้ใช้ตัวจัดการแพ็กเกจของระบบ" -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "ปิดเทอร์มินัลแล้วเปิดใหม่ จากนั้นเรียก:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14105,7 +14108,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14115,19 +14118,19 @@ msgstr "" "{ph0}ตั้งค่า Cursor{ph1} · {ph2}ตั้งค่า Windsurf / Devin Desktop{ph3} · " "{ph4}ตั้งค่า VS Code และ Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · เลือกโมเดล AI" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "เตรียมไฟล์ลงทะเบียน IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14142,7 +14145,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14155,7 +14158,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14167,22 +14170,22 @@ msgstr "" "{ph1} ที่ใช้งานได้ และ {ph2} หากมี ลงในไฟล์ เปิดไบนารีต้นฉบับใน IDA " "และเริ่มปลั๊กอินฝั่ง IDA ก่อนขอให้ REA สำรวจ" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "ฐานข้อมูล SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "ไบต์โค้ด EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "ติดตั้ง Codex ด้วยคำสั่งสำหรับระบบปฏิบัติการของคุณ:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14192,7 +14195,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14202,12 +14205,12 @@ msgstr "" "หากติดตั้งครั้งแรก ให้ดาวน์โหลด{ph0}ตัวติดตั้ง Node.js 24 LTS สำหรับ macOS " "(.pkg){ph1} เปิดไฟล์และทำตามขั้นตอน จากนั้นเปิด Terminal ใหม่" -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "ใช้ Homebrew อยู่แล้วหรือไม่?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14218,7 +14221,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14228,7 +14231,7 @@ msgstr "" "ตรวจสอบและอนุมัติแผน เปิด Claude ใหม่ " "แล้ว{ph0}ตรวจสอบการเชื่อมต่อในขั้นตอนที่ 3{ph1}" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14238,12 +14241,12 @@ msgstr "" "แทนที่ทั้งสองพาธด้วยตำแหน่งที่ติดตั้งไว้ หากเพิ่งติดตั้งบน macOS หรือ Linux " "arm64 ให้สร้างดีคอมไพเลอร์เนทีฟสำหรับคอมพิวเตอร์ของคุณก่อนดำเนินการต่อ" -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "สร้างดีคอมไพเลอร์เนทีฟของ Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14256,7 +14259,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14266,7 +14269,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14276,19 +14279,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · ขั้นตอนการสร้างเนทีฟ{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "จากนั้นตรวจสอบ Ghidra และบันทึกพาธสำหรับแอปที่เชื่อมต่อของคุณ:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14296,13 +14299,13 @@ msgstr "ทำไม {ph0} จึงได้ 220 ในเครื่องค #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}วิธีทำงาน{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14311,22 +14314,22 @@ msgstr "" "ถามเอเจนต์เขียนโค้ดของคุณเกี่ยวกับแอป เกม หรือเว็บไซต์ REA " "มีเครื่องมือให้ตรวจสอบโค้ดที่อยู่เบื้องหลังคำตอบ" -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "เริ่มต้น" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "ดูตัวอย่าง ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "วิธีทำงาน" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14337,47 +14340,47 @@ msgstr "" " เมื่อใช้ REA เอเจนต์ของคุณจะตามโค้ด อธิบายฟีเจอร์ " "และช่วยสร้างฟีเจอร์นั้นขึ้นใหม่ได้" -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "ถามเกี่ยวกับหนึ่งฟีเจอร์" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "ส่งโปรแกรมหรือหน้าเว็บพร้อมคำถามให้เอเจนต์ของคุณ" -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "ตรวจสอบโปรแกรม" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA ส่งคืนโค้ด การอ้างอิง และสิ่งที่สังเกตได้ขณะทำงาน" -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "เข้าใจแล้วลองปรับเปลี่ยน" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "เอเจนต์ใช้สิ่งที่พบเพื่ออธิบายหรือสร้างฟีเจอร์ขึ้นใหม่" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "ตามคำสั่งทีละขั้น" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "ถามเอเจนต์ด้วยคำถามเดียวกัน" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14386,13 +14389,13 @@ msgstr "" "เริ่มที่ 6 เพิ่ม 0.001 " "แต่ละการปรับปรุงโดยไม่ต้องปะทะกันในขณะที่ความเร็วอยู่ด้านล่าง 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "สำรวจฟีเจอร์ในแอปหรือเกมที่เผยแพร่แล้ว พร้อมโค้ดและผลที่ตรวจสอบแล้ว" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14401,7 +14404,7 @@ msgstr "" "ตามการสร้างรหัสเข้าสู่ระบบหกหลักของ Aegis ใน APK ที่เผยแพร่ " "แล้วเลื่อนนาฬิกาสาธิตเพื่อดูว่าทำไมรหัสจึงเปลี่ยนทุก 30 วินาที" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14410,7 +14413,7 @@ msgstr "" "ตาม JavaScript ที่บรรจุใน Notion ไปถึงคลิปบอร์ดของระบบ " "และดูว่าการคัดลอกเก็บข้อมูลบล็อกแบบสมบูรณ์ไว้อย่างไร" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14418,12 +14421,12 @@ msgid "" msgstr "" "หาว่าตำแหน่งลูกบอลกลายเป็นเสียงด้านซ้ายหรือขวาอย่างไรในเกม Windows ปี 1996" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "เลือกเป้าหมายของคุณ" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14433,7 +14436,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14451,13 +14454,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวอย่างพรอมต์*เว็บไซต์" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "ใช่อันนี้" @@ -14470,7 +14473,7 @@ msgstr "ใช่อันนี้" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14483,7 +14486,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวอย่างพร #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14496,18 +14499,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "คัดลอกเว็บไซต์พร้อมท์โครงการ" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "สำเนาพร้อมท์การฟื้นฟูเกม" @@ -14519,7 +14522,7 @@ msgstr "สำเนาพร้อมท์การฟื้นฟูเกม #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14531,7 +14534,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14539,23 +14542,23 @@ msgstr "{ph0}ตัวอย่าง →{ph1} — การตรวจสอ #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}บล็อก →{ph1} — วิธีการและบันทึกการสร้างซอฟต์แวร์ขึ้นใหม่" -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "ดูการตรวจสอบเครื่องคิดเลขทั้งหมด" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "ลองโครงการที่ใหญ่ขึ้น" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14564,7 +14567,7 @@ msgstr "" "มาลองสองตัวอย่างกัน: เปลี่ยนความเร็วของเกม แล้วสร้างปุ่ม % " "ของเครื่องคิดเลขขึ้นใหม่" -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14573,7 +14576,7 @@ msgstr "" "เกมจะเร็วขึ้นเมื่อคุณวิ่งต่อไป หากจะสร้างเกมขึ้นใหม่พร้อมตัวปรับความเร็ว " "เราต้องรู้ก่อนว่าความเร็วเปลี่ยนอย่างไร" -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. ถามเรื่องความเร็ว" @@ -14586,19 +14589,19 @@ msgstr "1. ถามเรื่องความเร็ว" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวอย่างคำถาม · เกมไดโนเสาร์" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. หากฎการเปลี่ยนความเร็ว" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14607,12 +14610,12 @@ msgstr "" "REA ช่วยให้เอเจนต์อ่านโค้ดของเกมที่กำลังทำงานได้ ความเร็วเริ่มที่ 6 " "และเพิ่มขึ้นเล็กน้อยทุกครั้งที่อัปเดตขณะที่ยังต่ำกว่า 13" -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. ลองเล่นผลลัพธ์" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14621,14 +14624,14 @@ msgstr "" "เรานำกฎนี้มาสร้างมินิเกมด้านล่างและเพิ่มแถบเลื่อนความเร็ว เริ่มเล่น " "แล้วเลือกความเร็วของคุณเอง" -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "เปิด JavaScript เพื่อเล่น คุณยังอ่านกฎและเปิดดูซอร์สโค้ดด้านล่างได้" -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14637,7 +14640,7 @@ msgstr "" "ปุ่ม % ทำงานต่างกันหลัง + และ × มาหากฎทั้งสองแล้วลองในเครื่องคิดเลขเล็ก ๆ " "กัน" -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. ถามเรื่องปุ่ม %" @@ -14650,37 +14653,37 @@ msgstr "1. ถามเรื่องปุ่ม %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}ตัวอย่างคำถาม · เครื่องคิดเลข" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. หากฎทั้งสอง" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "REA ช่วยให้เอเจนต์อ่านโค้ดที่อยู่เบื้องหลังปุ่ม % โค้ดนี้ใช้กฎสองแบบ:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. ลองปุ่ม %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "เราสร้างกฎทั้งสองขึ้นใหม่ด้านล่าง เลือก + หรือ × กด % แล้วกด =" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14688,7 +14691,7 @@ msgstr "{ph0}อ่าน FAQ{ph1} — การตั้งค่าและ #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14698,13 +14701,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — รายงานบั๊กหรือขอฟีเจอร์" -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "ตั้งค่าสำหรับแพลตฟอร์มของคุณ:" @@ -14712,14 +14715,14 @@ msgstr "ตั้งค่าสำหรับแพลตฟอร์มขอ #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "วิธีติดตั้งอื่น: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14734,7 +14737,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14749,7 +14752,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14760,7 +14763,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14771,7 +14774,7 @@ msgstr "" "คำสั่งตั้งค่าเริ่มต้นคือ {ph1}" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14783,89 +14786,89 @@ msgstr "" "แสดงรายการฟังก์ชันและสตริง " "แล้วอธิบายส่วนที่จัดการอินพุตของผู้ใช้พร้อมอ้างอิงโค้ด" -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "ผู้มีส่วนร่วม" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "ข้ามไปที่เนื้อหา" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}หน้าแรก{ph1} / ผู้มีส่วนร่วม" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "ร่วมกันสร้าง REA" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "ขอบคุณทุกคนที่ช่วยให้ REA ดีขึ้น" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "โค้ด เอกสาร การทดสอบ การแปล และไอเดีย — คุณมีส่วนร่วมได้หลายวิธี" -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "วิธีมีส่วนร่วม" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "ร่วมพูดคุย →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "ผู้มีส่วนร่วม" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "ค้นหาผู้มีส่วนร่วม" @@ -14873,13 +14876,13 @@ msgstr "ค้นหาผู้มีส่วนร่วม" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "จาก {ph0}รายชื่อผู้มีส่วนร่วมบน GitHub{ph1} · อัปเดตเมื่อ {ph2}" -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "ไม่พบผู้มีส่วนร่วมที่ตรงกัน ลองใช้ชื่อผู้ใช้อื่น" @@ -14895,12 +14898,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "รู้จักผู้ที่ร่วมพัฒนาโค้ด เอกสาร การทดสอบ และไอเดียให้ REA" -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "ชื่อผู้ใช้ GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "กลับขึ้นด้านบน" diff --git a/website/locales/tr/messages.po b/website/locales/tr/messages.po index 2def09e37e8..1c77760f6ec 100644 --- a/website/locales/tr/messages.po +++ b/website/locales/tr/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Anasayfa{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Tersine mühendislik üzerine düşünceler." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Oyun rekonstrüksiyonu{ph0}Deneme" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Tersine mühendislikte endüstri devrimi" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "TH08, TH095 ve TH04’ün manuel olarak yeniden yapılandırılması bana projeler " "arasında biriken ajanlar, doğrulama ve bilgi hakkında bilgi verdi." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Makaleyi okuyun" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Yazan N0zoM1z0 · 10 Ekim 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Tersine mühendislik üzerine düşünceler, REA ve AI ajanları ile pratik " "deneyimlerden yararlanma." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA - Yazılımın nasıl çalıştığını öğrenin. Kodlama ajanınızla tersine " "mühendislik yapın." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA ana sayfası" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Ana menü" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "GitHub’da REA" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "REA Discord topluluğuna katıl" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "REA’yı X’te takip et" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -265,35 +265,35 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Anasayfa{ph1} / {ph2}Blog{ph3} / Touhou rekonstrüksiyonu" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Deneme * Touhou rekonstrüksiyonu" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Tersine mühendislikte sanayi devrimi." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Yazan N0zoM1z0 · 10 Ekim 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Önemli noktalar" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -356,65 +356,65 @@ msgstr "" "{ph0}RE’nin sanayi devriminin ilk günlerindeyiz.{ph1} Yöntemler hâlâ " "şekilleniyor. Keşfedilecek çok şey kaldı." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Deneyim nasıl birikir?" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}İnsan yönü{ph1} * Hedef ve kabul kriterleri" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Özerklik" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Ajan" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Bir deney seçin.{ph0}Bir hipotez öner." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Doğrulama" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Doğrulama ölçütü" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Somut bir referansa{ph0}karşı test edin." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Depo" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Çalışma belleği" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -423,7 +423,7 @@ msgstr "Kod, kanıt,{ph0}kontroller ve dersler." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -432,26 +432,26 @@ msgstr "Uyumsuzluk{ph0}{ph1}Hipotezi gözden geçirin{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Daha iyi bir{ph0}{ph1}başlangıç noktası{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Yeniden kullanım" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Geçti{ph1} * Sonucu ve kanıtını saklayın" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -460,14 +460,14 @@ msgstr "" "Her proje bir sonrakini daha iyi bir başlangıç noktasıyla bırakır. Bu, bir " "boşluk keşfettiğimizde kontrolleri düzeltmeyi de içerir." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Bu makalede" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -475,7 +475,7 @@ msgstr "{ph0}Ağustos 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -483,7 +483,7 @@ msgstr "{ph0} TH08 : devamı{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -491,7 +491,7 @@ msgstr "{ph0}İki yaklaşım{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -499,7 +499,7 @@ msgstr "{ph0}TH095: deneyimin birikmesi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -507,7 +507,7 @@ msgstr "{ph0} TH04: mimariler arası{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -515,7 +515,7 @@ msgstr "{ph0}Tam eşleşmeden okunabilirliğe{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -523,18 +523,18 @@ msgstr "{ph0}Endüstriyel değişim{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Ne mümkün olur{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Ağustos 2026'da neler değişti" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -549,7 +549,7 @@ msgstr "" "harcamak anlamına geliyordu. Aynı zamanda kafamda giderek daha büyük bir " "resim tutmak anlamına geliyordu." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -563,7 +563,7 @@ msgstr "" "Yöntem başka yerlerde yararlı olabilir, ancak her alanın güvenilir bir " "referansa karşı neyi kontrol edebileceğini belirlemesi gerekir." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -571,12 +571,12 @@ msgid "" "development tools. Touhou reconstruction gave me a substantial project in " "which to find out." msgstr "" -"Ağustos 2026'da ajan odaklı tersine mühendisliği ciddi bir şekilde keşfetmeye " -"başladım. Bir ajanın programa ve sıradan geliştirme araçlarına erişimle ne " -"kadar ileri gidebileceğini görmek istedim. Touhou'nun yeniden inşası bana " -"öğrenmem gereken önemli bir proje verdi." +"Ağustos 2026'da ajan odaklı tersine mühendisliği ciddi bir şekilde " +"keşfetmeye başladım. Bir ajanın programa ve sıradan geliştirme araçlarına " +"erişimle ne kadar ileri gidebileceğini görmek istedim. Touhou'nun yeniden " +"inşası bana öğrenmem gereken önemli bir proje verdi." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -588,12 +588,12 @@ msgid "" msgstr "" "Erken ilerleme şaşırtıcıydı. Ben her adımı seçmeden bir soruşturma devam " "edebilir. Başarısız bir karşılaştırma aracıyı başka bir çağırana " -"gönderebilir. Küçük bir teşhis yazabilir ve daha sonra ne deneyeceğine karar " -"vermek için sonucu kullanabilir. Bu özgürlüğü vermek bir fark yarattı: " -"Projenin yönüne ve kontrollerinin güvenilir olup olmadığına daha fazla dikkat " -"edebilirdim." +"gönderebilir. Küçük bir teşhis yazabilir ve daha sonra ne deneyeceğine karar" +" vermek için sonucu kullanabilir. Bu özgürlüğü vermek bir fark yarattı: " +"Projenin yönüne ve kontrollerinin güvenilir olup olmadığına daha fazla " +"dikkat edebilirdim." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -604,7 +604,7 @@ msgstr "" "kalacağını merak etmeye başladım. Bir sonraki oyun yeni öğrendiğimiz her " "şeyden faydalanır mı?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: insan işi üzerine inşa etmek" @@ -613,7 +613,7 @@ msgstr "TH08: insan işi üzerine inşa etmek" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -627,7 +627,7 @@ msgstr "" " bir temel verdi. Devamında koruduğum yapı bilgisi ve katkıların tarihi ile " "geldi." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -638,7 +638,7 @@ msgstr "" "Bağımsız devamım 13 Ağustos'ta başladı. 19 Ağustos'a kadar defter, " "tanımlanan 1.107 oyun işlevinin tümü için kaynak kaydetti." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -649,7 +649,7 @@ msgstr "" "Linux portu işlendi. Bunu bir Web baskısı izledi. Yerel Linux 64 bit sürümü " "30 Ağustos'ta geldi." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -664,7 +664,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -677,18 +677,18 @@ msgid "" msgstr "" "Bu, referans kontrollerini işin merkezinde yaptı. Onlara {ph0}doğrulama " "referansları (oracle){ph1} diyorum. Bir kod karşılaştırması, yeniden " -"yapılandırılmış bir işlevin orijinal talimatları yeniden üretip üretmediğini " -"bize söyleyebilir. Bir çalışma zamanı denetimi, uygulanan bir rotanın " -"beklenen duruma ulaşıp ulaşmadığını bize söyleyebilir. Temsilci bir açıklama " -"önerir ve onu test eder; Bir uyumsuzluk ona araştırması gereken belirli bir " -"şey verir." +"yapılandırılmış bir işlevin orijinal talimatları yeniden üretip üretmediğini" +" bize söyleyebilir. Bir çalışma zamanı denetimi, uygulanan bir rotanın " +"beklenen duruma ulaşıp ulaşmadığını bize söyleyebilir. Temsilci bir açıklama" +" önerir ve onu test eder; Bir uyumsuzluk ona araştırması gereken belirli bir" +" şey verir." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Yanlış sabitle tam bir eşleşme" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -699,7 +699,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -707,12 +707,12 @@ msgid "" "auto-collection. The reconstructed source checked player power against " "{ph0}. The original used {ph1}, the maximum-power threshold." msgstr "" -"Eylül ayında, aşağı akış Switch portu tarafından bildirilen bir hata, öğenin " -"otomatik toplanmasına geri döndü. Yeniden oluşturulan kaynak, oyuncu gücünü " -"{ph0}'a karşı kontrol etti. Orijinal, maksimum güç eşiği olan {ph1}'ı " +"Eylül ayında, aşağı akış Switch portu tarafından bildirilen bir hata, öğenin" +" otomatik toplanmasına geri döndü. Yeniden oluşturulan kaynak, oyuncu gücünü" +" {ph0}'a karşı kontrol etti. Orijinal, maksimum güç eşiği olan {ph1}'ı " "kullandı." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -727,13 +727,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "{ph0}Yine de işlev tam karşılaştırmayı çoktan geçmişti.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -748,7 +748,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -764,7 +764,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -778,7 +778,7 @@ msgstr "" "denetim{ph3} daha sonra 1.548 kayan noktalı sabit referansı inceledi. Kabul " "edilen beş işlevde on iki yanlış referans daha buldu." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -792,7 +792,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -802,7 +802,7 @@ msgstr "" "{ph0}Doğrulama referansının (oracle) da yeniden yapılandırılması " "gerekiyordu.{ph1} Tamir etmek, oyunu tamir etmenin bir parçasıydı." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -820,7 +820,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -836,17 +836,17 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, 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}Başarılı bir toplu iş bize hem kurtarılan kodu hem de bir sonraki toplu " -"iş için daha iyi bir ortam sağladı.{ph1}" +"{ph0}Başarılı bir toplu iş bize hem kurtarılan kodu hem de bir sonraki toplu" +" iş için daha iyi bir ortam sağladı.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "İki farklı yeniden yapılanma fikri" @@ -855,7 +855,7 @@ msgstr "İki farklı yeniden yapılanma fikri" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -864,10 +864,10 @@ msgid "" " privately until completion. One passage reads:" msgstr "" "GensokyoClub'NUN {ph0}kamuya açık README{ph1}, bu tür çalışmalarla olan " -"anlaşmazlığını açıkça ortaya koyuyor. Bildirim, tamamlanana kadar daha fazla " -"gelişmenin özel olarak gerçekleşeceğini duyurdu. Bir pasaj okur:" +"anlaşmazlığını açıkça ortaya koyuyor. Bildirim, tamamlanana kadar daha fazla" +" gelişmenin özel olarak gerçekleşeceğini duyurdu. Bir pasaj okur:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -877,7 +877,7 @@ msgstr "" "çalışmalarımızdan aldığı yükseliş, gelecekteki ayrıştırma çabaları için kötü" " bir imaj çiziyor…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -888,13 +888,13 @@ msgid "" "contribution should be judged." msgstr "" "Bildiride ayrıca bakıcılar üzerindeki psikolojik yük de açıklanmaktadır. " -"Katkı politikaları, öncelikle yapay zeka ile üretilen pull request’leri hariç " -"tutar. Boş zamanlarını zor işlere harcadılar ve bu iş devam etmemi mümkün " -"kıldı. Arkasındaki çabaya saygı duyuyorum. Tartışmak istediğim anlaşmazlık, " -"yeniden yapılanmanın nasıl ilerlemesi gerektiği ve bir katkının nasıl " -"değerlendirilmesi gerektiği ile ilgili." +"Katkı politikaları, öncelikle yapay zeka ile üretilen pull request’leri " +"hariç tutar. Boş zamanlarını zor işlere harcadılar ve bu iş devam etmemi " +"mümkün kıldı. Arkasındaki çabaya saygı duyuyorum. Tartışmak istediğim " +"anlaşmazlık, yeniden yapılanmanın nasıl ilerlemesi gerektiği ve bir katkının" +" nasıl değerlendirilmesi gerektiği ile ilgili." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -907,18 +907,18 @@ msgstr "" "ölçüde o kişinin uzmanlığına dayanıyordu. Katılımcıya olan güven önemliydi " "çünkü akıl yürütmenin çoğu onlar çalışırken gerçekleşti." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 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 "" -"Mevcut projeler zaten bilgiyi kaynak kodunda ve derleme araçlarında koruyor. " -"Benim için değişen şey, bir ajanın bu bilgiyi bir sonraki soruşturmayı kendi " -"başına yürütmek için kullanabilmesiydi." +"Mevcut projeler zaten bilgiyi kaynak kodunda ve derleme araçlarında koruyor." +" Benim için değişen şey, bir ajanın bu bilgiyi bir sonraki soruşturmayı " +"kendi başına yürütmek için kullanabilmesiydi." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -928,12 +928,12 @@ msgid "" "agent did most of the work." msgstr "" "Devamımda, bir sonucu kabul etmenin amacına ve standardına karar veriyorum. " -"Ajanın soruşturma konusunda geniş bir özgürlüğü var. Önerilen yeniden inşası " -"daha sonra ilgili kontrolleri geçmek zorundadır. İşin çoğunu bir temsilci " +"Ajanın soruşturma konusunda geniş bir özgürlüğü var. Önerilen yeniden inşası" +" daha sonra ilgili kontrolleri geçmek zorundadır. İşin çoğunu bir temsilci " "yapmış olsa bile, başka bir kişinin neden bir uygulamayı seçtiğimizi " "inceleyebilmesini istiyorum." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -942,11 +942,11 @@ msgid "" " accepting a contribution." msgstr "" "Bu zor bir geçiş olabilir. Yıllarca süren özenli çalışma, çok daha hızlı " -"ilerleyen bir devamlılığın temeli olabilir. Bu, atıfla ilgili gerçek soruları " -"gündeme getiriyor. Ayrıca, bir katkıyı kabul etmeden önce bakıcıların bilmesi " -"gerekenleri de değiştirir." +"ilerleyen bir devamlılığın temeli olabilir. Bu, atıfla ilgili gerçek " +"soruları gündeme getiriyor. Ayrıca, bir katkıyı kabul etmeden önce " +"bakıcıların bilmesi gerekenleri de değiştirir." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -961,7 +961,7 @@ msgstr "" "çıktısının ne zaman yanlış olduğunu anlamalıdır. Farklı topluluklar bu " "değişimin ne kadarını üstlenmek istediklerini seçebilir." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -986,7 +986,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -998,14 +998,14 @@ msgstr "" "bildirimi{ph1} ve {ph2}katkı politikası{ph3}. Alıntı kısaltılmış bir " "alıntıdır. TH08 {ph4}kredileri ve kaynağı{ph5} devam sınırını kaydeder." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: deneyim birikmeye başlar" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1015,12 +1015,12 @@ msgid "" " much more about how to begin a reconstruction and how to keep it moving." msgstr "" "{ph0} TH095{ph1}, Mermiyi Vur, bu deneyimin değerini görmeyi çok daha " -"kolaylaştırdı. Deposu 29 Ağustos'ta defterde sıfır onaylanmış oyun işleviyle " -"başladı. Hâlâ oyunu öğrenmek zorundaydık. Ancak bir yeniden yapılanmaya nasıl " -"başlanacağı ve nasıl devam ettirileceği hakkında çok daha fazlasını zaten " -"biliyorduk." +"kolaylaştırdı. Deposu 29 Ağustos'ta defterde sıfır onaylanmış oyun işleviyle" +" başladı. Hâlâ oyunu öğrenmek zorundaydık. Ancak bir yeniden yapılanmaya " +"nasıl başlanacağı ve nasıl devam ettirileceği hakkında çok daha fazlasını " +"zaten biliyorduk." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1034,7 +1034,7 @@ msgstr "" "başlatmadan yaklaşık on iki gün sonra 10 Eylül'de oynanabilir olarak " "işaretlendi." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1045,7 +1045,7 @@ msgstr "" " bir oyun üzerinde yapılan işten yararlanabilir. Deneyim, araçlarda ve " "projenin organize edilme biçiminde zaten mevcuttu." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1056,11 +1056,11 @@ msgid "" msgstr "" "Örneğin, TH08 bize birleştirilmiş programa erken dikkat etmeyi öğretmişti. " "Kurtarılan birkaç işlev aynı duruma bağlıysa, yalıtılmış karşılaştırmaları " -"önemli bir soruyu açık bırakır. Birlikte çalıştıklarını görmeliyiz. Bu ders, " -"TH095’in tüm program derlemesine nasıl yaklaştığımızı şekillendirmeye " +"önemli bir soruyu açık bırakır. Birlikte çalıştıklarını görmeliyiz. Bu ders," +" TH095’in tüm program derlemesine nasıl yaklaştığımızı şekillendirmeye " "yardımcı oldu." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1073,7 +1073,7 @@ msgstr "" "yardımcı olmaya devam edebilir. Bir sonraki temsilci, sonuca yol açan " "soruşturmayı tekrar etmeden sonucu kullanabilir." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1088,7 +1088,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1100,7 +1100,7 @@ msgstr "" " gelir.{ph1} Bir sonraki projenin çabalarının çoğunu, hedefiyle ilgili " "gerçekte yeni olan şeylere harcayabiliriz." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1113,7 +1113,7 @@ msgstr "" "Kaynağın neden bu şekilde göründüğünü bulmak için tüm projenin geçmişini " "yeniden yapılandırmaları gerekmez." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: iş akışı farklı bir mimaride de işliyor" @@ -1122,7 +1122,7 @@ msgstr "TH04: iş akışı farklı bir mimaride de işliyor" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1138,7 +1138,7 @@ msgstr "" "gerektiriyordu. Mevcut {ph2}ReC98 çalışması{ph3} bize burada da değerli " "bilgiler ve kaynak materyaller verdi." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1146,12 +1146,12 @@ msgid "" "work is a native 64-bit port. Establishing a working DOS version first gives" " that port a reference." msgstr "" -"DOS yeniden yapılandırması şimdi çalışıyor. Manuel testimde, sonları boyunca " -"Normal rotaları tamamladım ve kayıtları kontrol ettim. Mevcut çalışma yerel " -"bir 64 bit portudur. Çalışan bir DOS sürümü oluşturmak, önce bu porta bir " +"DOS yeniden yapılandırması şimdi çalışıyor. Manuel testimde, sonları boyunca" +" Normal rotaları tamamladım ve kayıtları kontrol ettim. Mevcut çalışma yerel" +" bir 64 bit portudur. Çalışan bir DOS sürümü oluşturmak, önce bu porta bir " "başvuru verir." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1164,7 +1164,7 @@ msgstr "" "bir soruyu sonuca kadar takip edebilir ve bu sonucun bir sonraki deneye " "rehberlik etmesine izin verebilir." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1173,32 +1173,32 @@ msgid "" "evidence and checks are available, an agent can work through the question " "much as it did on a Windows title." msgstr "" -"Oyundan sona geçişi düşünün. Hangi durumun bu sınırı aştığını ve bundan hangi " -"programın sorumlu olduğunu bilmemiz gerekiyor. Bu DOS ürününe karşı " +"Oyundan sona geçişi düşünün. Hangi durumun bu sınırı aştığını ve bundan " +"hangi programın sorumlu olduğunu bilmemiz gerekiyor. Bu DOS ürününe karşı " "araştırabileceğimiz bir şey. Kanıt ve kontroller mevcut olduğunda, bir " "temsilci, bir Windows başlığında olduğu gibi soru üzerinde de çalışabilir." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 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 "" -"Bu nedenle TH04 argüman için önemlidir. Önemli bir platform değişikliği bizi " -"yeni bir çalışma şekliyle baştan başlamaya zorlamadı. Mimari sorunu " +"Bu nedenle TH04 argüman için önemlidir. Önemli bir platform değişikliği bizi" +" yeni bir çalışma şekliyle baştan başlamaya zorlamadı. Mimari sorunu " "tanımladı; iş akışı hâlâ bize bunu çözmenin bir yolunu verdi." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 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 bit port için artık yeni uygulamayı dos'ta kurtarılmış davranışlara karşı " -"inceleyebiliriz. Yeniden yapılanmadan elde edilen bilgi, porta inşa edilecek " -"bir şey verir." +"64 bit port için artık yeni uygulamayı dos'ta kurtarılmış davranışlara karşı" +" inceleyebiliriz. Yeniden yapılanmadan elde edilen bilgi, porta inşa " +"edilecek bir şey verir." #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, 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 Ekim 2026 itibariyle proje durumu: {ph0}DOS yeniden yapılandırma ve manuel " -"test{ph1} · {ph2}64 bit port{ph3}. Port geliştirme aşamasındadır." +"10 Ekim 2026 itibariyle proje durumu: {ph0}DOS yeniden yapılandırma ve " +"manuel test{ph1} · {ph2}64 bit port{ph3}. Port geliştirme aşamasındadır." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Tam koddan okunabilir koda" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1230,7 +1230,7 @@ msgstr "" "Bir yeniden yapılanma işe yaradığında, başka birinin bunu anlayabilmesini " "istiyorum." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1238,14 +1238,14 @@ msgid "" "follow the game's logic without keeping the executable's memory layout in " "their head." msgstr "" -"Bana göre, assembly ve ham ofsetler eski arkadaşlar gibi hissedebilir. Bunun " -"biraz sıra dışı bir \"okunabilir\" tanımı olduğunun farkındayım.\" Çoğu " +"Bana göre, assembly ve ham ofsetler eski arkadaşlar gibi hissedebilir. Bunun" +" biraz sıra dışı bir \"okunabilir\" tanımı olduğunun farkındayım.\" Çoğu " "insan, yürütülebilir dosyanın bellek düzenini kafasında tutmadan oyunun " "mantığını takip etmeyi tercih eder." #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1262,7 +1262,7 @@ msgstr "" "kaynakla birlikte tutarız, böylece bir sonraki kişi bu yorumun nereden " "geldiğini görebilir." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1271,20 +1271,20 @@ msgid "" "To move the behavior safely, we need to recover the relationship behind the " "old memory access." msgstr "" -"Bu özellikle bir yazılım portu için önemli hale gelir. Mutlak bir adres bana " -"eski yürütülebilir dosyada bir şeyin nerede yaşadığını söyler. 64 bitlik bir " -"uygulamaya, hangi nesnenin o duruma sahip olması gerektiğine karar vermede " -"çok az yardım sağlar. Davranışı güvenli bir şekilde taşımak için eski bellek " -"erişiminin arkasındaki ilişkiyi kurtarmamız gerekiyor." +"Bu özellikle bir yazılım portu için önemli hale gelir. Mutlak bir adres bana" +" eski yürütülebilir dosyada bir şeyin nerede yaşadığını söyler. 64 bitlik " +"bir uygulamaya, hangi nesnenin o duruma sahip olması gerektiğine karar " +"vermede çok az yardım sağlar. Davranışı güvenli bir şekilde taşımak için " +"eski bellek erişiminin arkasındaki ilişkiyi kurtarmamız gerekiyor." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Şu anda kullandığım sıra:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1300,7 +1300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1316,7 +1316,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1332,7 +1332,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1340,13 +1340,14 @@ msgid "" "environment, such as a native 64-bit build. The reconstructed original-" "platform game remains a reference for comparing how the port behaves." msgstr "" -"{ph0}Modern portu yapın.{ph1} Yerleşik davranışı, yerel bir 64 bit yapı gibi " -"yeni ortama taşıyın. Yeniden yapılandırılmış orijinal platform oyunu, portun " -"nasıl davrandığını karşılaştırmak için bir referans olmaya devam ediyor." +"{ph0}Modern portu yapın.{ph1} Yerleşik davranışı, yerel bir 64 bit yapı gibi" +" yeni ortama taşıyın. Yeniden yapılandırılmış orijinal platform oyunu, " +"portun nasıl davrandığını karşılaştırmak için bir referans olmaya devam " +"ediyor." #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1363,7 +1364,7 @@ msgstr "" "programın egzersiz yaptığımız yollar boyunca hâlâ doğru şekilde " "oluşturulduğunu ve davrandığını kontrol eder." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1372,12 +1373,12 @@ msgid "" "concrete failure to investigate before carrying a refactor further." msgstr "" "Farklı hatalar yakalarlar. Bir tür değişikliği oluşturulan talimatları " -"değiştirebilir. Sahiplik değişikliği, eyaletin farklı kopyalarını kullanarak " -"oyunun iki bölümünü bırakabilir. Her iki kontrolün de mevcut tutulması, " +"değiştirebilir. Sahiplik değişikliği, eyaletin farklı kopyalarını kullanarak" +" oyunun iki bölümünü bırakabilir. Her iki kontrolün de mevcut tutulması, " "acenteye bir refaktörü daha fazla taşımadan önce soruşturmada somut bir " "başarısızlık sağlar." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1395,7 +1396,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1413,7 +1414,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1424,12 +1425,12 @@ msgstr "" "yapılanma, kurtarılan bilgiyi kullanılabilir hale getirir.{ph1} Daha sonra " "her ikisinin üzerine bir port inşa edilebilir." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Bunu endüstriyel bir değişim yapan nedir" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1442,7 +1443,7 @@ msgstr "" "en faydalı şeylerden biri haline geldi. Daha iyi bir araç, ihtiyacı olan " "sonraki her işleve yardımcı olabilir." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1455,7 +1456,7 @@ msgstr "" "yerde takip etmek için yeterli özgürlüğe ihtiyacı vardır. Her adımı yazmamı " "beklemek zorunda kalırsa, işin çoğu dikkatime bağlı kalır." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1463,13 +1464,13 @@ msgid "" "understand the mistake well enough to try again. I still have to decide " "whether the accumulated evidence supports a project milestone." msgstr "" -"Ajanın yanlış hipotezler yapmasını bekliyorum. Önemli olan, onları test edip " -"sonuçtan öğrenip öğrenemeyeceğimizdir. Başarısız bir kontrol, hatayı tekrar " -"deneyecek kadar iyi anlamasına yardımcı olmalıdır. Birikmiş kanıtların bir " +"Ajanın yanlış hipotezler yapmasını bekliyorum. Önemli olan, onları test edip" +" sonuçtan öğrenip öğrenemeyeceğimizdir. Başarısız bir kontrol, hatayı tekrar" +" deneyecek kadar iyi anlamasına yardımcı olmalıdır. Birikmiş kanıtların bir " "proje kilometre taşını destekleyip desteklemediğine hâlâ karar vermem " "gerekiyor." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1478,13 +1479,13 @@ msgid "" "use those to test the source it proposes and see where its explanation holds" " up." msgstr "" -"REA, aracıya analiz araçlarına erişim sağlar. Bir işlevin çağıranıyla ilgili " -"bir soru, doğrudan o çağıranı incelemeye yönlendirebilir. Yeniden " +"REA, aracıya analiz araçlarına erişim sağlar. Bir işlevin çağıranıyla ilgili" +" bir soru, doğrudan o çağıranı incelemeye yönlendirebilir. Yeniden " "yapılandırma projesi derleyiciyi ve kendi referans kontrollerini sağlar. " "Aracı, önerdiği kaynağı test etmek ve açıklamasının nerede geçerli olduğunu " "görmek için bunları kullanabilir." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1502,7 +1503,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1522,7 +1523,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1532,14 +1533,14 @@ msgid "" " 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}Bu endüstriyel değişimin ilk aşamalarındayız.{ph1} Altyapının çoğu hâlâ " -"olgunlaşmamış durumda. Temsilciler, kontrollerimizin desteklemek için " +"{ph0}Bu endüstriyel değişimin ilk aşamalarındayız.{ph1} Altyapının çoğu hâlâ" +" olgunlaşmamış durumda. Temsilciler, kontrollerimizin desteklemek için " "tasarlandığından daha hızlı hareket edebilir, bu nedenle süreç onlarla " "birlikte gelişmelidir. Paylaşılan bir araçta bir kusur bulduğumuzda, onu " "onarmalı ve etkilediği sonuçları tekrar gözden geçirmeliyiz. Bir sonraki " "proje daha sonra daha güçlü bir aracı devralabilir." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1554,7 +1555,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1566,7 +1567,7 @@ msgstr "" "kontrollerini ve derslerini ileriye taşımak için ortak bir yol sunar. Bir " "oyun üzerinde çalışmak, diğerinin başlangıç koşullarını iyileştirebilir." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1578,12 +1579,12 @@ msgstr "" "araçları geliştirmek, bir sonraki kişinin - veya bir sonraki temsilcinin - " "ne kadarını yapabileceğini değiştirir." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Şimdi düşünebileceğimiz projeler" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1595,7 +1596,7 @@ msgstr "" "verebileceğimden daha fazla kendi dikkatimi talep edebilir. Birçok proje " "fikir olarak kalacaktır." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1605,14 +1606,14 @@ msgid "" "off after the first version runs." msgstr "" "Şimdi böyle bir projeyi tekrar tekrar araştırarak sürdürmenin bir yolunu " -"görebiliyorum. Çalışan bir yeniden yapılanma elde etmek, bir yazılım portunu " -"daha pratik hale getirir. Okunabilir anlambilimi kurtarmak, bir başkasının " +"görebiliyorum. Çalışan bir yeniden yapılanma elde etmek, bir yazılım portunu" +" daha pratik hale getirir. Okunabilir anlambilimi kurtarmak, bir başkasının " "bir modu keşfetmesini kolaylaştırır. Oyunu anlamak için harcanan çaba, ilk " "sürüm yayınlandıktan sonra karşılığını vermeye devam edebilir." #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1623,7 +1624,7 @@ msgstr "" "geri bildirim ve birikmiş bilgi, bir temsilcinin bu konuda güvenilir bir " "şekilde çalışmasına izin verir?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1634,12 +1635,12 @@ msgstr "" " bir sonrakine yaklaşma şeklimizi geliştirebilir. Bunun bizi ne kadar ileri " "götürebileceğini araştırmaya devam etmek istiyorum." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Proje kilometre taşları ve kaynakları" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1673,7 +1674,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1707,7 +1708,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1725,7 +1726,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1749,7 +1750,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1771,7 +1772,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1787,7 +1788,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1808,7 +1809,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1822,7 +1823,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1843,27 +1844,27 @@ msgstr "" "N0zoM1z0, manuel tersine mühendislik, AI ajanlarıyla Touhou rekonstrüksiyonu" " ve bilginin TH08, TH095 ve PC-98 TH04'DA nasıl birleştiğini yansıtır." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Projeler arasında taşınan deneyim" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Touhou yeniden yapılanma denemesi" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -1872,18 +1873,18 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Ana Sayfa{ph1}{ph2}/{ph3} Dinozor hız laboratuvarı" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "İncele → yeniden oluştur → değiştir" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Dinozorun hız kuralını yeniden oluşturun." @@ -1892,7 +1893,7 @@ msgstr "Dinozorun hız kuralını yeniden oluşturun." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1904,15 +1905,15 @@ msgstr "" "bulun. REA {ph0}çalışan betiği döndürdü;{ph1} Bu mini oyunu " "{ph2}ayarlanabilir hızda oluşturmak için kuralını kullandık.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Bu sayfada" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1920,7 +1921,7 @@ msgstr "{ph0}Hızı oynayın ve değiştirin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1928,7 +1929,7 @@ msgstr "{ph0}Kurtarılan kuralı okuyun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1936,18 +1937,18 @@ msgstr "{ph0}Yeniden yapılanmayı kontrol edin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Analizi deneyin{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Hızı oynayın ve değiştirin" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1959,49 +1960,49 @@ msgstr "" "bir hıza geçer. 6'dan başlamak ve yavaş yavaş tekrar hızlandırmak için " "kurtarılan kuralı seçin." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Yeniden oluşturulan oyunu oyna" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Oyna" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Zıpla ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Yeniden başlat" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Hız" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Kurtarılan hızlanma kuralını kullanın" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Orijinal kural: 6'dan başlayın, ardından 13'e doğru artırın." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Kendi hızınızı ayarlamak için kaydırıcıyı hareket ettirin. Boşluk veya " "Atlama bir kaktüsü temizler." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2010,7 +2011,7 @@ msgstr "" "Yeniden yapılandırmayı oynatmak için JavaScript’i etkinleştirin. Yukarıdaki " "kod ve açıklama okunabilir durumda kalır." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Döndürülen REA betiği okuyun" @@ -2018,7 +2019,7 @@ msgstr "Döndürülen REA betiği okuyun" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2032,7 +2033,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2042,18 +2043,18 @@ msgstr "" "Ayarlar {ph0}, {ph1} ve {ph2}'tür. Oyun bu dalı çarpışma olmadan bir " "güncellemede çalıştırır." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Yeni oyunda aynı kuralı kullanın" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Kopyala" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2070,18 +2071,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Hız kuralını indirin{ph1} * {ph2}Oyun kodunu okuyun{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Yeniden yapılanmayı kontrol edin" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2092,27 +2093,27 @@ msgstr "" "dışı olarak adlandırdık. Kaydedilen hızları, kurtarılan kuralın tekrarı ile " "karşılaştırın." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Güncellemeler" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Orijinal oyun" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Yeniden kural" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Hız kontrolünü çalıştırın" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2121,14 +2122,14 @@ msgstr "" "Değerler üç ondalık basamağa yuvarlanır. Şube eklemeden önce kontrol eder, " "böylece son artış 13'ün biraz üzerinde hız alabilir." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Analizi kendiniz deneyin" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2137,16 +2138,16 @@ msgstr "{ph0}Kodlama aracınızla REA’yı ayarlayın.{ph1}" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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}Tarayıcı bağlantı adımlarını{ph1} izleyin ve {ph2} sayfasını URL olarak " -"kullanın." +"{ph0}Tarayıcı bağlantı adımlarını{ph1} izleyin ve {ph2} sayfasını URL olarak" +" kullanın." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2163,7 +2164,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2175,7 +2176,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Kodlama aracınız" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2184,12 +2185,12 @@ msgid "" "speed.{ph3}{ph4}{ph5}" msgstr "" "{ph0}›{ph1}{ph2}Bu dinozor oyununu incelemek için REA kullanın. Neden daha " -"hızlı oluyor? Hız kuralını gösterin, ardından ayarlanabilir hıza sahip küçük " -"bir versiyon oluşturun.{ph3}{ph4}{ph5}" +"hızlı oluyor? Hız kuralını gösterin, ardından ayarlanabilir hıza sahip küçük" +" bir versiyon oluşturun.{ph3}{ph4}{ph5}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2204,7 +2205,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2230,12 +2231,12 @@ msgstr "" "Dinozor oyununun hız kuralını REA ile okuyun, yeniden oluşturun, ardından " "hızı değiştirin ve oynayın." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Dinozor hız rekonstrüksiyonu" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2244,52 +2245,52 @@ msgstr "" "Dinozor mini oyunu. Oyun odaklanırken Atlama düğmesini kullanın veya Boşluk " "tuşuna basın." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Yeniden oluşturulan hız kuralını kopyala" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Dinozor analizi istemini kopyala" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Anasayfa{ph1} / SSS" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA SSS." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Kurulum, güncellemeler, analiz ve sorun giderme." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Konular" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2297,7 +2298,7 @@ msgstr "{ph0}Kurulum ve güncellemeler{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2305,7 +2306,7 @@ msgstr "{ph0}Analiz{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2313,31 +2314,31 @@ msgstr "{ph0}Sorun giderme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Veri ve paylaşım{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Kurulum ve güncellemeler" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "REA’yı nasıl kurarım?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Terminal · ajan kurulumu" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Kopyala" @@ -2345,7 +2346,7 @@ msgstr "Kopyala" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2355,16 +2356,16 @@ msgid "" "first analysis." msgstr "" "Kurulum, REA’nın MCP bağlantısını kaydeder ve ilgili analiz becerisini " -"yükler. Tamamlandığında ajanınızı yeniden başlatın, ardından dosya yolunu ve " -"sorunuzu verin. Gereksinimler ve ilk analiz için {ph0}kurulum kılavuzuna{ph1} " -"bakın." +"yükler. Tamamlandığında ajanınızı yeniden başlatın, ardından dosya yolunu ve" +" sorunuzu verin. Gereksinimler ve ilk analiz için {ph0}kurulum " +"kılavuzuna{ph1} bakın." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Hangi kodlama aracıları REA kullanabilir?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2372,25 +2373,25 @@ msgid "" "Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP, and VS Code." " Grok Bot's connector is added from its chat." msgstr "" -"Yerel MCP sunucularını destekleyen herhangi bir aracı. Kurulum içerir Claude " -"Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, " -"Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP ve VS Code . " -"Grok Bot'un konektörü sohbetinden eklenir." +"Yerel MCP sunucularını destekleyen herhangi bir aracı. Kurulum içerir Claude" +" Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode," +" Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP ve VS Code ." +" Grok Bot'un konektörü sohbetinden eklenir." #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Kodlama aracınızı bağlayın{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "REA’yı nasıl güncellerim?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2399,13 +2400,13 @@ msgstr "" "REA, hata düzeltmeleri de dahil olmak üzere sık sık yayınlanır. CLI’yı npm " "ile kurduysanız:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Terminal * kurulu CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2415,14 +2416,14 @@ msgstr "" "Güncelleştirme tarafından yazdırılan kur yenile komutunu izleyin. Aracınızı " "{ph0} aracılığıyla kurarsanız, çalıştırın:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Terminal · ajan kurulumunu yenile" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2435,14 +2436,14 @@ msgstr "" " çalıştırın. Tek seferlik CLI kullanımı için {ph0} ifadesinden sonra komutu " "ekleyin." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "skills.sh’den beceriyi kurmak yeterli mi?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2454,24 +2455,24 @@ msgstr "" "için {ph0}REA kurulumunu{ph1} çalıştırın ve eşleşen beceriyi yükleyin, " "ardından aracınızı yeniden başlatın, böylece araçları çağırabilir." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Analiz" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "REA ile neleri analiz edebilirim?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Sahip olduğunuz yazılım türüyle başlayın:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2483,7 +2484,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2495,7 +2496,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2505,7 +2506,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2517,12 +2518,12 @@ msgstr "" "paketlenmiş kaynaklar için iş akışlarına sahiptir. Çalışılan soruşturmalar " "için {ph0}vaka incelemelerine bakın{ph1}." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Hopper, Ghidra veya IDA’ya ihtiyacım var mı?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2534,7 +2535,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2544,15 +2545,15 @@ msgid "" msgstr "" "Mevcut Ghidra veya IDA kurulumunuzu bağlayın veya kurulumun Hopper’ı " "algılamasına izin verin ve bir kurulum önerin. Ev sahibiniz ve hedefiniz " -"hangi sağlayıcının kullanılabileceğini belirler. {ph0}Yerel ikili dosyaların " -"analizini ayarlayın{ph1}." +"hangi sağlayıcının kullanılabileceğini belirler. {ph0}Yerel ikili dosyaların" +" analizini ayarlayın{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "REA’yı kodlama ajanı olmadan kullanabilir miyim?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2561,31 +2562,31 @@ msgstr "" "Evet. CLI aynı analiz iş akışlarını kullanır. Yerel bir JavaScript veya " "Electron uygulaması için:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Terminal * statik uygulama analizi" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, 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 "" -"Yolu ayıklanan bir uygulama klasörü veya ASAR dosyasıyla değiştirin. Kurulum " -"seçenekleri için CLI’yı {ph0}kullanın.{ph1}" +"Yolu ayıklanan bir uygulama klasörü veya ASAR dosyasıyla değiştirin. Kurulum" +" seçenekleri için CLI’yı {ph0}kullanın.{ph1}" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "REA hangi kodu döndürür?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2600,7 +2601,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2612,12 +2613,12 @@ msgstr "" "test etmek için kullanır. DX-Ball {ph0}hesaplaması{ph1} ve {ph2}CTF bayrak " "denetleyicisi{ph3}, bu işlemin nasıl çalıştığını gösterir." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Ajanıma ne sormalıyım?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2634,7 +2635,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2642,7 +2643,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Kodlama aracınız" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2652,18 +2653,18 @@ msgstr "" "Yolu hedefinizle değiştirin. {ph0}Kılavuzlar{ph1}, yerel, Electron ve " "tarayıcı örnekleri için bilgi istemleri sağlar." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Sorun giderme" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Temsilcim neden REA araçlarını göremiyor?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2673,7 +2674,7 @@ msgstr "" "Aracınızı Kurulumdan sonra yeniden başlatın veya yeniden bağlayın. REA " "kaydını {ph0} ile kontrol edin; Codex için:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Terminal * bir müşteriyi kontrol edin" @@ -2681,7 +2682,7 @@ msgstr "Terminal * bir müşteriyi kontrol edin" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2691,14 +2692,14 @@ msgstr "" "{ph0} yerine {ph1} veya {ph2} gibi istemci kimliğinizi yazın. Rapor eksik " "veya eski bir kayıt gösteriyorsa, bu istemci için kurulumu çalıştırın:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Terminal * bir müşterinin kurulumunu onarın" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2710,14 +2711,14 @@ msgstr "" "ancak araçlar yoksa, istemcinin MCP bağlantı hatasını kontrol edin. Daha " "{ph0}fazla kurulum teşhisi{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Önce Hopper’ı çalıştırmam gerekiyor mu?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2725,18 +2726,18 @@ msgid "" "run choice of demo mode or license activation before unattended analysis. " "{ph0}See native provider setup{ph1}." msgstr "" -"REA, bir işlem gerektiğinde Hopper’ı başlatır. macOS’ta, katılımsız analizden " -"önce ilk çalıştırma demo modu seçimini veya lisans aktivasyonunu tamamlayın. " -"{ph0}Yerel sağlayıcı kurulumuna bakın{ph1}." +"REA, bir işlem gerektiğinde Hopper’ı başlatır. macOS’ta, katılımsız " +"analizden önce ilk çalıştırma demo modu seçimini veya lisans aktivasyonunu " +"tamamlayın. {ph0}Yerel sağlayıcı kurulumuna bakın{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Bir hatayla karşılaşırsam ne yapmalıyım?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2748,7 +2749,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2761,17 +2762,17 @@ msgstr "" "Sorun, makine kodu programlarının analizini içerdiğinde sağlayıcı adını " "ekleyin." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Veri ve paylaşım" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA uygulamamı yüklüyor mu?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2780,7 +2781,7 @@ msgstr "" "REA makinenizdeki hedefleri analiz eder. Aracınız sonuçları alır ve model " "sağlayıcısının veri politikası bu sonuçlar için geçerlidir." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Bir örneği nasıl paylaşabilir veya katkıda bulunabilirim?" @@ -2789,7 +2790,7 @@ msgstr "Bir örneği nasıl paylaşabilir veya katkıda bulunabilirim?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2799,13 +2800,13 @@ msgid "" "the investigation." msgstr "" "Yararlı bir REA örneğiniz var mı? Görmeyi çok isteriz. Hedefi, sorunuzu, " -"bulguları ve bunları bir {ph0}sorun{ph1} veya {ph2}çekme isteğinde{ph3} nasıl " -"kontrol ettiğinizi paylaşın. Kısa kod alıntıları ve şekiller, başkalarının " -"soruşturmayı takip etmesine yardımcı olur." +"bulguları ve bunları bir {ph0}sorun{ph1} veya {ph2}çekme isteğinde{ph3} " +"nasıl kontrol ettiğinizi paylaşın. Kısa kod alıntıları ve şekiller, " +"başkalarının soruşturmayı takip etmesine yardımcı olur." #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2830,77 +2831,77 @@ msgstr "" "Yaygın REA sorularının yanıtları: kurulum, güncellemeler, analiz araçları, " "kodlama aracıları, sorun giderme ve paylaşım örnekleri." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "REA hakkında sıkça sorulan sorular" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "REA kurulum komutunu kopyalayın" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "REA güncelleme komutunu kopyala" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Aracı kurulum yenileme komutunu kopyala" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "REA CLI analiz komutunu kopyalayın" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Örnek çözümleme istemini kopyala" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "İstemci tanılama komutunu kopyala" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Kapsamlı kurulum komutunu kopyala" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Ana Sayfa{ph1} / İlk incelemeniz" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Dışa aktarılan notların{ph0}nereye gittiğini öğrenin." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2909,14 +2910,14 @@ msgstr "" "Küçük bir uygulamayı incelemek, Notları dışa aktar düğmesini takip etmek ve " "bir ayrıntıyı kendiniz kontrol etmek için REA kullanın." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Bu alıştırmada" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2924,7 +2925,7 @@ msgstr "{ph0}1. Kurulum{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2932,7 +2933,7 @@ msgstr "{ph0}2. Dışa aktarma hakkında soru sorun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2940,7 +2941,7 @@ msgstr "{ph0}3. Cevabı takip et{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2948,13 +2949,13 @@ msgstr "{ph0}4. Bir tahmini kontrol edin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Başka bir soru sor{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Aracınızı REA'ya bağlayın" @@ -2967,30 +2968,30 @@ msgstr "1. Aracınızı REA'ya bağlayın" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Kodlama ajanınız" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Kopyala" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Veya bu komutu terminalinizde çalıştırın:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -2999,14 +3000,14 @@ msgstr "" "Planı gözden geçirin, kurulumu onaylayın ve aracınızı yeniden başlatın. " "Zaten bağlandınız mı? Aşağıdan devam edin." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. CSV’nin nerede yazıldığını sorun" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3018,7 +3019,7 @@ msgstr "" " Electron uygulamasıdır. Ajanınız, Electron'u yüklemeden veya başlatmadan " "kodunu inceleyebilir." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3030,14 +3031,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Örnek ZIP dosyasını indirin{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3047,12 +3048,12 @@ msgstr "" "Ajanınız dosya indiremiyorsa, bu arşivi kendiniz açın. {ph0} klasörünün " "yolunu ve aynı dışa aktarma sorusunu verin." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Cevabı koda geri takip edin" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Dosya ve satır referanslarıyla kısa bir açıklama arayın:" @@ -3061,7 +3062,7 @@ msgstr "Dosya ve satır referanslarıyla kısa bir açıklama arayın:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3073,20 +3074,21 @@ msgstr "" "ve {ph1} dosyasını kullanıcının İndirilenler klasörüne yazar. Sütunlar {ph2}" " ve {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Düğmeden dosya yazıcısına" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 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’nın statik analizi, mesajı işleyicisiyle eşleştirir. Hedef koddan okunur." +"REA’nın statik analizi, mesajı işleyicisiyle eşleştirir. Hedef koddan " +"okunur." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3098,18 +3100,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "{ph0}Tam kod izlemesine ve kaydedilen REA sonucuna bakın{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Bir tahmini kontrol edin" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3118,36 +3120,36 @@ msgstr "" "Virgül, CSV sütunlarını ayırır. Bir not başlığının kendisi virgül veya " "tırnak işareti içeriyorsa ne olur?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Kontrolü kendin yap" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Paketlenmemiş {ph0} klasöründe bir terminal açın:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Başka bir soru sor" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Aynı sohbette takip sorusu sorun:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " "page." msgstr "Dosya yazılamazsa ne olur? Hatayı sayfaya geri izleyin." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3160,7 +3162,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3174,7 +3176,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3188,15 +3190,15 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, 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}Kurulum veya analiz sorunlarını giderme{ph1}{ph2} REA’yı güncelleyin ve " -"takılırsanız bağlantıyı kontrol edin.{ph3}" +"{ph0}Kurulum veya analiz sorunlarını giderme{ph1}{ph2} REA’yı güncelleyin ve" +" takılırsanız bağlantıyı kontrol edin.{ph3}" #: website/public/first-investigation/index.html:6 msgctxt "page:first-investigation/index.html" @@ -3213,128 +3215,128 @@ msgstr "" "aktarılan notların nereye gittiğini sorun ve örnek bir başlıkla CSV " "biçimlendiriciyi kontrol edin." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "İlk REA araştırmanız" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "REA kurulum istemini kopyalayın" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Kurulum komutunu kopyala" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Notları Kopyala soruşturma istemi" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "CSV onay istemini kopyala" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Biçimlendirici onay komutunu kopyala" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Ana{ph1} sayfa / Başlayın" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "REA’yı ayarlayın." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Bir terminal açın ve kontrol edin:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Terminal" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Kopyala" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, 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 "" -"Koşulları kabul etmeniz istenirse Y yazın. PowerShell’i kapatın, tekrar açın, " -"ardından {ph0} çalıştırın." +"Koşulları kabul etmeniz istenirse Y yazın. PowerShell’i kapatın, tekrar " +"açın, ardından {ph0} çalıştırın." #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3346,7 +3348,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3358,7 +3360,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3366,7 +3368,7 @@ msgstr "{ph0}CLI’yı kullanın{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3380,18 +3382,18 @@ msgstr "{ph0}Yardım alma{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Kodlama ajanınız" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Veya kurulumu kendiniz çalıştırın" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Terminali nasıl açarım?" @@ -3400,7 +3402,7 @@ msgstr "Terminali nasıl açarım?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3416,7 +3418,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3430,7 +3432,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3443,7 +3445,7 @@ msgstr "{ph0} Linux:{ph1} çoğu masaüstünde {ph2} {ph3} {ph4} tuşlarına bas #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3453,7 +3455,7 @@ msgstr "" "{ph0} {ph1} ile bir komut yapıştırın ( macOS : {ph2} {ph3}; Linux " "terminalleri: {ph4} {ph5} {ph6}), ardından Enter tuşuna basın." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3464,7 +3466,7 @@ msgstr "" "ve eşleşen araştırma becerisini ekleyerek mevcut yapılandırmanın yedeğini " "alır. Değişiklikleri uygulamadan önce sorar." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "İstemcimi nasıl yeniden başlatırım?" @@ -3473,7 +3475,7 @@ msgstr "İstemcimi nasıl yeniden başlatırım?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3482,14 +3484,14 @@ msgid "" "macOS press {ph2} {ph3}; on Windows, also quit from the tray icon if there " "is one." msgstr "" -"{ph0}Masaüstü uygulamaları{ph1} (Claude Desktop, Cursor, Windsurf, VS Code): " -"uygulamadan tamamen çıkın, ardından tekrar açın. Pencereyi kapatmak yeterli " -"değil. macOS’ta {ph2} {ph3} tuşuna basın; Windows’ta varsa tepsi simgesinden " -"de çıkın." +"{ph0}Masaüstü uygulamaları{ph1} (Claude Desktop, Cursor, Windsurf, VS Code):" +" uygulamadan tamamen çıkın, ardından tekrar açın. Pencereyi kapatmak yeterli" +" değil. macOS’ta {ph2} {ph3} tuşuna basın; Windows’ta varsa tepsi " +"simgesinden de çıkın." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3499,7 +3501,7 @@ msgstr "" "{ph0}Terminal aracıları{ph1} (Claude Code, Codex, Gemini CLI ): oturumdan " "çıkın ve yeniden başlatın." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Bir klasörün tam yolunu nasıl alabilirim?" @@ -3508,7 +3510,7 @@ msgstr "Bir klasörün tam yolunu nasıl alabilirim?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3523,7 +3525,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3535,7 +3537,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3545,14 +3547,14 @@ msgstr "" "{ph0}Herhangi bir sistem:{ph1} klasörü bir terminal penceresine sürükleyin " "ve yolu görünür." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "Bir terminalde, boşluk içeren bir yolun etrafına tırnak işaretleri koyun." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3561,30 +3563,30 @@ msgstr "" "Uygulamayı çalıştırmadan bir JavaScript veya Electron uygulama klasörünü " "veya ASAR arşivini analiz edin:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Statik uygulama analizi" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, 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 "" -"Yolu çıkarılan uygulama dizininizle değiştirin veya {ph0} dosyası. Windows’ta " -"{ph1} burada çalışıyor." +"Yolu çıkarılan uygulama dizininizle değiştirin veya {ph0} dosyası. " +"Windows’ta {ph1} burada çalışıyor." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Bir uygulamanın .asar dosyasını nerede bulurum?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3595,7 +3597,7 @@ msgstr "Electron uygulamaları genellikle bir {ph0} klasöründe saklar:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3607,7 +3609,7 @@ msgstr "{ph0}Windows:{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3620,21 +3622,21 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux:{ph1} genellikle {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" "Bazı uygulamalar başka bir yere yüklenir. Uygulama klasöründe {ph0} arayın." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3642,39 +3644,40 @@ msgid "" "result." msgstr "" "Sonuç, uygulamayı tanımlar, modüller arasındaki bağlantıları gösterir ve " -"kaynak konumlarını verir. REA’nın çözemediği bağlantılar sonuçta işaretlenir." +"kaynak konumlarını verir. REA’nın çözemediği bağlantılar sonuçta " +"işaretlenir." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Kabuğunuzda kalıcı bir {ph0} komutu istiyorsanız:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "CLI’yı kurun" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}JavaScript uygulama kılavuzu ile devam edin{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Ghidra kurulumunuzu bağlayın" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Ghidra’yı Windows’a bağlayın" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3686,7 +3689,7 @@ msgstr "" "bir Ghidra 12.1.x kurulumu ve 64 bit JDK 21 veya daha yeni bir sürüm " "kullanın:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3694,27 +3697,28 @@ msgstr "" "İki yolu kurulumlarınızla değiştirin, ardından kurulum planını gözden " "geçirin." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 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 veya Linux’a bağlayın. Yukarıdaki kurulum komutunu çalıştırın; " -"Mevcut bir kurulumu algılar veya onayınız için bir kurulum planı sunar." +"Hopper’ı macOS veya Linux’a bağlayın. Yukarıdaki kurulum komutunu " +"çalıştırın; Mevcut bir kurulumu algılar veya onayınız için bir kurulum planı" +" sunar." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Yardım alma" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Temsilciniz REA’yı görmüyorsa" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3724,22 +3728,22 @@ msgstr "" "Kurulumdan sonra istemciyi yeniden başlatın veya yeniden bağlayın. REA " "bağlantısını {ph0} kontrol edin; Codex için:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Bir sağlayıcının dikkat etmesi gerekiyorsa" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Kullandığınız sağlayıcıyı kontrol edin. Ghidra için:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Bir sağlayıcıyı kontrol edin" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "Rapor, başarısız kontrolü ve önerilen bir sonraki adımı verir." @@ -3748,7 +3752,7 @@ msgstr "Rapor, başarısız kontrolü ve önerilen bir sonraki adımı verir." #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3761,7 +3765,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3775,7 +3779,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3789,7 +3793,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3810,72 +3814,72 @@ 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’yı kodlama aracınıza bağlayın veya terminalden yerel bir JavaScript veya " -"Electron uygulamasını inceleyin. Kurulum, ilk sorular ve yerel sağlayıcı " +"REA’yı kodlama aracınıza bağlayın veya terminalden yerel bir JavaScript veya" +" Electron uygulamasını inceleyin. Kurulum, ilk sorular ve yerel sağlayıcı " "kılavuzları." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Node.js sürüm kontrolünü kopyalayın" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Windows için Node.js kurulum komutunu kopyalayın" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Homebrew Node.js kurulum komutunu kopyalayın" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Linux için fnm kurulum komutunu kopyalayın" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Linux için Node.js 24 komutlarını kopyalayın" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA başlangıç kılavuzu" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "REA kurulum istemini kopyalayın" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "JavaScript analiz komutunu kopyalayın" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "CLI kurulum komutunu kopyalayın" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Sağlayıcı tanılama komutunu kopyala" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -3884,20 +3888,20 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Ana{ph1} Sayfa / {ph2}Kılavuzlar{ph3} / Tarayıcı gözlemi" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Tıkladığınızda{ph0}ne olduğunu görün." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3906,14 +3910,14 @@ msgstr "" "Bir eylemi, ağ isteğini ve bir indirme oluşturan JavaScript’i bağlamak için " "küçük bir tarayıcı uygulaması kullanın." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Bu kılavuzda" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3921,7 +3925,7 @@ msgstr "{ph0}Örnek{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3929,7 +3933,7 @@ msgstr "{ph0}Tarayıcıyı aç{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3937,7 +3941,7 @@ msgstr "{ph0}Temsilcinize sorun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3945,13 +3949,13 @@ msgstr "{ph0}CLI'DAN yakalama{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}İsteği ve betiği okuyun{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Dışa Aktar'ı tıklattığınızda ne olur?" @@ -3961,7 +3965,7 @@ msgstr "Dışa Aktar'ı tıklattığınızda ne olur?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3973,7 +3977,7 @@ msgstr "" "bulunur. Tıklandığında {ph4} yüklenir, iki notu CSV olarak biçimlendirir ve " "bir indirme başlatır." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Tıklamadan CSV indirmeye" @@ -3984,7 +3988,7 @@ msgstr "Tıklamadan CSV indirmeye" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4000,7 +4004,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4018,7 +4022,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4028,40 +4032,40 @@ msgstr "" "{ph0}03 * Aracınız{ph1}{ph2} Dışa aktarma kodunu okudu{ph3}{ph4} Gözlenen " "isteği {ph5} dışa {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Notları Dışa Aktar'ı tıklatmadan önce yakalamayı başlatın." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Uzaktan hata ayıklama ile Chrome’u açın" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 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 "" -"Barındırılan Notlar örneğini ayrı bir tarayıcı profili ve yerel hata ayıklama " -"portuyla açın. Linux’ta:" +"Barındırılan Notlar örneğini ayrı bir tarayıcı profili ve yerel hata " +"ayıklama portuyla açın. Linux’ta:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Örnek tarayıcıyı başlatın" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Kopyala" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4070,7 +4074,7 @@ msgstr "" "Yüklü tarayıcınızın yürütülebilir yolunu macOS veya Windows’ta kullanın. " "Sayfa URL'sini incelemek istediğiniz başka bir sayfayla değiştirebilirsiniz." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4079,7 +4083,7 @@ msgstr "" "REA bu mevcut tarayıcıya bağlanır. Sayfanın kontrolünü elinizde tutar, " "işlemi gerçekleştirir ve işiniz bittiğinde tarayıcıyı kapatırsınız." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Temsilcinizden bir eylemi izlemesini isteyin" @@ -4092,7 +4096,7 @@ msgstr "Temsilcinizden bir eylemi izlemesini isteyin" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4104,7 +4108,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Kodlama aracınız" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4115,7 +4119,7 @@ msgstr "" "REA kullanın. Hangi isteği yapar ve CSV nasıl oluşturulur?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4125,34 +4129,34 @@ msgstr "" "Örnek istemi. Aracınıza hata ayıklama bitiş noktasını verin, {ph0} ve sayfa " "URL'si. Tıklamadan önce yakalamayı başlatmasına izin verin." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 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 "" -"Temsilciniz sayfa hedefini keşfeder, bir gözlem penceresi başlatır ve ortaya " -"çıkan kanıtları okur. Daha sonra dışa aktarmanın arkasındaki betiği " +"Temsilciniz sayfa hedefini keşfeder, bir gözlem penceresi başlatır ve ortaya" +" çıkan kanıtları okur. Daha sonra dışa aktarmanın arkasındaki betiği " "inceleyebilir." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Veya terminalden yakalama" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Sayfanın hedef kimliğini bulun:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Sayfayı bul" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4162,14 +4166,14 @@ msgstr "" "Notes örnek URL'sini içeren hedefi seçin. {ph0}Aşağıdaki TARGET_İD öğesini " "kimliğiyle değiştirin, ardından çalıştırın:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Sonraki on saniyeyi yakalayın" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4180,7 +4184,7 @@ msgstr "" "{ph0}Notları dışa aktar'ı{ph1} tıklayın. Sonuç, gözlem penceresi sona " "erdikten sonra gelir." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4190,49 +4194,49 @@ msgstr "" "Yakalanan sonuç, seçilen sayfayı, o penceredeki ağ etkinliğini ve JSON " "yanıtının şeklini içerir. Daha önceki istekler bu yakalamanın dışındadır." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "İsteği okuyun ve betiği dışa aktarın" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Yerel Notlar örneğinde REA 4.1.0 ile kaydedildi" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Yakalanan gerçek" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Değer" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Talep" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Yanıt" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "İstek başlatıcı" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * betik" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Yanıt yapısı" @@ -4240,19 +4244,19 @@ msgstr "Yanıt yapısı" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} {ph1} ve {ph2} alanları ile" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Yüklenen komut dosyalarını okuyun" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4263,7 +4267,7 @@ msgstr "" "kullanıldığını görmek için yakalanan betik kaynağını okuyun:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4275,7 +4279,7 @@ msgstr "" "adımı betikten gelir; ağ yakalama, bu tıklamanın {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4285,7 +4289,7 @@ msgstr "{ph0}. Virgül veya tırnak işareti içeren başlıklardan nasıl kaça #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4306,68 +4310,68 @@ msgid "" "Observe a Notes export with REA: select a browser page, capture a click, " "inspect the request and follow the export script." msgstr "" -"REA ile bir Not dışa aktarımını gözlemleyin: bir tarayıcı sayfası seçin, bir " -"tıklama yakalayın, isteği inceleyin ve dışa aktarma betiği izleyin." +"REA ile bir Not dışa aktarımını gözlemleyin: bir tarayıcı sayfası seçin, bir" +" tıklama yakalayın, isteği inceleyin ve dışa aktarma betiği izleyin." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Tarayıcı gözlemi" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Kopyala örnek tarayıcıyı başlat" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Örnek istemi kopyala" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Sayfayı bul komutunu kopyala" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Sonraki on saniyeyi yakala komutunu kopyala" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Yüklenen betikleri okuma komutunu kopyala" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Ana{ph1} Sayfa / Rehberler" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA kılavuzları." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4376,62 +4380,62 @@ msgstr "" "Yerel bir işlevi, bir Electron dışa aktarımını veya bir tarayıcı isteğini " "analiz edin. Her kılavuz bir bilgi istemi, kod ve sonuçlar içerir." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "İlk soruşturma" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "REA’yı ayarlama" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Kodlama aracınızı bağlayın veya terminalden REA kullanın." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "REA ile başlayın" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Yerel ikili dosyalar" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Sol / sağ ses konumunun bir hesaplamasını kurtarın" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 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 "" "Bir Windows oyun yürütülebilir dosyasıyla başlayın. Talimatları inceleyin, " -"bir çağıranı takip edin, sayısal sabitleri okuyun ve kurtarılan C'yi kontrol " -"edin." +"bir çağıranı takip edin, sayısal sabitleri okuyun ve kurtarılan C'yi kontrol" +" edin." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Yerel ikili dosyaların analizi kılavuzu" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript ve Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Bir CSV dışa aktarımını izleyin" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4440,40 +4444,40 @@ msgstr "" "Küçük bir Not uygulaması, oluşturucu, ön yükleme ve ana işleme bir özellik " "yayar. API, IPC kanalı ve dosya yazıcısını bağlamak için REA kullanın." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript ve Electron kılavuzu" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." msgstr "" "Daha büyük bir paketlenmiş uygulama için {ph0}Notion pano köprüsü{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Tarayıcı davranışı" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Bir tıklamayı gözlemleyin" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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 "" -"Çalışan bir Notlar örneği açın, bir dışa aktarma isteği yakalayın ve yanıtını " -"karşıdan yüklemeye dönüştüren kodu bulun." +"Çalışan bir Notlar örneği açın, bir dışa aktarma isteği yakalayın ve " +"yanıtını karşıdan yüklemeye dönüştüren kodu bulun." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Tarayıcı gözlem kılavuzu" @@ -4489,15 +4493,15 @@ msgid "" "Learn REA through short worked examples: a native calculation, an Electron " "CSV export and a browser request." msgstr "" -"Kısa çalışılmış örneklerle REA’yı öğrenin: yerel bir hesaplama, bir Electron " -"CSV dışa aktarma ve bir tarayıcı isteği." +"Kısa çalışılmış örneklerle REA’yı öğrenin: yerel bir hesaplama, bir Electron" +" CSV dışa aktarma ve bir tarayıcı isteği." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -4506,20 +4510,20 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Ana{ph1} Sayfa / {ph2}Kılavuzlar{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Bir Electron izleyin {ph0} CSV dışa aktarma." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4528,14 +4532,14 @@ msgstr "" "Sayfa API’sinden Electron IPC aracılığıyla CSV dosya yazıcısına bir düğme " "tıklaması izleyin." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Bu kılavuzda" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4543,7 +4547,7 @@ msgstr "{ph0}Örnek{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4551,7 +4555,7 @@ msgstr "{ph0}Temsilcinize sorun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4559,7 +4563,7 @@ msgstr "{ph0}Dışa aktarma kodunu izleme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4567,20 +4571,20 @@ msgstr "{ph0}Örneği deneyin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}CSV yazıcısını inceleyin{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"Notları dışa aktar\" nereye gidiyor?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4592,7 +4596,7 @@ msgstr "" "Aktar'a{ph1} tıklamak sayfadaki bir API'yi çağırır, ana işleme geçer ve bir " "CSV yazar. Davranış birkaç dosyaya yayılmıştır." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "CSV, Electron süreçleri boyunca dışa aktarır" @@ -4606,7 +4610,7 @@ msgstr "CSV, Electron süreçleri boyunca dışa aktarır" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4621,7 +4625,7 @@ msgstr "{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}, ön {ph7}.{ph8} #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4638,7 +4642,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4651,13 +4655,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} notları biçimlendirir → {ph1} {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4668,14 +4672,14 @@ msgstr "" "tanımlar. Yol koddan çıkarılır; Bir çalışma zamanı yakalama neyin " "yürütüldüğünü kontrol edebilir." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "CSV dışa aktarma hakkında soru sorun" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4693,14 +4697,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Kodlama aracınız" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Kopyala" @@ -4711,7 +4715,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4722,7 +4726,7 @@ msgstr "" "için REA kullanın. CSV nerede oluşturulur?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4730,7 +4734,7 @@ msgid "" "{ph0}." msgstr "Örnek istemi. Uygulama klasörünün veya {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4741,17 +4745,17 @@ msgstr "" "sınırlarının bir haritasını oluşturur. Aracınız, soruşturmayı dışa aktarma " "özelliğine daraltmak için bu haritayı kullanır." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Dışa aktarma kodunu izleme" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Sayfa küçük bir API çağırır" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4762,7 +4766,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4774,7 +4778,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4784,7 +4788,7 @@ msgstr "" "İşleyiciyi okumak orijinal soruyu yanıtlar: {ph0} notları biçimlendirir ve " "ana işlem {ph1}." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4793,7 +4797,7 @@ msgstr "" "Aşağıdaki indirilebilir örnekte REA 4.1.0 tarafından kaydedilmiştir. Kaynak " "konumları API, kanal ve işleyici bulgularına eşlik eder." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Örneği kendiniz analiz edin" @@ -4801,25 +4805,25 @@ msgstr "Örneği kendiniz analiz edin" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Örnek ZIP dosyasını indirin{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Altı kaynak dosyaya göz atın" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Statik uygulama analizi" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4830,7 +4834,7 @@ msgstr "" " IPC kanalı ve bir eşleşen işleyici bulmalısınız{ph0}. Kaynak konumları " "normalized_result {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4838,16 +4842,16 @@ msgid "" "feature tracing tools." msgstr "" "Kendi uygulamanız için dizini veya ASAR yolu ile aynı komutu kullanın. Bir " -"aracı, REA’nın özellik izleme araçlarıyla değişmez bir dizeyi, API adını veya " -"IPC kanalını takip edebilir." +"aracı, REA’nın özellik izleme araçlarıyla değişmez bir dizeyi, API adını " +"veya IPC kanalını takip edebilir." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "CSV yazıcısını inceleyin" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4857,7 +4861,7 @@ msgstr "" "{ph0}. Hangi girdiler CSV yazıcısına ulaşır ve dosyayı yazmak başarısız " "olursa ne olur?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4872,7 +4876,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4886,7 +4890,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4900,7 +4904,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4926,32 +4930,32 @@ msgstr "" " Notes CSV dışa aktarımını izleyin. İndirilebilir örnek dosyalar ve " "doğrulanmış bir analiz sonucu içerir." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript ve Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Örnek istemi kopyala" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Statik uygulama analizini kopyala" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -4960,7 +4964,7 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -4968,13 +4972,13 @@ msgstr "" "{ph0}Ana{ph1} Sayfa / {ph2}Kılavuzlar{ph3} / Yerel ikili dosyaların analizi" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "DX-Ball’ın{ph0}ses pan hesaplamasını kurtarın." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -4983,14 +4987,14 @@ msgstr "" "Orijinal talimatları inceleyin, girişi ve sabitleri belirleyin, ardından " "kurtarılan C'yi kontrol edin." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Bu kılavuzda" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4998,7 +5002,7 @@ msgstr "{ph0}Örnek{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5006,7 +5010,7 @@ msgstr "{ph0}Temsilcinize sorun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5014,7 +5018,7 @@ msgstr "{ph0}REA sonuçlarını okuyun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5022,29 +5026,29 @@ msgstr "{ph0}Kurtar ve kontrol et{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Kendi ikili dosyanızı kullanın{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Sol / sağ stereo ses konumlandırmasını hesapla" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 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’da bir tuğla vuruşu yatay bir ekran konumu sağlar. Ses kodu onu sola " -"/ sağa kaydırma değerine dönüştürür." +"DX-Ball’da bir tuğla vuruşu yatay bir ekran konumu sağlar. Ses kodu onu sola" +" / sağa kaydırma değerine dönüştürür." #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5056,7 +5060,7 @@ msgstr "" " ayrıca talimatlarını ve çağıranlarını döndürür; bunlar ajanın eksik " "aritmetiği araştırmasına yardımcı olur." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Bu şartlarda yeni misiniz?" @@ -5065,7 +5069,7 @@ msgstr "Bu şartlarda yeni misiniz?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5077,7 +5081,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5090,7 +5094,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5103,7 +5107,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5114,7 +5118,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5124,7 +5128,7 @@ msgstr "" "{ph0}Sabitler:{ph1} programda saklanan, ham bayt olarak okunan ve kodu " "çözülen sabit sayılar." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Üç kanıt, bir hesaplama" @@ -5135,7 +5139,7 @@ msgstr "Üç kanıt, bir hesaplama" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5152,7 +5156,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5170,7 +5174,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5180,7 +5184,7 @@ msgstr "" "{ph0}03 * Veri baytları{ph1}{ph2} Başvurulan baytların sayısal " "sabitleri{ph3}{ph4} {ph5}, {ph6}'a ve bir ölçek değerine çözülür.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5189,7 +5193,7 @@ msgstr "" "REA talimatları, işlev çağrısı ilişkisini ve baytları sağlar. Ajan onları " "birlikte yorumluyor." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Davranış hakkında soru sorun" @@ -5198,7 +5202,7 @@ msgstr "Davranış hakkında soru sorun" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5209,19 +5213,19 @@ msgstr "" "analizi aracını kurduktan{ph3} sonra, yerel yürütülebilir dosyayı ve bir " "soruyu sağlayın:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Hangi analiz aracını kullanmalıyım?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA, yerel programları okumak için bunlardan birine ihtiyaç duyar:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5230,12 +5234,12 @@ msgid "" "license before your first analysis." msgstr "" "{ph0} Hopper{ph1} (macOS veya Linux): REA’nın kurulumu onu algılar veya " -"kurmayı teklif eder. macOS’ta Hopper’ı bir kez açın ve ilk analizinizden önce " -"demo modunu seçin veya bir lisansı etkinleştirin." +"kurmayı teklif eder. macOS’ta Hopper’ı bir kez açın ve ilk analizinizden " +"önce demo modunu seçin veya bir lisansı etkinleştirin." #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5247,7 +5251,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5257,7 +5261,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5273,14 +5277,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Kodlama aracınız" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Kopyala" @@ -5291,7 +5295,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5302,7 +5306,7 @@ msgstr "" "bulmak için REA kullanın. Hesaplamayı açıklayın ve kodu " "gösterin.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5314,7 +5318,7 @@ msgstr "" " olduğunuz başka bir küçük Windows programı hakkında aynı tür soruları " "sorun." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Bir dosyanın tam yolunu nasıl alabilirim?" @@ -5323,7 +5327,7 @@ msgstr "Bir dosyanın tam yolunu nasıl alabilirim?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5338,7 +5342,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5350,7 +5354,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5360,17 +5364,17 @@ msgstr "" "{ph0}Herhangi bir sistem:{ph1} dosyayı bir terminal penceresine sürükleyin " "ve yolu görünür." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "REA sonuçlarını okuyun" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Girişi oku" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5379,28 +5383,29 @@ msgstr "" "Talimatlar bir tamsayı argümanı yükler ve kayan nokta aritmetiği için " "dönüştürür. Bu, ilk sözde kod görünümünde bulunmayan girdidir." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Çağıranı takip et" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, 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, tuğlaya çarpan çağıranı tanımlar. Önceki talimatları döşeme koordinatını " -"30 ile çarpar; {ph0} (20) eklemek tuğlanın ekran konumunu verir." +"REA, tuğlaya çarpan çağıranı tanımlar. Önceki talimatları döşeme " +"koordinatını 30 ile çarpar; {ph0} (20) eklemek tuğlanın ekran konumunu " +"verir." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Başvurulan sabitleri okuyun" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5409,12 +5414,12 @@ msgstr "" "Aritmetik bu adreslere başvurur. Baytları okumak gerçek değerleri sağlar; " "talimatların sırası ajana bunların nasıl kullanıldığını gösterir." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Kurtarılan işlevi yazın ve kontrol edin" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5425,7 +5430,7 @@ msgstr "" "-500, 0 ve 500 ile eşleşir. Hesaplama, ekranın merkezini stereo alanın " "ortasına yerleştirir." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5438,20 +5443,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Tüm inceleme ve assembly-to-C karşılaştırmasına bakın{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Kendi ikili dosyanızla deneyin" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5465,7 +5470,7 @@ msgstr "" "araştırılacak bir özellik verin. Faydalı başlangıç soruları arasında \"Bu " "dosya nasıl ayrıştırılır?\" veya \"Bu menü eylemini hangi işlev işler?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5474,13 +5479,13 @@ msgstr "" "Bir işlev adını veya adresini zaten biliyorsanız, bunu terminalden " "sorgulayabilirsiniz. Yapılandırılmış bir Ghidra kurulumu için:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Fonksiyon analizi" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5494,7 +5499,7 @@ msgstr "" "kapatır. Aracınızın MCP sorguları, oturum açıkken içe aktarılan ikili " "dosyayı yeniden kullanır." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5518,50 +5523,50 @@ msgstr "" "REA ile yerel bir hesaplamayı kurtarın: talimatları inceleyin, bir çağıranı " "takip edin, sabitleri okuyun ve yeniden yapılandırılmış C'yi kontrol edin." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Yerel ikili dosyaların analizi" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Örnek istemi kopyala" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Fonksiyon analizini kopyala" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "İçeriğe geç" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "REA’yı ayarlama" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5569,7 +5574,7 @@ msgstr "{ph0}REA’yı ayarlama{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5577,7 +5582,7 @@ msgstr "{ph0}Dinozor oyunu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5585,7 +5590,7 @@ msgstr "{ph0}Hesap makinesi{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5593,25 +5598,25 @@ msgstr "{ph0}REA’yı deneyin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Daha derine inin{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Kodlama aracınızla tersine mühendislik" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Yazılımın nasıl{ph0}çalıştığını öğrenin." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Bu istemi kodlama ajanınıza yapıştırın:" @@ -5624,26 +5629,26 @@ msgstr "Bu istemi kodlama ajanınıza yapıştırın:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Kodlama aracınız" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Kopyala" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Ya da terminalde şu komutu çalıştırın:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" @@ -5651,7 +5656,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5659,7 +5664,7 @@ msgstr "{ph0}01{ph1} Dalları çöz" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5667,7 +5672,7 @@ msgstr "{ph0}02{ph1} İzleme çağrıları" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5677,20 +5682,20 @@ msgstr "{ph0}03{ph1} Kuralı kurtar" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Orijinal x64 * seçilen talimatlar{ph1}{ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * Hangi şube?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5699,29 +5704,29 @@ msgid "" msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Aynı yere iki atlayış. Bunlar hangi operatörler?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Komut kimliklerine bakın, ardından dalı etiketleyin." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Böl ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Çarpın ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Çağrılan işlevler ne yapıyor?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5731,24 +5736,24 @@ msgstr "" "“100 açıktır. Aramalar sadece adres. {ph0}Hangisi bölünüyor? Hangi değer " "giriyor?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Yardımcı işlevleri inceleyin ve depolanan değerleri izleyin." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Bölmek" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * Kural nedir?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5758,19 +5763,19 @@ msgstr "" "\"Bu yol diğer girdiyle çarpılır. Yani% 10, + 'dan sonra {ph0}200'ün% 10'u " "anlamına{ph1} gelir.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "İşlenenleri adlandırın ve her iki operatör yolunu da kontrol edin." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Açıklayıcı uzman akıl yürütme" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5788,21 +5793,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Örnek bilgi istemi * Hesap Makinesi" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Örnek cevap · bulgulara dayanarak" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5810,68 +5815,68 @@ msgid "" msgstr "" "+ işleminden sonra, % düğmesi {ph0}ilk sayının bir yüzdesini alır.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA’nın sağladıkları" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "İşleyicinin talimatları, derlenmiş kod ve çağrılar." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Ajanınızın açıklaması" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" "Hangi dalın uygulandığı, neyi hesapladığı ve nasıl yeniden oluşturulacağı." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Örnek 01 * Chrome’un dinozor oyunu" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Dinozor neden hızlanıyor?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Oyna" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Zıpla ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Yeniden başlat" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Hız" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Kurtarılan hızlanma kuralını kullanın" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Orijinal kural: 6'dan başlayın, ardından 13'e doğru artırın." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5884,7 +5889,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5893,12 +5898,12 @@ msgid "" "speed.{ph3}{ph4}{ph5}" msgstr "" "{ph0}›{ph1}{ph2}Bu dinozor oyununu incelemek için REA kullanın. Neden daha " -"hızlı oluyor? Hız kuralını gösterin, ardından ayarlanabilir hıza sahip küçük " -"bir versiyon oluşturun.{ph3}{ph4}{ph5}" +"hızlı oluyor? Hız kuralını gösterin, ardından ayarlanabilir hıza sahip küçük" +" bir versiyon oluşturun.{ph3}{ph4}{ph5}" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -5906,12 +5911,12 @@ msgstr "" "Denetlenen hedef: {ph0}wayou'nun Chromium'dan türetilmiş tarayıcı " "sürümü{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Hız laboratuvarını açın" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Her bölüm ne yapar" @@ -5922,7 +5927,7 @@ msgstr "Her bölüm ne yapar" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5938,7 +5943,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5955,7 +5960,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5965,13 +5970,13 @@ msgstr "" "{ph0}03 *{ph1}{ph2} Hızı değiştirir ve oynarsınız{ph3}{ph4} Orijinal ivmeyi " "deneyin, ardından kendi hızınızı seçin.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Komut dosyasına, kontrollere ve analizin nasıl deneneceğine bakın" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5981,7 +5986,7 @@ msgstr "" "REA, HTTP tarayıcı sürümünü yerel bir hata ayıklama bağlantısı aracılığıyla " "denetledi ve yüklenen {ph0}, kaynağı ve özeti dahil." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5995,7 +6000,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6011,7 +6016,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6029,7 +6034,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6037,34 +6042,34 @@ msgid "" msgstr "" "{ph0}Denetlenen hız kodu{ph1} * {ph2}Chromium Yazarları · BSD lisansı{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Örnek 02 * Windows Hesap Makinesi" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Hesap Makinesi’nin % düğmesini yeniden oluşturun." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Sıfırla" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "200'ün% 10'u = 20. Sonra 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Denetlenen yüzde kuralının etkileşimli gösterimi." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6076,7 +6081,7 @@ msgstr "Bu örnek için {ph0} ve {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6088,7 +6093,7 @@ msgstr "" "kullanın. Kuralları + ve × 'den sonra kurtarın, ardından her ikisini de " "kullanan küçük bir hesap makinesi oluşturun.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "+ ile" @@ -6096,13 +6101,13 @@ msgstr "+ ile" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}İlk sayının% 10'unu alın.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "× ile" @@ -6110,13 +6115,13 @@ msgstr "× ile" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}%10’u 0,1’e çevirin. 200 × 0,1 = 20{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Yüklü uygulamadan çalışan bir% düğmesine" @@ -6128,7 +6133,7 @@ msgstr "Yüklü uygulamadan çalışan bir% düğmesine" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6146,7 +6151,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6158,12 +6163,12 @@ msgstr "" "çoğaltın{ph3}{ph4} Dalı Microsoft'un kaynağıyla çapraz kontrol edin, " "ardından + ve × üstünü deneyin.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Gerçek kodu ve cevabın nasıl kontrol edildiğini görün" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6184,7 +6189,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6194,17 +6199,17 @@ msgstr "" "{ph0}Yüzde uygulaması{ph1} * {ph2}Microsoft'un test durumları{ph3} * " "{ph4}Yerel kurulum kılavuzu{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "İlk soruşturmanız" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Küçük bir uygulamada REA'yu deneyin." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6213,17 +6218,17 @@ msgstr "" "Notlar örneğimizi indirin, CSV dışa aktarımını izleyin ve değiştirilen bir " "girişi kontrol edin." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Kılavuzlu örneği deneyin" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Yerel ikili dosyalar" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6232,36 +6237,36 @@ msgstr "" "Yürütülebilir dosyalar ve kitaplıklardaki işlevleri, dizeleri, referansları " "ve işlev çağrısı ilişkilerini inceleyin." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Yerel ikili dosyaların analizi kılavuzu" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript ve Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "" -"Modülleri, rotaları, IPC'yi ve yerel bağımlılıkları bir uygulama klasöründen " -"veya ASAR arşivinden eşleyin." +"Modülleri, rotaları, IPC'yi ve yerel bağımlılıkları bir uygulama klasöründen" +" veya ASAR arşivinden eşleyin." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Uygulama iş akışları" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Tarayıcı ve çalışma zamanı etkinliği" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6270,12 +6275,12 @@ msgstr "" "Seçilen tarayıcıyı veya işlem etkinliğini yakalayın, ardından sonuçları " "koşular arasında karşılaştırın." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Tarayıcı gözlem kılavuzu" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Sorunuz var mı?" @@ -6295,27 +6300,27 @@ msgstr "" "tersine mühendislik yapın. Net kılavuzları izleyin ve REA ile etkileşimli " "örnekleri deneyin." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "REA kurulum istemini kopyalayın" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Kurulum komutunu kopyala" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Manuel Hesap Makinesi analizini takip edin" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Hesap Makinesi yüzdesi sorusunu kopyala" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6324,27 +6329,27 @@ msgstr "" "Dinozor mini oyunu. Oyun odaklanırken Atlama düğmesini kullanın veya Boşluk " "tuşuna basın." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Dinozor analizi istemini kopyala" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Hesaplamayı seçin" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Hesap makinesi analiz istemini kopyala" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -6353,25 +6358,25 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Anasayfa{ph1} / {ph2}Vitrinler{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Örnek olay incelemesi * Aegis Kimlik Doğrulayıcı" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Bir kimlik doğrulayıcı{ph0}giriş kodunu nasıl oluşturur?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6381,17 +6386,17 @@ msgstr "" "APK'da bulmak için REA kullanın, ardından kontrol edebileceğiniz bir saatle " "yeniden oluşturun." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * Resmi sürüm APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Aegis’i GitHub’da görüntüleyin" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Bir APK’dan yeniden oluşturabileceğiniz bir koda" @@ -6402,7 +6407,7 @@ msgstr "Bir APK’dan yeniden oluşturabileceğiniz bir koda" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6420,7 +6425,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6438,7 +6443,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6450,14 +6455,14 @@ msgstr "" "izleyin.{ph3}{ph4}Yeni bir tarayıcı demosu kuralı yeniden üretir ve genel " "referans durumlarına karşı kontrol eder.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Bu vaka çalışmasında" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6465,7 +6470,7 @@ msgstr "{ph0}Temsilcinize sorun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6473,7 +6478,7 @@ msgstr "{ph0}Kod oluşturucuyu deneyin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6481,7 +6486,7 @@ msgstr "{ph0}Kodu REA ile bulun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6489,7 +6494,7 @@ msgstr "{ph0}Hesaplamayı okuyun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6497,20 +6502,20 @@ msgstr "{ph0}Yeniden yapılanmayı kontrol edin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}APK’yı kendiniz inceleyin{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Temsilcinize sorun" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6528,21 +6533,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Kodlama aracınız" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Kopyala" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6552,14 +6557,14 @@ msgstr "" "REA’nın Android analizi yapılandırılmış olarak indirilen APK için bir örnek " "istemi. APK {ph0}ve analiz kurulumunu edinin ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Kod oluşturucuyu deneyin" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6571,33 +6576,33 @@ msgstr "" " oluşturmak için blok numarasını hesap anahtarıyla birleştirir. Aynı anahtar" " ve blok aynı kodu üretir." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Saati 60 saniye boyunca hareket ettirin" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Zaman" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "saniyeler" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Ayarlanabilir örnek saatimiz" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30 saniyelik blok" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Blok" @@ -6606,35 +6611,35 @@ msgstr "Blok" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 saniye{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Oluşturulan kod" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Hesap anahtarı + blok → altı basamak" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Örnek zaman, saniye cinsinden" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 saniye" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 saniye" @@ -6643,7 +6648,7 @@ msgstr "60 saniye" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6655,7 +6660,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6665,7 +6670,7 @@ msgstr "" "Anahtar sabit ve herkese açıktır: {ph0}RFC 6238 test verileri{ph1}. Demo, " "APK'dan çıkarılan hesaplamayı uygular." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6674,18 +6679,18 @@ msgstr "" "Diyagram sonucu 59 saniyede göstermektedir. Saati değiştirmek için " "JavaScript’i etkinleştirin." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Kodu REA ile bulun" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "APK’yı üç sınıfa daraltın" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6695,14 +6700,14 @@ msgstr "" "{ph0} hesaplama adayıdır; diğer ikisi ilerleme çubuğu ve içe aktarılan " "hesaplarla ilgilidir. TOTP, zamana dayalı bir kerelik şifre anlamına gelir." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Jeneratörü uygulamanın ekranına bağlayın" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6714,7 +6719,7 @@ msgstr "" "çağıran ekranı {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6724,14 +6729,14 @@ msgstr "" "İstekler kısaltılmış bir giriş yolu gösterir. Sonuç sınıfı adları ortak " "{ph0} öneki." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Hesaplamayı okuyun" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6745,7 +6750,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6753,7 +6758,7 @@ msgstr "{ph0}01{ph1} Zaman bloğu" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6761,7 +6766,7 @@ msgstr "{ph0}02{ph1} Anahtar + blok" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6769,7 +6774,7 @@ msgstr "{ph0}03{ph1} Altı basamak" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6781,7 +6786,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6795,7 +6800,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6809,7 +6814,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6819,7 +6824,7 @@ msgstr "" "Ekran için çizgi sarma ile çeşitli denetlenen yöntemlerden alıntılar. Sağ " "panel açıklayıcı bir özettir. {ph0}Aegis kodu GPL-3.0'dır.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Jeneratörün içinde" @@ -6828,7 +6833,7 @@ msgstr "Jeneratörün içinde" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6839,7 +6844,7 @@ msgstr "" " TotpInfo çağrısını {ph2} ve bu gövdeyi döndürür; Orijinal kaynak yardımcı " "hotp'yi {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6856,20 +6861,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}Eşleşen sürüm kaynağıyla karşılaştırın{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Yeniden yapılanmayı kontrol edin" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6882,29 +6887,29 @@ msgstr "" " da dahil olmak üzere {ph0}133 test vakasında{ph1} bağımsız bir yeniden " "yapılandırmayla eşleşti." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Örnek zaman" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Altı haneli kod" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 saniye" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1.111.111.109 saniye" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6914,17 +6919,17 @@ msgstr "" "Jeneratör ayrıca {ph0}RFC 6238'de yayınlanan altı SHA-1 referans durumuyla " "da eşleşir{ph1}. Tarayıcı uygulamasını bunlara karşı kontrol edin:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Referans kontrollerini çalıştırın" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Demonun hesaplamasını okuyun" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6933,7 +6938,7 @@ msgstr "" "Referans durumlarda sekiz basamak kullanılır. Kontrol ayrıca altı basamaklı " "sonuçlarını da doğrular." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6942,26 +6947,26 @@ msgstr "" "Doğrulama, çıkarılan Java yöntemlerini ve yeni demoyu çalıştırır. Android " "APK statik olarak denetlendi." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "APK’yı kendiniz inceleyin" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, 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’yı macOS veya Linux’ta ayarlayın{ph1}, ardından bu iki dosyayı aynı " -"klasöre indirin. Windows’ta WSL gibi bir Linux ortamı kullanın." +"{ph0}REA’yı macOS veya Linux’ta ayarlayın{ph1}, ardından bu iki dosyayı aynı" +" klasöre indirin. Windows’ta WSL gibi bir Linux ortamı kullanın." #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6971,19 +6976,19 @@ msgstr "" "Android analizinin tam bir JDK 17 veya daha yenisine ihtiyacı var. {ph0} " "veya {ph1} ile seçin. Bu durumda JDK 21 kullanıldı." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "" "REA dosyasını sağlayıcı dosyasına yönlendirin ve APK dosyasını inceleyin :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux'NIN sohbeti" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6991,12 +6996,12 @@ msgid "" "add {ph0} to the REA server's environment and reconnect it." msgstr "" "Aracınız yukarıdaki istemi kullanarak REA’nın CLI’sı üzerinden devam " -"edebilir. {ph0}MCP için REA sunucusunun ortamına REA_JADX_MCP_JAR ekleyin ve " -"yeniden bağlayın." +"edebilir. {ph0}MCP için REA sunucusunun ortamına REA_JADX_MCP_JAR ekleyin ve" +" yeniden bağlayın." #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7006,7 +7011,7 @@ msgstr "" "Sıradaki soru: {ph0}Bir hesap sekiz basamak veya farklı bir zaman aralığı " "kullandığında ne olur?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Kaynaklar" @@ -7022,7 +7027,7 @@ msgstr "Kaynaklar" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7036,13 +7041,13 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, 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 referans durumları{ph1} * {ph2}Demo test verileri{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7068,37 +7073,37 @@ msgstr "" "hesaplamasını kurtarın ve ayarlanabilir bir saatle yeniden yapılandırmayı " "deneyin." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK örnek olay incelemesi" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Aegis örnek istemini kopyala" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Giriş kodu hesaplamasını takip edin" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "APK denetim komutunu kopyalayın" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -7107,26 +7112,26 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Anasayfa{ph1} / {ph2}Vitrinler{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Örnek olay incelemesi * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Bayrağı bulun{ph0}bir CTF ikilisi." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7136,17 +7141,17 @@ msgstr "" "Küçük bir bayrak denetleyicisini incelemek, kurallarını denklemlere " "dönüştürmek ve orijinal programın yazdırdığı{ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "maskeli kareler bayrak denetleyicisi * Kolay * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Orijinal meydan okumayı görüntüle" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Bir ikiliden doğrulanmış bir cevaba" @@ -7157,7 +7162,7 @@ msgstr "Bir ikiliden doğrulanmış bir cevaba" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7175,7 +7180,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7193,7 +7198,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7202,24 +7207,24 @@ msgid "" "the result.{ph5}" msgstr "" "{ph0}03 * Kurtarılan bayrağı çözün ve çalıştırın{ph1}{ph2} → " -"Doğru!{ph3}{ph4}Bir Python betiği denklemleri çözer. REA, sonucu kabul eden " -"orijinal programı yakalar.{ph5}" +"Doğru!{ph3}{ph4}Bir Python betiği denklemleri çözer. REA, sonucu kabul eden" +" orijinal programı yakalar.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" "Zorluk, Downunderctf'nin resmi deposunda yayınlanan joseph tarafından." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Bu vaka çalışmasında" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7227,7 +7232,7 @@ msgstr "{ph0}Kontrol kodunu bulun{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7235,7 +7240,7 @@ msgstr "{ph0}Bir maske oku{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7243,7 +7248,7 @@ msgstr "{ph0}Assembly kodundan okunabilir koda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7251,7 +7256,7 @@ msgstr "{ph0}Denklemleri çözün{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7259,20 +7264,20 @@ msgstr "{ph0}Cevabı kontrol et{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Kendin dene{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Kontrol kodunu bulun" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7290,17 +7295,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Kodlama aracınız" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Kopyala" @@ -7311,7 +7316,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7320,10 +7325,10 @@ msgid "" "program.{ph3}{ph4}{ph5}" msgstr "" "{ph0}›{ph1}{ph2}Ms_flag_checker'ı analiz etmek ve bayrağı bulmak için REA " -"kullanın. Kontrollerin nasıl çalıştığını açıklayın, ardından cevabı orijinal " -"programla doğrulayın.{ph3}{ph4}{ph5}" +"kullanın. Kontrollerin nasıl çalıştığını açıklayın, ardından cevabı orijinal" +" programla doğrulayın.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7333,12 +7338,12 @@ msgstr "" "programlarının sağlayıcısına bağlı bir analizinin yapıldığı örnek bir bilgi " "istemi." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Giriş isteminden işlevine ilerleyin" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7347,14 +7352,14 @@ msgstr "" "Başvuru, yürütülebilir dosyanın özgün işlev adları kaldırılmış olsa bile " "aracıya araştırılacak bir yer verir." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Denetleyiciyi ve iki yardımcısını okuyun" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7366,7 +7371,7 @@ msgstr "" "çözer, seçilen kodları toplar ve sonucu saklanan bir sayı ile karşılaştırır." " 0x270 bayttaki {ph0}0x18{ph1} baytlık adımları 26 maske verir." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7375,12 +7380,12 @@ msgstr "" "Bunlar, yeni bir REA analizinden seçilen sonuçlardır. Yerel hedef yol " "görüntüleme için kısaltılmıştır; adresler REA içe aktarılan görüntüsü." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Bir kontrol bir karakteri ortaya çıkarır" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7393,13 +7398,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "Yedinci kontrol sadece bir pozisyon seçer. {ph0}Şekli aç{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Maskeyi ve hedefini ikiliden okuyun" @@ -7408,7 +7413,7 @@ msgstr "Maskeyi ve hedefini ikiliden okuyun" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7416,16 +7421,16 @@ msgid "" "means −21. The target is a little-endian integer. Together, these bytes tell" " the agent that {ph2}, so that character is {ph3}." msgstr "" -"MOVSX talimatı, maske baytlarını imzalı değerler {ph0} okur. Bu yüzden {ph1} " -"-21 anlamına gelir. Hedef küçük endian bir tamsayıdır. Birlikte, bu baytlar " -"aracıya {ph2}55{ph3} olduğunu söyler, böylece karakter 7olur." +"MOVSX talimatı, maske baytlarını imzalı değerler {ph0} okur. Bu yüzden {ph1}" +" -21 anlamına gelir. Hedef küçük endian bir tamsayıdır. Birlikte, bu baytlar" +" aracıya {ph2}55{ph3} olduğunu söyler, böylece karakter 7olur." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Talimatlardan okunabilir bir kontrole" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7436,7 +7441,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7444,7 +7449,7 @@ msgstr "{ph0}01{ph1} Başlangıç" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7452,7 +7457,7 @@ msgstr "{ph0}02{ph1} Seçiniz" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7460,7 +7465,7 @@ msgstr "{ph0}03{ph1} Ekle" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7468,18 +7473,18 @@ msgstr "{ph0}04{ph1} İlerle" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Karşılaştır" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * seçilen orijinal talimatlar" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Okunabilir C * tek kontrol özeti" @@ -7487,7 +7492,7 @@ msgstr "Okunabilir C * tek kontrol özeti" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7495,7 +7500,7 @@ msgstr "{ph0}01 * Sıfırdan başlayın.{ph1} {ph2} çalışan toplamı tutar." #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7507,7 +7512,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7519,7 +7524,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7533,7 +7538,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7543,21 +7548,22 @@ msgstr "" "{ph0}05 * Saklanan hedefle karşılaştırın.{ph1} Çağıran, toplamı {ph2} " "cinsinden alır. Bir uyumsuzluk {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 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 "" -"Talimatlar toplama yardımcısından ve çağıranından gelir. C, açıklayıcı adlara " -"ve düzleştirilmiş 36 hücreli bir döngüye sahip açıklayıcı bir özettir." +"Talimatlar toplama yardımcısından ve çağıranından gelir. C, açıklayıcı " +"adlara ve düzleştirilmiş 36 hücreli bir döngüye sahip açıklayıcı bir " +"özettir." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "26 Denklemi çözün" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7568,13 +7574,13 @@ msgstr "" "ve toplam 1441 gerektirir. Örtüşen seçimler, küçük bir Python betiğinin " "birlikte çözebileceği denklemler verir." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * çözücü alıntı" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7588,19 +7594,19 @@ msgstr "" "bir {ph0} bayrağı varsayar. Tam indirme, 26 maskenin ve hedefin tümünü " "içerir." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Tam çözücüyü indirin" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Cevabı orijinal programla kontrol edin" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7612,47 +7618,47 @@ msgstr "" "dosyayı kaydeder. Seçilen bir karakteri {ph0} {ph1} değiştirmek, ilk toplamı" " 1441 yerine 1440 yapar ve program bunu reddeder." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Giriş" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Gözlenen çıktı" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Çıkış kodu" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Çözücünün bayrağı" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Bir karakter değişti" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Kurtarılan bayrağı ve yakalanan çıktıyı göster" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * orijinal program çıktısı" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Bayrağı kopyala" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7662,12 +7668,12 @@ msgstr "" "düzenleyicilerin yayınlanmış meydan okuma meta verilerindeki bayrakla da " "eşleşir." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Kaynak, hedef kimliği ve analiz detayları" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7677,7 +7683,7 @@ msgstr "" "Linux x64'te Ghidra 12.1.4 ile REA 4.1.0 kullanılarak 8 Ekim 2026'da yeni " "analiz ve iki işlem kaydı. İkili, soyulmuş bir x86-64 ELF, 15.248 bayttır." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7700,7 +7706,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7710,12 +7716,12 @@ msgstr "" "{ph0}Organizatörlerin kaynağıyla karşılaştırın{ph1} * {ph2}Meta verilere ve " "bayrağa meydan{ph3} okuyun * {ph4}REA kanıt notları{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Kendin dene" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7725,13 +7731,13 @@ msgstr "" "araştırmak veya birlikte verilen betiği çalıştırmak için yukarıdaki istemi " "kullanın." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Terminal * çöz ve çalıştır" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7743,7 +7749,7 @@ msgstr "" "Çözmenin Python ve {ph0} ihtiyacı var. Orijinal yürütülebilir dosyayı " "çalıştırmak için Linux x86-64 gerekir." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Kodlama aracınızla REA’yı kurun" @@ -7764,27 +7770,27 @@ msgstr "" "kullanın. Kontrol işlevlerini bulun, maskeleri çıkarın ve kurtarılan bir " "bayrağı orijinal programla karşılaştırın." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF bayrak denetleyicisi vaka çalışması" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "CTF örnek istemini kopyala" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTF maskesi denklemi; daha küçük ekranlarda yatay kaydırma" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7795,42 +7801,42 @@ msgstr "" "Sadece bu hücre toplamına katkıda bulunur. Gerekli karakter kodu 55'tir, " "yani karakter 7'dir." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "CTF kontrolünü takip edin" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "CTF derlemesini kopyala" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Okunabilir CTF kontrolünü kopyala" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "CTF çözücü alıntısını kopyala" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Kurtarılan bayrağı kopyala" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "CTF çözücü komutlarını kopyala" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -7839,25 +7845,25 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Anasayfa{ph1} / {ph2}Vitrinler{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Örnek olay incelemesi * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "DX-Ball'YU yeniden oluşturma {ph0}yürütülebilir dosyasından." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7866,14 +7872,14 @@ msgstr "" "Amaç, 1996 Windows oyununun sürdürülebilir bir C versiyonudur. REA, ajanın " "orijinali, her seferinde bir işlevi incelemesine yardımcı olur." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7881,17 +7887,17 @@ msgid "" "callers and data reads; the reconstruction project implements and tests the " "result. {ph0}Open figure{ph1}" msgstr "" -"REA talimatları, çağıranları ve veri okumalarını sağlar; yeniden yapılandırma " -"projesi sonucu uygular ve test eder. {ph0}Açık şekil{ph1}" +"REA talimatları, çağıranları ve veri okumalarını sağlar; yeniden " +"yapılandırma projesi sonucu uygular ve test eder. {ph0}Açık şekil{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Bu vaka çalışmasında" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7899,7 +7905,7 @@ msgstr "{ph0}Proje{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7907,7 +7913,7 @@ msgstr "{ph0}Ses tavası{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7915,23 +7921,23 @@ msgstr "{ph0}Sonucu kontrol etme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Çalışmaya devam et{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "bakımı yapılan C işlevleri" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "orijinal kodla karşılaştırmalar" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "eşleşen derlenmiş baytlara sahip işlevler" @@ -7942,7 +7948,7 @@ msgstr "eşleşen derlenmiş baytlara sahip işlevler" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7952,12 +7958,12 @@ msgstr "" "Proje kontrol noktası: 7 Ekim 2026. {ph0}İlerleme defteri{ph1} * {ph2}Test " "kapsamı{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Proje şu ana kadar" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7969,24 +7975,24 @@ msgstr "" "Kurtarılan kod, tahta ve kaynak işlemeyi, tuğla vuruşlarını, animasyonları, " "parçacıkları ve bonus üretimini kapsar. Mevcut yapılar, denetim yardımcı " "programları ve bir analiz kitaplığı sağlar. Oynanabilir oyun üzerindeki " -"çalışmalar top ve raket fiziği, güçlendirme kullanımı ve Windows entegrasyonu " -"ile devam ediyor." +"çalışmalar top ve raket fiziği, güçlendirme kullanımı ve Windows " +"entegrasyonu ile devam ediyor." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Sol / sağ ses konumunun hesaplanmasını bulma" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 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 "" -"Bir tuğla vurulduğunda, yatay konumu ses koduna geçirilir. İnceleme, bu ekran " -"koordinatının nasıl sola / sağa kaydırma değeri haline geldiğini kurtarmak " -"için gerekliydi." +"Bir tuğla vurulduğunda, yatay konumu ses koduna geçirilir. İnceleme, bu " +"ekran koordinatının nasıl sola / sağa kaydırma değeri haline geldiğini " +"kurtarmak için gerekliydi." #. {ph0}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Kodlama aracınız" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Kopyala" @@ -8017,7 +8023,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8028,7 +8034,7 @@ msgstr "" "bulmak için REA kullanın. Hesaplamayı açıklayın ve kodu " "gösterin.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8039,7 +8045,7 @@ msgstr "" " istemi. Aşağıdaki araştırma, REA sorgularını ve cevabın arkasındaki " "kanıtları göstermektedir." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8053,7 +8059,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8067,12 +8073,12 @@ msgstr "" "kayan nokta işlemleri gösterdi. Bu tutarsızlık, ajana araştırmaya devam " "etmesi için somut bir neden verdi." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "İlk decompiler görünümü" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8081,50 +8087,50 @@ msgstr "" "Çıktı bir dönüşüm çağrısı gösterir. Aşağıdaki talimatları okumak, o çağrıyı " "besleyen girdiyi ve hesaplamayı ortaya çıkarır." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "REA aracılığıyla yanıtlanan üç soru" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Eksik girdiyi kurtar" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, 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 "" -"İşlev sonucu, sözde kod ve çağıranların yanı sıra talimatları içerir. Burada, " -"{ph0} kod çözücü görünümünde eksik olan tamsayı girdisini gösterir." +"İşlev sonucu, sözde kod ve çağıranların yanı sıra talimatları içerir. " +"Burada, {ph0} kod çözücü görünümünde eksik olan tamsayı girdisini gösterir." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Girişi anlamak için çağıranı takip edin" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, 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 bu çağıranı ilk sonuçta tanımladı. Önceki talimatları {ph0}tile_x'i 30'a " -"ölçeklendirir; 20 eklemek tuğlanın ekran koordinatını verir, {ph1}." +"REA bu çağıranı ilk sonuçta tanımladı. Önceki talimatları {ph0}tile_x'i 30'a" +" ölçeklendirir; 20 eklemek tuğlanın ekran koordinatını verir, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Bellek adreslerinin arkasındaki değerleri okuyun" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8133,12 +8139,12 @@ msgstr "" "Döndürülen baytlar, iki aritmetik sabiti ve ilk kaydırma ölçeğini oluşturur." " Aracı artık C ifadesi için gereken değerlere sahiptir." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "REA’nın bulgularından C'ye" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8149,7 +8155,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8157,7 +8163,7 @@ msgstr "{ph0}01{ph1} Giriş" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8165,7 +8171,7 @@ msgstr "{ph0}02{ph1} Çarpın" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8173,7 +8179,7 @@ msgstr "{ph0}03{ph1} Çıkar" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8181,18 +8187,18 @@ msgstr "{ph0}04{ph1} Ölçek" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Dönüş" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Orijinal x86 * alıntı" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Yeniden inşa edilmiş C" @@ -8202,7 +8208,7 @@ msgstr "Yeniden inşa edilmiş C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8211,8 +8217,8 @@ msgid "" "through REA establishes the screen-coordinate meaning of the C parameter " "{ph4}." msgstr "" -"{ph0}01 * Girişi okuyun.{ph1} Talimat görünümü REA işlev sonucu okur {ph2} ve " -"kullanır {ph3} tamsayıyı yüklemek için. Çağıranı REA aracılığıyla takip " +"{ph0}01 * Girişi okuyun.{ph1} Talimat görünümü REA işlev sonucu okur {ph2} " +"ve kullanır {ph3} tamsayıyı yüklemek için. Çağıranı REA aracılığıyla takip " "etmek, C parametresi {ph4} ekran koordinat anlamını belirler." #. {ph0}: @@ -8221,7 +8227,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8238,7 +8244,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8256,7 +8262,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8274,7 +8280,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8286,7 +8292,7 @@ msgstr "" "sonuçlar. C sonucu {ph4} atar; original-x86 karşılaştırmaları döndürülen " "değeri kontrol eder." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8294,25 +8300,26 @@ msgid "" "setup and cleanup." msgstr "" "Assembly alıntısı giriş, aritmetik ve dönüş talimatlarını seçer. Aşağıdaki " -"tam liste, araya giren depoları ve işlev kurulumunu ve temizlemeyi de içerir." +"tam liste, araya giren depoları ve işlev kurulumunu ve temizlemeyi de " +"içerir." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Tam assembly ve destekleyici kanıtlar" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA sonucu * 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Çağıran ne sağlar" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8322,54 +8329,54 @@ msgstr "" "0x411f40 değerindeki tuğla çarpma işlevi{ph0}, döşeme koordinatını 30 " "ölçeklendirir, 20 ekler ve ardından çağrıdan önce iter:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Verilerin okuduğu şey" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA bayt okur, küçük uçlu çiftler olarak çözülür" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Adres" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Değer" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "İçin kullanılır" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "İlk çarpma" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Çıkarma" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} başlangıçta" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Saklanan pan ölçeği" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8385,7 +8392,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8394,12 +8401,12 @@ msgid "" msgstr "" "{ph0}Tutulan kaynak{ph1} * {ph2}İnceleme notları ve kanıt referansları{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Kurtarılan işlevi kontrol etme" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8408,12 +8415,12 @@ msgstr "" "Kurtarılan işlev iki denetimden geçer: dönüş değerleri orijinaliyle eşleşir " "ve derlenmiş baytları yürütülebilir dosyayla eşleşir." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 davranış vakası" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8424,12 +8431,12 @@ msgstr "" "karşılaştırır. 0, 0,5, 1, 20 ve -1 olmak üzere beş kaydırma ölçeğinde 0'dan " "640'a kadar olan her tamsayı konumunu kapsar." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 eşleşen bayt" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8440,7 +8447,7 @@ msgstr "" "gözden geçirilen yer değiştirmeleri uyguladıktan ve başvurulan sabitleri " "kontrol ettikten sonra tam işlevle eşleşir." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8455,18 +8462,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Derleyici tekrar ayrıntılarını okuyun{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "İncelemeye devam et" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8477,7 +8484,7 @@ msgstr "" "için de kullanılıyor: ilgili işlevleri inceleyin, durumlarını ve " "bağımlılıklarını kurtarın, ardından uygulamayı orijinaliyle karşılaştırın." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8486,7 +8493,7 @@ msgstr "" "Ses kaydırma işlevini kendiniz incelemek için DX-Ball projesinin kurulum " "talimatlarını izleyin ve eşleşen orijinal hedefini sağlayın. Sonra koş:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "DX-Ball çalışma kopyasında" @@ -8495,20 +8502,21 @@ msgstr "DX-Ball çalışma kopyasında" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, 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 deposu{ph1}{ph2} Güncel kaynak, ilerleme ve yerel kurulum.{ph3}" +"{ph0} DX-Ball deposu{ph1}{ph2} Güncel kaynak, ilerleme ve yerel " +"kurulum.{ph3}" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8524,7 +8532,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8549,13 +8557,13 @@ msgstr "" "derlenmiş işlev baytlarının eşleşmesine kadar bir DX-Ball yeniden " "yapılandırmasını izleyin." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "DX-Ball ses kaydırma incelemesi; daha küçük ekranlarda yatay kaydırma" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8564,76 +8572,76 @@ msgid "" "checked independently against the original x86 in 3,205 cases and by VC4.0 " "compiler replay matching 63 bytes." msgstr "" -"DXBALL.EXE işlevi 0x00406400, REA ile denetlenir. Tuğlaya çarpan bir çağıran, " -"20 artı 30 kez tile_x sağlar. Talimatlar x'i yükleyin, 1.5625 ile çarpın, " -"500.0'ı çıkarın, pan_scale uygulayın ve bir tamsayı döndürün. Tutulan C, " -"3.205 durumda orijinal x86'ya karşı bağımsız olarak ve 63 baytla eşleşen " -"VC4.0 derleyici tekrarı ile kontrol edilir." +"DXBALL.EXE işlevi 0x00406400, REA ile denetlenir. Tuğlaya çarpan bir " +"çağıran, 20 artı 30 kez tile_x sağlar. Talimatlar x'i yükleyin, 1.5625 ile " +"çarpın, 500.0'ı çıkarın, pan_scale uygulayın ve bir tamsayı döndürün. " +"Tutulan C, 3.205 durumda orijinal x86'ya karşı bağımsız olarak ve 63 baytla " +"eşleşen VC4.0 derleyici tekrarı ile kontrol edilir." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball rekonstrüksiyon vaka çalışması" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Örnek istemi kopyala" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Sol / sağ ses konumunun hesaplanmasını takip edin" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Orijinal derleme alıntısını kopyala" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Ses pan işlevini kopyala" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Tam ses kaydırma düzeneğini kopyalayın" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "DX-Ball analiz komutunu kopyalayın" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Anasayfa{ph1} / Vitrinler" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA vaka çalışmaları." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8642,43 +8650,43 @@ msgstr "" "Android, oyunlar, Electron ve kod, şekiller ve doğrulanmış sonuçlarla CTF " "mücadelesi." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * APK analizi" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Bir kimlik doğrulayıcı oturum açma kodunu nasıl oluşturur?" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 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 "" -"Yayınlanan APK’da Aegis’in altı basamaklı kod hesaplamasını bulun. Oluşturma " -"yöntemlerini REA ile izleyin, ardından kodun neden her 30 saniyede bir " +"Yayınlanan APK’da Aegis’in altı basamaklı kod hesaplamasını bulun. Oluşturma" +" yöntemlerini REA ile izleyin, ardından kodun neden her 30 saniyede bir " "değiştiğini görmek için bir demo saatini hareket ettirin." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Android vaka çalışmasını okuyun" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Yerel ikili dosyaların analizi" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "CTF bayrak denetleyicisini çözme" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8689,22 +8697,22 @@ msgstr "" "fonksiyonlarını bulun, maskeleri ve toplamları denklemlere dönüştürün, " "ardından çözülen bayrağı orijinal programla doğrulayın." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "CTF vaka çalışmasını okuyun" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Yerel makine kodu · Yeniden yapılandırma" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball’ın sol / sağ ses pozisyonunun hesaplanması" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8712,26 +8720,26 @@ msgid "" "function, checked against the original behavior and all 63 compiled bytes." msgstr "" "1996 Windows oyunundan sol / sağ ses konumu hesaplamasını kurtarın. REA " -"talimatları, çağıran referansları ve sayısal sabitler, orijinal davranışa ve " -"derlenmiş 63 baytın tümüne karşı kontrol edilen küçük bir C işlevine yol " +"talimatları, çağıran referansları ve sayısal sabitler, orijinal davranışa ve" +" derlenmiş 63 baytın tümüne karşı kontrol edilen küçük bir C işlevine yol " "açar." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ball örnek olay incelemesini okuyun" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Özellik izleme" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Notion metni ve HTML'yi nasıl kopyalar" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8743,22 +8751,22 @@ msgstr "" "işaretleyicisinin zengin blok verilerini bir kopyaya nasıl bağlı tuttuğunu " "görün." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Notion örnek olay incelemesini okuyun" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Yeniden Yapılandırma" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "TH04 bir mermi halkasını nasıl hedefliyor" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8769,17 +8777,17 @@ msgstr "" "koordinat işlemlerini okunabilir C++ ile eşleştirin, ardından oyuncuya " "yönelik bir halkayı nasıl ürettiklerini görün." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "TH04 örnek olay incelemesini okuyun" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Adım adım kılavuzlar" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8788,7 +8796,7 @@ msgstr "" "Kılavuzlar yerel bir hesaplama, bir Electron dışa aktarma ve bir tarayıcı " "isteğinden geçer. Her biri bir bilgi istemi ve somut bir hedefle başlar." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Kılavuzları okuyun" @@ -8808,12 +8816,12 @@ msgstr "" "Android kimlik doğrulayıcı, DX-Ball, Notion, TH04 ve bir DownUnderCTF bayrak" " denetleyicisi." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -8822,25 +8830,25 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Anasayfa{ph1} / {ph2}Vitrinler{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Örnek olay incelemesi * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Notion nasıl kopyalanır{ph0}metin ve HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8849,12 +8857,12 @@ msgstr "" "Bir pano çağrısını izleyin Notion’ın sayfa API'sı, ön yükleme ve ana işlem " "aracılığıyla Electron 's pano yazıcısı." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Masaüstü 7.6.1 · JavaScript * REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Notion’ın masaüstü paketinin içindeki köprü" @@ -8866,7 +8874,7 @@ msgstr "Notion’ın masaüstü paketinin içindeki köprü" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8883,7 +8891,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8900,7 +8908,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8917,7 +8925,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8928,13 +8936,13 @@ msgstr "" "sağlanan metni ve HTML'yi yazar.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Bir kanal iki tarafa katılır: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8944,14 +8952,14 @@ msgstr "" "Sarmalayıcıların çözülmesi, bu adların arkasındaki Electron çağrılarını " "ortaya çıkarır." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Bu vaka çalışmasında" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8959,7 +8967,7 @@ msgstr "{ph0}Pano köprüsünü takip edin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8967,19 +8975,19 @@ msgstr "{ph0}Bir bloğun yapısını korumak{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Daha fazla örnek ve kaynak{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Kopyalama işlemi nereye gidiyor?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8998,17 +9006,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Kodlama aracınız" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Kopyala" @@ -9019,7 +9027,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9030,21 +9038,21 @@ msgstr "" "kopyaladığını izlemek için REA kullanın. Her adımda kodu " "gösterin.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " "coding agent." msgstr "" -"Kodlama aracınız tarafından kullanılabilen Notion’ın yerel uygulama paketine " -"sahip örnek bir komut istemi." +"Kodlama aracınız tarafından kullanılabilen Notion’ın yerel uygulama paketine" +" sahip örnek bir komut istemi." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA okumaya nereden başlayacağınızı bulur" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9055,13 +9063,13 @@ msgstr "" "IPC isteği gönderen çağrıyı bulur. Her iki bulgu da küçültülmüş paketteki " "kaynak aralıklarıyla birlikte gelir:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA bulguları → açılacak iki yer" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9075,7 +9083,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9089,27 +9097,27 @@ msgstr "" "pakette araması gereken kesin bir şey verir. Aşağıdaki dört alıntı, " "bağlandığı rotayı göstermektedir." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Dört kısa kod parçası" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " "Unrelated members are omitted." msgstr "" -"Okunabilir değişken adlarıyla paketlenmiş JavaScript’ten basitleştirilmiştir. " -"İlgisiz üyeler atlanır." +"Okunabilir değişken adlarıyla paketlenmiş JavaScript’ten " +"basitleştirilmiştir. İlgisiz üyeler atlanır." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Sayfaya açılan API’den başlayın" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9119,13 +9127,13 @@ msgstr "" "Bu üye kanal adını sağlar. ınvokerInMain uygulaması, isteğin sayfanın " "sürecinden nasıl ayrıldığını {ph0} anlatır." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Önyüklemenin sarmalayıcısını çözme" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9135,14 +9143,14 @@ msgstr "" "Döndürülen işlev, bağımsız değişkenleri Electron istek ve yanıt IPC’si " "aracılığıyla iletir. Artık ana işlem tarafında {ph0} arayabiliriz." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Alıcının nasıl kaydedildiğini kontrol edin" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9152,12 +9160,12 @@ msgstr "" "Ana süreç başka bir sarmalayıcı kullanır. {ph0} yöntemi, bu kanal için bir " "{ph1} alıcısı kaydeder." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Yazıyı ve gönderen kontrolünü bulun" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9168,13 +9176,13 @@ msgstr "" "verileri Electron pano API'sı. Kanal ve çözümlenen iki sarmalayıcı, açıkta " "kalan yöntemi bu çağrıya bağlar." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Kopyalanan bir blok yapısını nasıl korur?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9185,27 +9193,27 @@ msgstr "" "verilerini yerel olarak saklar ve bunları bağlamak için kopyalanan HTML'ye " "bir kimlik koyar." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "Kayıtlı blok verilerine HTML bağlantıları" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "HTML Kimliğini oku" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Aynı yerel kimliği bulun" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Notion blok verilerini geri yükle" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9214,7 +9222,7 @@ msgstr "" "Açıklayıcı metin ve kimlik. Kaydedilen modül testi, kimlikler eşleştiğinde " "blok verilerini geri yükler; eski bir girdi yalnızca metin ve HTML döndürür." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9223,24 +9231,24 @@ msgstr "" "Yapıştırmada, Notion HTML kimliğini arar ve kaydedilen kopyaya karşı kontrol" " eder. Eşleşen kimlikler blok verilerini geri yükler." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "13 Temmuz 2026'da önbelleğe alınan web varlıklarından kaydedilen pano " "biçimi." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Daha fazla örnek ve kaynak" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Başka bir örnek: İşaretleme tabloları" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9249,12 +9257,12 @@ msgstr "" "Notion, Markdown'u blok verilerine ayrıştırır. Bu örnek, bir tablonun " "üstbilgi ve veri satırlarına nasıl dönüştüğünü gösterir." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Notion’ın Markdown ayrıştırıcısı aracılığıyla bir tablo" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9263,13 +9271,13 @@ msgstr "" "Çıkarılan bir Markdown ayrıştırıcısından kaydedilen çıktı. Tablo satırlar ve" " hücreler haline gelir." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Başka bir yol: çevrimdışı SQLite bağlantısı" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9278,12 +9286,12 @@ msgid "" " utility process. Subsequent statement batches and results travel over that " "port." msgstr "" -"Notion’ın oluşturucu, getsqlitemeta'yı IPC aracılığıyla ister{ph0} Ana işlem " -"bir mesaj kanalı oluşturur ve bir portu işleyiciye, diğeri ise bir SQLite " -"yardımcı programı işlemine verir. Sonraki ifade grupları ve sonuçları bu port " -"üzerinden gider." +"Notion’ın oluşturucu, getsqlitemeta'yı IPC aracılığıyla ister{ph0} Ana işlem" +" bir mesaj kanalı oluşturur ve bir portu işleyiciye, diğeri ise bir SQLite " +"yardımcı programı işlemine verir. Sonraki ifade grupları ve sonuçları bu " +"port üzerinden gider." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9292,7 +9300,7 @@ msgstr "" "Bu aktarımın ardından, veritabanı çalışmasının nerede çalıştığı ve yalnızca " "ilk IPC isteğinin izlenmesinin neden sonraki konuşmayı kaçırdığı açıklanır." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Kaynaklar ve alıntıların nasıl okunacağı" @@ -9300,7 +9308,7 @@ msgstr "Kaynaklar ve alıntıların nasıl okunacağı" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9317,7 +9325,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9333,7 +9341,7 @@ msgstr "" "çıkarılan modülleri ve küçük kablo demetlerini çalıştırdı; çıktıları, " "yakalanan bir masaüstü UI oturumundan ziyade bu probları tanımlar." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9347,7 +9355,7 @@ msgstr "" "uygulamalarını okuyarak bağlanır." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9365,7 +9373,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9379,7 +9387,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9405,52 +9413,52 @@ msgstr "" "Notion’ın pano API'sini kısa kod alıntıları ve zengin pano formatına bir " "bakışla takip edin." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron örnek olay incelemesi" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Notion analiz istemini kopyala" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Notion ön yükleme alıntısını kopyalayın" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Notion çağrı sarmalayıcısı alıntısını kopyala" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Notion işleyici sarmalayıcı alıntısını kopyala" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Notion pano alıcısı alıntısını kopyala" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Yapıştırmada zengin pano verilerini geri yükleme" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Başa dön" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -9459,25 +9467,25 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Anasayfa{ph1} / {ph2}Vitrinler{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Örnek olay incelemesi * Touhou 4: Lotus Ülkesi Hikayesi" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "TH04’ün yeniden yapılandırılması{ph0}kurşun izleri." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9487,17 +9495,17 @@ msgstr "" "incelemek için REA kullanın, ardından talimatlarını okunabilir C++ olarak " "izleyin." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 · 16 bit DOS · C++ ve assembly" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "TH04 rekonstrüksiyonunu görüntüleyin" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Orijinal talimatlardan kontrol edilen kaynağa" @@ -9508,7 +9516,7 @@ msgstr "Orijinal talimatlardan kontrol edilen kaynağa" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9524,7 +9532,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9542,7 +9550,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9558,7 +9566,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9570,7 +9578,7 @@ msgstr "" "bayt{ph3}{ph4} derleyici kontrolleri, bu yardımcıyı içeren madde işareti " "oluşturma kodunu kapsar.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9579,14 +9587,14 @@ msgstr "" "REA, orijinal kodu ve analiz kanıtını döndürür. TH04 projesi, bakımı yapılan" " kaynak ve derleyici denetimlerini sağlar." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Bu vaka çalışmasında" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9594,7 +9602,7 @@ msgstr "{ph0}Kurşun halkası{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9602,7 +9610,7 @@ msgstr "{ph0}REA ne döndürür{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9610,7 +9618,7 @@ msgstr "{ph0}C++’a derleme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9618,18 +9626,18 @@ msgstr "{ph0}Kaynağı kontrol etme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Projenin tamamı{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Bir yüzük oyuncuya nasıl nişan alır" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9648,16 +9656,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Kodlama aracınız" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Kopyala" @@ -9668,7 +9676,7 @@ msgstr "Kopyala" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9676,10 +9684,10 @@ msgid "" "it at the player. Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" "{ph0}›{ph1}{ph2}TH04’ün bir mermi halkasını nasıl oluşturduğunu ve onu " -"oyuncuya nasıl hedeflediğini bulmak için REA kullanın. Hesaplamayı açıklayın " -"ve kodu gösterin.{ph3}{ph4}{ph5}" +"oyuncuya nasıl hedeflediğini bulmak için REA kullanın. Hesaplamayı açıklayın" +" ve kodu gösterin.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9689,7 +9697,7 @@ msgstr "" "kullanılabildiği örnek bir komut istemi." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9697,13 +9705,13 @@ msgid "" "index adds 16 units: {ph0}. Adding the player's direction rotates those " "positions together." msgstr "" -"TH04, 256 açı biriminde saat yönünde tam bir dönüş depolar. 16 mermi için her " -"dizin 16 birim ekler: {ph0}. Oyuncunun yönünü eklemek, bu pozisyonları " +"TH04, 256 açı biriminde saat yönünde tam bir dönüş depolar. 16 mermi için " +"her dizin 16 birim ekler: {ph0}. Oyuncunun yönünü eklemek, bu pozisyonları " "birlikte döndürür." #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9713,12 +9721,12 @@ msgstr "" "Sayı 16, oyuncu yönü 40 ve şablon dönüşü 0 için kurtarılan açı matematiğinin" " bir örneği. {ph0}Açık şekil{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Kurtarılan kaynaktaki ateşleme şablonu" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly'nin halka saldırısı * kaynak alıntı" @@ -9727,7 +9735,7 @@ msgstr "Elly'nin halka saldırısı * kaynak alıntı" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9737,13 +9745,13 @@ msgstr "" "Bu çizgiler, zorluk ve performans ayarından önce deseni seçer. " "{ph0}Saldırının kaynağını okuyun{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REA ne döndürür" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9755,12 +9763,12 @@ msgstr "" "bullet_velocity_and_angle_set{ph0} REA talimatlarını, sözde kodunu ve " "referanslarını döndürür. Bu sonucun üç kısmı modeli açıklıyor." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Kodunu okumadan önce DOS görüntüsünü kontrol edin" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9769,7 +9777,7 @@ msgstr "" "Kontrol, yüklenen kodu ve yer değiştirme kayıtlarını sağlanan yürütülebilir " "dosyaya bağlar. Yukarıdaki yol görüntüleme için kısaltılmıştır." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Yüzüğün çarpımını ve bölünmesini okuyun" @@ -9777,7 +9785,7 @@ msgstr "Yüzüğün çarpımını ve bölünmesini okuyun" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9788,12 +9796,12 @@ msgstr "" "{ph0} mermi dizinini tutar. Kaydırma 256 ile çarpar, ardından bölme {ph1}. " "Bullet_template alanı tutulan kaynak {ph2}. Tam sıra aşağıda görünür." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Desenin oyuncuya doğru nereye döndüğünü bulun" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9806,12 +9814,12 @@ msgstr "" "adresleri okunabilir hale getirir; REA, aracının arkalarındaki orijinal " "işlemleri kontrol etmesini sağlar." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Assembly’den okunabilir C++’a" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9824,7 +9832,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9832,7 +9840,7 @@ msgstr "{ph0}01{ph1} Dizin" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9840,7 +9848,7 @@ msgstr "{ph0}02{ph1} Boşluk" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9848,7 +9856,7 @@ msgstr "{ph0}03{ph1} Amaç" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9856,18 +9864,18 @@ msgstr "{ph0}04{ph1} Döndür" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Mağaza" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * orijinal 16 bit talimatlar" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Okunabilir C++ * hedeflenmiş halka özeti" @@ -9875,7 +9883,7 @@ msgstr "Okunabilir C++ * hedeflenmiş halka özeti" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9889,7 +9897,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9904,7 +9912,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9919,7 +9927,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9934,7 +9942,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9945,9 +9953,10 @@ msgid "" msgstr "" "{ph0}05 * Son açıyı bir baytta tutun.{ph1} Saklama işlemi, oluşma açısı " "alanına {ph2} yazar. Değerler, tıpkı imzasız bayt dökümünün yaptığı gibi " -"255'ten sonra sarılır. Çevreleyen kaynak da bu açıyı ve hızı hıza dönüştürür." +"255'ten sonra sarılır. Çevreleyen kaynak da bu açıyı ve hızı hıza " +"dönüştürür." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9958,7 +9967,7 @@ msgstr "" "Yukarıdaki C++ okunabilir bir özettir. Aşağıdaki derleyici denetimleri, " "bağlantılı projedeki tutulan kaynak için geçerlidir." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Tutulan halkayı okuyun ve kaynağı hedefleyin" @@ -9975,7 +9984,7 @@ msgstr "Tutulan halkayı okuyun ve kaynağı hedefleyin" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9985,12 +9994,12 @@ msgstr "" "{ph0}Halka makro{ph1} * {ph2}Amaç ve hız kaynağı{ph3} * {ph4}Açı " "gösterimi{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Tutulan kaynağı kontrol etme" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10000,12 +10009,12 @@ msgstr "" "zinciri ile bu yardımcı da dahil olmak üzere madde işareti oluşturma kodunu " "derler." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2.139 eşleşen bayt" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10014,12 +10023,12 @@ msgstr "" "Derlenmiş madde işareti oluşturma kodu, özgün yürütülebilir dosyanın 2.139 " "baytlık bir bölümüyle eşleşir." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "İki temiz yapı" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10032,76 +10041,76 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "3 Ekim 2026'da kaydedildi. {ph0}Derleyici denetimlerini okuyun{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Hedef kimlik ve analiz kapsamı" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Orijinal hedef" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156,258 bayt, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Yardımcı giriş" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0}rea'nınREA yüklenen görüntüsünde 0x2cfc8" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Orijinal dosya ofseti" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0} döndürülen {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Kayıtlı kod denetimi" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 Ekim 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 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 "" "Derleyici denetimleri, bu yardımcı da dahil olmak üzere tüm madde işareti " -"ekleme kodu bölümünü kapsar. Ayrıca MAP katkısını ve örtüşen yer değiştirmeyi " -"karşılaştırırlar." +"ekleme kodu bölümünü kapsar. Ayrıca MAP katkısını ve örtüşen yer " +"değiştirmeyi karşılaştırırlar." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10110,13 +10119,13 @@ msgid "" "two ranges across a 517-byte span; the selected instructions above lie in " "those reported ranges." msgstr "" -"REA, {ph0} yük segmentinde statik DOS yük görüntüsünü doğruladı. Adresleri bu " -"analiz görüntüsünü tanımlar. İşlev sonucu, 517 baytlık bir aralıkta iki " -"aralıkta 503 gövde baytı bildirir; Yukarıdaki seçilen talimatlar, bildirilen " -"aralıklarda bulunur." +"REA, {ph0} yük segmentinde statik DOS yük görüntüsünü doğruladı. Adresleri " +"bu analiz görüntüsünü tanımlar. İşlev sonucu, 517 baytlık bir aralıkta iki " +"aralıkta 503 gövde baytı bildirir; Yukarıdaki seçilen talimatlar, bildirilen" +" aralıklarda bulunur." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10127,12 +10136,12 @@ msgid "" "independent pristine-dump provenance still open." msgstr "" "Kaynak adları ve derleyici denetimleri TH04 denetim noktası 0d72e980'den " -"{ph0}. Daha önceki yeniden yapılanma gözlemleri, projenin kendi analiz komut " -"dosyalarını kullandı; Bu sayfa, aynı orijinal hedefin yeni bir REA " +"{ph0}. Daha önceki yeniden yapılanma gözlemleri, projenin kendi analiz komut" +" dosyalarını kullandı; Bu sayfa, aynı orijinal hedefin yeni bir REA " "incelemesini ekler. Sağlanan oyunun kimliği, bağımsız bozulmamış döküm " "kaynağı hâlâ açıkken, depo bildirimi tarafından sabitlenir." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10140,15 +10149,15 @@ msgid "" "project." msgstr "" "Şekil açı hesaplamasını göstermektedir. Tam oyun kontrolleri, zamanlama ve " -"PC-98 donanım davranışı, yeniden yapılandırma projesinde ayrı çalışma zamanı " -"denetimlerine sahiptir." +"PC-98 donanım davranışı, yeniden yapılandırma projesinde ayrı çalışma zamanı" +" denetimlerine sahiptir." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Tam TH04 rekonstrüksiyonu" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10161,7 +10170,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10173,7 +10182,7 @@ msgstr "{ph0}TH04 deposunu keşfedin{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10189,7 +10198,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10205,7 +10214,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10231,22 +10240,22 @@ msgstr "" "nasıl aralıklı ve oyuncuya yönelik olduğunu görmek için assembly ve " "kurtarılan C++ kodunu takip edin." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 mermi deseni vaka çalışması" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "TH04 örnek istemini kopyala" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10254,7 +10263,7 @@ msgstr "" "TH04 sabit ve hedeflenmiş mermi halkaları; daha küçük ekranlarda yatay " "olarak kaydırın" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10267,27 +10276,27 @@ msgstr "" "mermi oyuncuya işaret eder. Her ikisi de 16 açı birimi veya 22,5 derecelik " "bir aralık tutar." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "TH04 ateşleme şablonunu kopyala" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "TH04 hedefli halka hesaplamasını takip edin" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "TH04 derleme alıntısını kopyalayın" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Okunabilir hedefli halka hesaplamasını kopyala" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Başa dön" @@ -10770,597 +10779,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Aynı aralık: 256 ÷ 16 = 16 açı birimi = 22,5 °" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Örnekler" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Başlangıç" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Rehberler" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Kaynak kod" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT lisansı" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Topluluğa katıl" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "X’te takip et" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * seçilen betik kaynağı" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Kaynak kod" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Beklenen biçimlendirici çıktısı" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Talimatlar" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Çağıran" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Sabitler" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C işlevi" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Düğme" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "Ön yükleme API'sı" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV dosyası" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Tıklamanız" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Yakalanan istek" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Komut dosyasını dışa aktar" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA sonuç * özet.ıpc'den alıntı" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA talimat alıntısı * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA çağıran alıntı * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA bayt sonuçları * küçük endian çiftleri olarak yorumlanır" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Kurtarılan C * alıntı" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Vitrinler →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Denetlenen betikten seçilen ayarlar" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "% işleyicisinin okunabilir özeti" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * seçilen orijinal talimatlar" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Operatör Kimlikleri * Microsoft'un kaynağı" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Ajan → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → temsilci * seçilen sonuçlar" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → aracı * yöntemler ve çağıranlar" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * seçilen derlenmiş Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Okunabilir özet * temsilcinin yorumu" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, komple gövde" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "İndir Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Android analiz sağlayıcısını indirin" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Ajan → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → temsilci * seçilen sonuçlar" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → ajan * seçilen talimatlar" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Aracı → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → aracı * yedinci girişler" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Orijinal çalıştırılabilir * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Orijinal meydan okumayı indirin" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Çözücüyü indirin" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA sonuç * sözde kod alıntısı" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Ajan → REA * {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → ajan * talimat alıntısı" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → temsilci * çağıran alıntı" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Aracı → REA * iki {ph0} isteği" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA bayt sonuçları * çiftler olarak deşifre edildi" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Kendi hedefinizle başlayın" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK'NIN sohbeti" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Kod oluşturma" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Kurtarılan kural" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Ayarlanabilir saat" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "İkili" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Kodu kontrol etme" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Denklemler" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Doğru!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Çalıştırılabilir" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA bulguları" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Kurtarılan C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Doğrulama" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Paketlenmiş uygulama" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Açık API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC sarmalayıcıları" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Pano" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Orijinal DOS kodu" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA talimatları" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Açı hesaplaması" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Mermi halkası" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Açık sayfa API'sı" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Oluşturucu IPC çağrısı" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Sistem panosuna gönderildi" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Notion tarafından yerel olarak kaydedildi" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "İşaretleme girişi" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Yapılandırılmış ayrıştırıcı çıktısı * alıntı" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Kendi uygulamanızı analiz edin" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Ajan → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → aracı * seçilen alanlar" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Ajan → REA * {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → ajan * talimat alıntısı" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Aynı işlev sonucu * amaç alıntısı" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "İlgili tutulan C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Halka makro * TH04 şubesi, alıntı" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Açı ve hız * kaynak alıntı" @@ -11392,7 +11401,7 @@ msgstr "Çeviri güncelleniyor. Şimdilik bu sayfayı ingilizce olarak okuyun." #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11410,7 +11419,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11431,7 +11440,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11440,10 +11449,10 @@ msgid "" "written, which fields it contains, and the relevant files and " "lines.{ph5}{ph6}{ph7}" msgstr "" -"{ph0}›{ph1}{ph2}{ph3}Yeni bir örnek klasöre indirin ve paketini açın. Notları " -"Dışa Aktar'ı tıklattığımda ne olacağını bulmak için REA kullanın. Nerede " -"{ph4}yazıldığını, hangi alanları içerdiğini ve ilgili dosyaları ve satırları " -"gösterin.{ph5}{ph6}{ph7}" +"{ph0}›{ph1}{ph2}{ph3}Yeni bir örnek klasöre indirin ve paketini açın. " +"Notları Dışa Aktar'ı tıklattığımda ne olacağını bulmak için REA kullanın. " +"Nerede {ph4}yazıldığını, hangi alanları içerdiğini ve ilgili dosyaları ve " +"satırları gösterin.{ph5}{ph6}{ph7}" #. {ph0}: @@ -11452,7 +11461,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11471,7 +11480,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11484,14 +11493,14 @@ msgstr "" "doğrula.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Yeniden yapılanma ·{ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11502,7 +11511,7 @@ msgstr "" " önerilen değişiklikleri gözden geçirin." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11511,7 +11520,7 @@ msgstr "Verilen bir örnek * {ph0} ve npm * Kodlama aracınız" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11529,7 +11538,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11544,7 +11553,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11563,7 +11572,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11574,7 +11583,7 @@ msgstr "" "dosyayı yazar.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11589,7 +11598,7 @@ msgstr "{ph0} * satır 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11598,11 +11607,11 @@ msgid "" "prediction and actual output.{ph6}{ph7}{ph8}" msgstr "" "{ph0}›{ph1}{ph2}Kimliği 1 ve başlığı olan bir not için CSV değerini tahmin " -"{ph3}edin. Ardından{ph4}{ph5}, kontrol etmek için örneğin biçimlendiricisini " -"çalıştırın. Tahmini ve gerçek çıktıyı gösterin.{ph6}{ph7}{ph8}" +"{ph3}edin. Ardından{ph4}{ph5}, kontrol etmek için örneğin biçimlendiricisini" +" çalıştırın. Tahmini ve gerçek çıktıyı gösterin.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11614,17 +11623,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"İhtiyacın {ph0}olacak 22 (22.23.4+), 24 (24.22.1+) veya 26+ (>=26.12.1). npm ile birlikte " -"gelir{ph1}." +"İhtiyacın {ph0}olacak 22 (22.23.4+), 24 (24.22.1+) veya 26+ (>=26.12.1). " +"npm ile birlikte gelir{ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11632,20 +11642,20 @@ msgstr "{ph0} yok mu, emin değil misiniz?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"{ph0}, v22.23.4+, v24.22.1+ veya v26.12.1+ gösterirse hazırsınız. Daha eski bir sürüm" -" ya da \"not recognized\" / \"command not found\" hatası gösterirse {ph1} 24" -" LTS kurun:" +"{ph0}, v22.23.4+, v24.22.1+ veya v26.12.1+ gösterirse hazırsınız. Daha eski " +"bir sürüm ya da \"not recognized\" / \"command not found\" hatası gösterirse" +" {ph1} 24 LTS kurun:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11659,7 +11669,7 @@ msgstr "{ph0} * örnek kaynak alıntı" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11668,9 +11678,9 @@ msgid "" msgstr "{ph0}Örneği açın{ph1} * {ph2}İndir {ph3}{ph4}* {ph5}İndir{ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11678,7 +11688,7 @@ msgstr "{ph0} * örnek kaynak" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11692,7 +11702,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11709,7 +11719,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11720,7 +11730,7 @@ msgstr "" "{ph3}220 veriyor?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11734,7 +11744,7 @@ msgstr "REA * yüklendi {ph0}* seçili satırlar" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11753,7 +11763,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11766,28 +11776,28 @@ msgstr "" "değiştirebileceğim küçük bir demo yap.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * API üyesi" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * IPC yardımcısı" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "main /{ph0} * işleyici yardımcısı" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11806,7 +11816,7 @@ msgstr "Koyu temaya geç" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11822,18 +11832,18 @@ msgstr "" "bağlayın." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Uzmanlaşmış modeller{ph0}Deneme" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Tersine mühendislik için daha büyük bir model gerekli mi?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11842,12 +11852,12 @@ msgstr "" "Touhou yeniden yapılandırma deneyiminden genel amaçlı modeller, uzmanlaşmış " "modeller ve derleyici geri bildiriminden öğrenme üzerine düşünceler." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Yazan N0zoM1z0 · 13 Ekim 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "İçeriğe geç" @@ -11856,38 +11866,38 @@ msgstr "İçeriğe geç" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" "{ph0}Ana Sayfa{ph1} / {ph2}Blog{ph3} / Modeller ve tersine mühendislik" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Deneme" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Tersine mühendisliğin daha büyük bir modele ihtiyacı var mı?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Yazan N0zoM1z0 · 13 Ekim 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Önemli noktalar" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11900,7 +11910,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11913,7 +11923,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11926,7 +11936,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11939,7 +11949,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11950,14 +11960,14 @@ msgstr "" "birlikte değerlendirin.{ph1} Yapay zeka aracısı iş akışının tamamı için " "ölçmek istediğim şey bu." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Bu makalede" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11965,7 +11975,7 @@ msgstr "{ph0}Daha güçlü modeller neyi değiştirdi?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11973,7 +11983,7 @@ msgstr "{ph0}Neden uzmanlaşalım?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11981,7 +11991,7 @@ msgstr "{ph0}Bu deneyim nerede saklanmalı?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11989,7 +11999,7 @@ msgstr "{ph0}Bir sonraki faydalı deneyi öğrenmek{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11997,7 +12007,7 @@ msgstr "{ph0}Tersine mühendislik ve takviyeli öğrenme{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12005,7 +12015,7 @@ msgstr "{ph0}Doğrulama denetleyicisi yanlış olduğunda{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12013,18 +12023,18 @@ msgstr "{ph0}Çalıştırılmaya değer bir karşılaştırma{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Bu ne tür bir yapay zeka ajanını akla getiriyor?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Daha güçlü modeller neyi değiştirdi?" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12039,7 +12049,7 @@ msgstr "" " olmak üzere oyunların yeniden yapılandırılmasından geliyor. Modelleri " "değiştirdiğimde, depolar her oturumda kurtarılanların kaydını tuttu." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12054,12 +12064,12 @@ msgstr "" "olduğunda, kaynak değişiklikleri bu ilerlemeyi neyin mümkün kıldığını " "gösterir." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Geçici değişkenler örtüşen yaşam sürelerine ihtiyaç duyuyordu" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12069,8 +12079,8 @@ msgid "" msgstr "" "TH09 saldırı fonksiyonunun mantığının büyük bir kısmı zaten yeniden " "oluşturulmuştu, ancak derleyici hâlâ geçici sonuçları orijinalinden farklı " -"şekilde saklıyordu. Geriye kalan sorun, bu sonuçların ne kadar süreyle canlı " -"kalması gerektiği ve depolarının ne zaman yeniden kullanılabileceğiydi." +"şekilde saklıyordu. Geriye kalan sorun, bu sonuçların ne kadar süreyle canlı" +" kalması gerektiği ve depolarının ne zaman yeniden kullanılabileceğiydi." #. {ph0}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12094,7 +12104,7 @@ msgstr "" "sorunu tekrar incelediğinde{ph3}, bu geçici değişkenlerin yaşam süreleri " "hakkında yararlı bir hipotez öne sürdü." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12110,7 +12120,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12124,7 +12134,7 @@ msgstr "" "örtüşmeyi çözdü. Birkaç hedefli denemeden sonra, {ph0}kaynaktan yapılan " "temiz bir yeniden derleme, tam işlevin eşleştiğini doğruladı{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12136,7 +12146,7 @@ msgstr "" "verdi. Derleyici geri bildirimi, bu hipotezi eşleşen bir kaynak kodu " "düzenlemesine dönüştürmeye yardımcı oldu." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Farklı bir kontrol akışı grafiği" @@ -12145,7 +12155,7 @@ msgstr "Farklı bir kontrol akışı grafiği" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12167,7 +12177,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12185,7 +12195,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12199,7 +12209,7 @@ msgstr "" "Bir temsilci, çevredeki işi ifade etmenin daha iyi bir yolunu bulmadan önce " "yerel varyasyonları uzun süre denemeye devam edebilir." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12213,7 +12223,7 @@ msgstr "" "doğrulamalarını incelememizi sağlar; kontrollü bir karşılaştırma ise modelin" " etkisini devraldığı deneyimin etkisinden ayırmaya yardımcı olur." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12228,12 +12238,12 @@ msgstr "" "Bunun ne kadarı geniş muhakeme yeteneği gerektiriyor? Bir model, o derleyici" " ve kodla tekrar tekrar çalışarak ne kadar öğrenebilir?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Özel bir yapay zeka modeli neden başarılı olabilir?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12248,7 +12258,7 @@ msgstr "" "Depolar bunu yararlı örneklerle desteklemektedir: İlgili döngüler ve " "yardımcı düzenlemeler, oyunlar arasında hipotezler sağlamıştır." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12268,7 +12278,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12284,7 +12294,7 @@ msgstr "" "etkileyen bir adlandırma modelini ortaya çıkarmıştı. Bu, {ph2}yeniden inşa " "etmek{ph3}{ph4} için daha umut verici bir hipotez önerdi." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12293,7 +12303,7 @@ msgstr "" "Dosya boyutu değişkeni için bu kalıbın yeniden kullanılması, depolama alanı " "eklemeden gerekli düzeni oluşturdu. Daha sonra tam işlev eşleşti." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12305,7 +12315,7 @@ msgstr "" "model, bu tür birçok durumu görebilir ve hangi kaynak kodu varyasyonlarının " "ilk önce test edilmeye değer olduğunu öğrenebilir." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12324,7 +12334,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12344,14 +12354,14 @@ msgstr "" "verir; bunun geçerli olup olmadığını her hedefte kontrol ederiz. Uzman model" " bu bağlamları ayırt etmeyi öğrenmelidir." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Bu deneyim nerede saklanmalı?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12367,7 +12377,7 @@ msgstr "" "derleyici derslerini, kaynağı ve onları faydalı kılan başarısız deneyleri " "içerir." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12384,7 +12394,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12403,7 +12413,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12413,14 +12423,14 @@ msgid "" "candidate fails, the model must decide what the result means for its next " "attempt. Knowing the relevant pattern is only the beginning of that process." msgstr "" -"{ph0}\"Model, derleyici tuhaflığını bilmiyordu\" ve \"model bunu kullanamadı\" " -"farklı sorunlardır.{ph1} Geri getirme ilk sorunu çözebilir, ancak bu gerçeği " -"yararlı bir adaya dönüştürmek yine de çalışma gerektirir. Aday kaynak kodu " -"başarısız olursa modelin bir sonraki denemesinde sonucun ne anlama geldiğine " -"karar vermesi gerekir. İlgili modeli bilmek bu sürecin yalnızca " -"başlangıcıdır." +"{ph0}\"Model, derleyici tuhaflığını bilmiyordu\" ve \"model bunu " +"kullanamadı\" farklı sorunlardır.{ph1} Geri getirme ilk sorunu çözebilir, " +"ancak bu gerçeği yararlı bir adaya dönüştürmek yine de çalışma gerektirir. " +"Aday kaynak kodu başarısız olursa modelin bir sonraki denemesinde sonucun ne" +" anlama geldiğine karar vermesi gerekir. İlgili modeli bilmek bu sürecin " +"yalnızca başlangıcıdır." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12434,12 +12444,12 @@ msgstr "" " yardımcı olacaktır: daha iyi aday oluşturma, geri bildirim sonrasında daha " "iyi kararlar veya her ikisi." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Bir sonraki faydalı deneyi öğrenmek" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12453,7 +12463,7 @@ msgstr "" "sonuç, kalan olasılıkları daraltabilir ve bir sonraki deneyin daha yararlı " "olmasını önerebilir." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12461,37 +12471,37 @@ msgid "" "information. Each of the following experiments helped identify what still " "needed to change." msgstr "" -"Geçici sonuçlar örneğini tekrar düşünün. Son kaynağı işe yarayan düzenlemeyi " -"gösteriyor ancak bu kaynağa giden yol daha fazla bilgi içeriyor. Aşağıdaki " +"Geçici sonuçlar örneğini tekrar düşünün. Son kaynağı işe yarayan düzenlemeyi" +" gösteriyor ancak bu kaynağa giden yol daha fazla bilgi içeriyor. Aşağıdaki " "deneylerin her biri, hâlâ neyin değişmesi gerektiğinin belirlenmesine " "yardımcı oldu." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Deney" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Sonucunun bize öğrettikleri" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Sonuçları kopyalamanın farklı bir yolunu deneyin" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Kopya kodu değişir ancak işlev hâlâ farklıdır." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Döndürülen değerleri doğrudan kullanın" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12499,12 +12509,12 @@ msgstr "" "Kopyalama orijinal düzeni takip eder ancak geçici depolama yine de " "farklıdır." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Tüm geçici değişkenleri aynı anda geçerli tutun" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12513,18 +12523,18 @@ msgstr "" "Ayrı bir depolamaya sahipler, ancak bir tanesi daha sonra çarpışma " "kontrolleri için kullanılan bir değerle örtüşüyor." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Çarpışma kontrolü değerini ayrı tutun" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Kaynaktan alınan temiz bir yeniden derleme, eşleşmenin tamamını doğrular." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12533,7 +12543,7 @@ msgstr "" "Yukarıdaki saldırı fonksiyonunun yeniden yapılandırılmasından bize " "öğrettiklerine göre gruplandırılmış seçilmiş deneyler." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12548,7 +12558,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12563,7 +12573,7 @@ msgstr "" "bilgilendirici olmayı bıraktığında, aracının kaynak temsilini yeniden gözden" " geçirebilmesi veya kanıtları yeniden inceleyebilmesi gerekir." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12571,18 +12581,18 @@ msgid "" "rigid sequence of required rewrites would remove that choice, along with " "part of the behavior we want the model to learn." msgstr "" -"Bu seçimleri yapmayı öğrenmek özerklik gerektirir. Bazen bir sonraki yararlı " -"adım, başka bir düzenleme derlemek yerine başka bir çağıranı incelemektir. " +"Bu seçimleri yapmayı öğrenmek özerklik gerektirir. Bazen bir sonraki yararlı" +" adım, başka bir düzenleme derlemek yerine başka bir çağıranı incelemektir. " "Gerekli yeniden yazma işlemlerinin katı bir dizisi, modelin öğrenmesini " "istediğimiz davranışın bir kısmıyla birlikte bu seçimi de ortadan " "kaldıracaktır." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Takviyeli öğrenme için tersine mühendislik neden ilgi çekicidir?" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12596,7 +12606,7 @@ msgstr "" "adayı derleyebilir, uyumsuzluğu inceleyebilir ve bu gözlemi bir sonraki " "adımını seçmek için kullanabilir." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12613,7 +12623,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12636,7 +12646,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12653,7 +12663,7 @@ msgstr "" "hesaplamalarını{ph1} nasıl işlediğini ortaya çıkardı. Aracının yararlı bir " "düzeltmeyi test edebilmesi için önce neyi ölçeceğini bulması gerekiyordu." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12665,12 +12675,12 @@ msgstr "" "olduğunda, öğrenilmiş bir arama politikasının bununla ne kadar ileri " "gidebileceğini araştırabiliriz." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Doğrulama denetleyicisi yanlış olduğunda" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12682,7 +12692,7 @@ msgstr "" "Tekrarlanabilir bir yanıt bile gerçekte neyi doğruladığına göre " "anlaşılmalıdır." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12705,7 +12715,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12719,7 +12729,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12736,7 +12746,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12753,7 +12763,7 @@ msgstr "" "bir talimat eşleşmesinin, doğruladığı baytlar ve veriler açısından " "anlaşılması gerekir." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12771,7 +12781,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12784,12 +12794,12 @@ msgstr "" "bildirimi optimize etme konusunda daha iyi hale geldikçe, geri bildirimin " "anlaşılması da daha önemli hale gelir." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Çalıştırılmaya değer bir karşılaştırma" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12805,7 +12815,7 @@ msgstr "" "gösterecektir. Buradan itibaren, denetimli uzmanlık ve RL ile eğitilmiş bir " "sürüm, eğitimin neleri eklediğini incelememize olanak tanır." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12819,7 +12829,7 @@ msgstr "" " bir arama stratejisini şans eseri başarılı olan aday bir çözümden ayırmaya " "yardımcı olacaktır." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12834,7 +12844,7 @@ msgstr "" " bir yapay zeka modeli, ona ulaşmak için gereken işin çoğunu yapar. Bunları " "ayrı ayrı ölçmek o iş bölümünü ortaya çıkaracaktır." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12849,7 +12859,7 @@ msgstr "" "tutar ve doğrulanmış yanıtlarını hem eğitim verilerinin hem de erişim " "kütüphanesinin dışında tutardım." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12865,7 +12875,7 @@ msgstr "" "akışı üretip üretmediğini gösterecektir. Eğitim maliyetleri ayrı olarak " "ölçülmelidir." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12882,7 +12892,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12904,7 +12914,7 @@ msgstr "" "sonraki deneye rehberlik edebilir, ancak \"yaklaşmanın\" herhangi bir " "ödülünü tam kabul kontrolüne göre doğrularım." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12920,12 +12930,12 @@ msgstr "" "Cevaplar, her model türünün en yararlı olduğu yerin neresi olduğuna karar " "vermemize yardımcı olacaktır." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Bu ne tür bir yapay zeka ajanını akla getiriyor?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12941,7 +12951,7 @@ msgstr "" "kalmazsa, daha geniş kapsamlı temsilci hedef kanıtlara geri dönebilir veya " "ölçümün kendisini araştırabilir." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12952,7 +12962,7 @@ msgstr "" "bir araç haline gelir. Temsilci, daha önceki atılımları mümkün kılan yön " "değiştirme özgürlüğünü elinde tutar." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12966,7 +12976,7 @@ msgstr "" "hangilerinin belirli bir zanaatta tekrarlanan deneyimlerle geliştirildiğini " "sormamız için bir neden de verir." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12983,7 +12993,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12994,12 +13004,12 @@ msgstr "" "karşılaştırmayı oluşturmak ve ne öğrendiğimizi görmek için kullanmak " "istiyorum." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Kanıt ve model ilişkilendirme" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13012,7 +13022,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13038,7 +13048,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13063,7 +13073,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13088,7 +13098,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13115,7 +13125,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13127,7 +13137,7 @@ msgstr "" "denetimi{ph3}, {ph4}TH08 sayısal inceleme{ph5} ve {ph6}TH09 yeniden " "oynatmayı kaydeden yeniden yapılandırma{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13153,22 +13163,22 @@ msgstr "" " geri bildirimlerinden daha iyi hipotezler önermeyi öğrenme hakkında neler " "öğretti?" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Bu sayfada" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Modeller ve tersine mühendislik makalesi" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Seçilmiş yeniden yapılanma deneyleri" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Başa dön" @@ -13177,7 +13187,7 @@ msgstr "Başa dön" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13189,68 +13199,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Örnekler{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA vaka çalışmaları." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * APK analizi" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Bir kimlik doğrulayıcı oturum açma kodunu nasıl oluşturur?" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Android vaka çalışmasını okuyun" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Özellik izleme" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Notion metni ve HTML'yi nasıl kopyalar" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Notion örnek olay incelemesini okuyun" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Yerel makine kodu · Yeniden yapılandırma" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball’ın sol / sağ ses pozisyonunun hesaplanması" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "DX-Ball örnek olay incelemesini okuyun" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Kurulum seçenekleri" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13261,7 +13271,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13273,7 +13283,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13281,7 +13291,7 @@ msgstr "{ph0}1. Bilgisayarınızı hazırlayın{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13289,7 +13299,7 @@ msgstr "{ph0}2. Bir ajan seçin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13297,7 +13307,7 @@ msgstr "{ph0}3. REA’yı bağlayın{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13305,18 +13315,18 @@ msgstr "{ph0}4. Bir inceleme deneyin{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Diğer hedefler ve analiz sağlayıcıları{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Bilgisayarınızı hazırlayın" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13326,7 +13336,7 @@ msgstr "" "çalışan bir kodlama ajanı bu dosyaları okuyabilir ve sizin için araçları " "çalıştırabilir." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13337,7 +13347,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13348,29 +13358,29 @@ msgstr "winget yoksa {ph0}Node.js yükleyicisini indirin{ph1}." #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, 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}, use {ph3} instead. For npm, use {ph4}:" msgstr "" -"Daha sonra {ph2} çalıştırırken PowerShell {ph0}\"running scripts is disabled " -"on this system\"{ph1} derse bunun yerine {ph3} kullanın. npm için {ph4} " +"Daha sonra {ph2} çalıştırırken PowerShell {ph0}\"running scripts is disabled" +" on this system\"{ph1} derse bunun yerine {ph3} kullanın. npm için {ph4} " "kullanın:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Ajanınız için bir çalışma klasörü oluşturun" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Terminalde alıştırma için bir klasör oluşturun, ardından bu klasöre geçin:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13379,12 +13389,12 @@ msgstr "" "Bir sonraki adım için bu terminali açık tutun. Zaten bir çalışma klasörünüz " "varsa onun yerine o klasörü açın." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Bir kodlama ajanı seçin" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13394,12 +13404,12 @@ msgstr "" "araçlar sağlar. Aşağıdan bir istemci uygulaması seçin; daha önce " "kullanmadıysanız talimatlarını açın." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · ChatGPT hesabınızı kullanın" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13411,39 +13421,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codex kurulumu ve giriş{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf veya VS Code · bir editör kullanın" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "İşletim sisteminize uygun editörü kurun ve giriş yapın." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "1. adımda oluşturduğunuz rea-work klasörünü açın." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · Claude hesabınızı kullanın" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "İşletim sisteminize uygun komutla kurun:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13457,13 +13467,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Code kurulumu ve hesap seçenekleri{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · masaüstü sohbetini kullanın" @@ -13473,7 +13483,7 @@ msgstr "Claude Desktop · masaüstü sohbetini kullanın" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13485,7 +13495,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13497,19 +13507,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCode kurulumu ve model ayarları{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Desteklenen tüm istemciler ve kurulum kimlikleri" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13519,12 +13529,12 @@ msgstr "" "npm’deki 6.4.0 sürümü aşağıdaki istemcileri destekler. Belirli bir istemciyi" " seçmek için kimliğini {ph0} ile kullanın." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "İstemci" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Kurulum kimliği" @@ -13534,7 +13544,7 @@ msgstr "Kurulum kimliği" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13554,7 +13564,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13564,13 +13574,13 @@ msgstr "" "{ph0}İstemci yapılandırması ve sorun giderme{ph1} · {ph2}Yayımlanmış " "sürümlerde kullanılabilirlik{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · barındırıldığı bilgisayarda bağlayın" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13583,29 +13593,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Grok Bot bağlantı talimatları{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. REA’yı bağlayın" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Bu istemi kodlama ajanınıza yapıştırın:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Belirli bir istemci için kurulum kimliğini ekleyin:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13617,7 +13627,7 @@ msgstr "" "istemci listesinde ok tuşlarıyla ilerleyin, Space ile istemcinizi seçin ve " "Enter ile devam edin." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13626,7 +13636,7 @@ msgstr "" "MCP, ajanınızın REA araçlarını çağırmasını sağlayan bağlantıdır. Beceri ise " "yazılım incelemesi için bir iş akışı sunar." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13637,7 +13647,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13647,21 +13657,21 @@ msgstr "" "{ph0} yerine istemcinizin kurulum kimliğini yazın. Başarılı bir kontrol " "{ph1} sonucunu verir. Ardından ajanınıza şunu sorun:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "REA’nın bağlı olduğunu kontrol et ve hangi REA araçlarını kullanabildiğini " "göster." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. İlk incelemenizi deneyin" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13673,7 +13683,7 @@ msgstr "" " Electron uygulamasıdır. Ajanınız, Electron'u yüklemeden veya başlatmadan " "kodunu inceleyebilir." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Kodlama ajanınız" @@ -13687,7 +13697,7 @@ msgstr "Kodlama ajanınız" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13701,7 +13711,7 @@ msgstr "" "dosyasının nereye yazıldığını, hangi alanları içerdiğini ve ilgili dosyaları" " ve satırları göster.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Dosya ve satır referanslarıyla kısa bir açıklama arayın:" @@ -13710,7 +13720,7 @@ msgstr "Dosya ve satır referanslarıyla kısa bir açıklama arayın:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13724,13 +13734,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Rehberli alıştırmada bir tahmini kontrol edin →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Örneği kendiniz indirin veya kendi uygulamanızı kullanın" @@ -13738,14 +13748,14 @@ msgstr "Örneği kendiniz indirin veya kendi uygulamanızı kullanın" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Örnek ZIP dosyasını indirin{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13756,7 +13766,7 @@ msgstr "" "yolunu ve aynı dışa aktarma sorusunu verin." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13766,12 +13776,12 @@ msgstr "" "{ph0} konumundaki uygulamayı REA ile incele. Verileri nasıl dışa aktardığını" " bul ve ilgili dosyaları ve satırları göster." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Başka bir yazılım türünü analiz edin" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13780,14 +13790,14 @@ msgstr "" "İnceleyeceğiniz hedefe uygun bölümü seçin. Analiz sağlayıcısı, REA’nın bu " "yazılım türü için kullandığı yerel analiz aracıdır." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" "Yerel makine kodu içeren çalıştırılabilir dosyalar ve kütüphaneler · Hopper," " Ghidra veya IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13796,47 +13806,47 @@ msgstr "" "REA’nın çalıştığı bilgisayara bir analiz aracı kurun. Ana sistem, işletim " "sisteminizdir; hedef ise incelemek istediğiniz programdır." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Analiz sağlayıcısı" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Kullanılamıyor" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Desteklenen dağıtımlar" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · deneysel" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Doğrulanmış profiller" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Doğrulanmış grafik arayüzsüz profil" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Sağlayıcı kılavuzuna bakın" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · kurulumun yüklemesine veya bağlamasına izin verin" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13847,7 +13857,7 @@ msgstr "" "ilk açıldığında demo modunu seçin veya lisansınızı etkinleştirin. Linux’ta " "kurulum, desteklenen demoyu ve ona özel ekran ortamını hazırlar." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13857,7 +13867,7 @@ msgstr "" " veya Omarchy. Hopper ticari bir yazılımdır; demosunun sınırlarını üretici " "belirler." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13871,18 +13881,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopper kurulumu ve sorun giderme{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · ücretsiz analiz aracını ve Java’yı kurun" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13892,7 +13902,7 @@ msgstr "" "Bilgisayarınızın mimarisine uygun paketi seçin." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13905,7 +13915,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13921,7 +13931,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13929,7 +13939,7 @@ msgstr "{ph0}JDK indirin{ph1} · {ph2}Ghidra 12.1.4’ü indirin{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13939,7 +13949,7 @@ msgstr "" "Java’yı kontrol edin. İlk komut {ph0} değerini gösterir; {ph1} için bu " "klasörü kullanın. İkinci komut derleyicinin kurulu olduğunu doğrular:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13957,7 +13967,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13967,12 +13977,12 @@ msgstr "" "{ph0}Ghidra kurulumu ve mimari gereksinimleri{ph1} · {ph2}Windows Ghidra " "kılavuzu{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · mevcut bir kurulumu bağlayın" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13984,7 +13994,7 @@ msgstr "" "bağlanmayı veya özel bir veritabanı açan grafik arayüzsüz denetleyiciyi " "seçin." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13996,7 +14006,7 @@ msgstr "" "grafik arayüzsüz denetleyici bulunur. İsteğe bağlı yerel GUI köprüsünün " "ayrıca sürüm ve platform gereksinimleri vardır." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14008,7 +14018,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" @@ -14016,7 +14026,7 @@ msgstr "" "{ph0}IDA profilleri, bağlantı kaydı örnekleri ve doğrulanmış " "platformlar{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14027,18 +14037,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Makine kodu analiz örneğini izleyin{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Web siteleri, Android, .NET, donanım yazılımları ve diğer hedefler" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14047,110 +14057,110 @@ msgstr "" "Elinizdeki hedefin kılavuzunu açın. Her kılavuz ek araçları, desteklenen " "sistemleri ve ilk komutu gösterir." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Hedef" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Hazırlanacak araçlar" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Kılavuz" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Kılavuzu açın{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Web sitesi" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / paketler" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android cihazı" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Android kaynakları" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEB projesi" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Donanım yazılımı" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linux çökmesi" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Mantık sinyalleri" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Süreç davranışı" @@ -14166,7 +14176,7 @@ msgstr "Süreç davranışı" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14176,18 +14186,18 @@ msgstr "" "{ph0}Flutter kılavuzu{ph1} · {ph2}Paketler ve kaynaklar{ph3} · {ph4}EVM bayt" " kodu{ph5} · {ph6}Tüm inceleme kılavuzları{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "REA’yı terminalden kullanın" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLI komutları, genel kurulum ve curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14197,7 +14207,7 @@ msgstr "" "{ph0} yerine hedefin fonksiyon listesinden bir fonksiyon adı veya adresi " "yazın. Önce Ghidra’nın yapılandırılması gerekir." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14206,7 +14216,7 @@ msgstr "" "macOS veya Linux’ta Node.js’i hazırladıktan sonra curl yükleyicisini de " "kullanabilirsiniz:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14216,12 +14226,12 @@ msgstr "" "istemcilerinde MCP ayarlarında REA’yı etkinleştirin ve ajan sohbetinde " "araçlarına izin verin." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL ve boşluk içeren yollar" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14233,17 +14243,17 @@ msgstr "" " orada Linux yollarını kullanın. Grafik arayüzsüz sağlayıcılar REA ile aynı " "sistemde çalışır." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Windows kurulum komutu:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "REA’yı güncelleyin veya kaldırın" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14254,7 +14264,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14268,52 +14278,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Güncelleme ve kaldırma ayrıntıları{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Windows için REA kurulum komutunu kopyala" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Komutu kopyala" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Notları Kopyala soruşturma istemi" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14323,12 +14333,12 @@ msgstr "" "curl ve unzip yoksa önce onları kurun. Debian veya Ubuntu’da {ph0} " "çalıştırın; diğer dağıtımlarda paket yöneticinizi kullanın." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Terminali kapatın, yeniden açın, ardından:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14344,7 +14354,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14354,19 +14364,19 @@ msgstr "" "{ph0}Cursor kurulumu{ph1} · {ph2}Windsurf / Devin Desktop kurulumu{ph3} · " "{ph4}VS Code ve Copilot kurulumu{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · bir yapay zekâ modeli seçin" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "IDA bağlantı kayıt dosyasını hazırlayın" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14382,7 +14392,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14395,7 +14405,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14407,22 +14417,22 @@ msgstr "" "değerlerini dosyaya kopyalayın. REA’dan inceleme istemeden önce özgün ikili " "dosyayı IDA’da açın ve IDA tarafındaki eklentiyi başlatın." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLite veritabanı" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVM bayt kodu" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Codex’i işletim sisteminize uygun komutla kurun:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14433,7 +14443,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14444,12 +14454,12 @@ msgstr "" "indirin, açın ve kurulum adımlarını izleyin. Ardından Terminal’i yeniden " "açın." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Zaten Homebrew kullanıyor musunuz?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14461,7 +14471,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14471,7 +14481,7 @@ msgstr "" "Planı inceleyip onaylayın, Claude’u yeniden açın, ardından {ph0}3. adımdaki " "bağlantı kontrolünü yapın{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14482,12 +14492,12 @@ msgstr "" "macOS veya Linux arm64 kurulumunda, devam etmeden önce bilgisayarınız için " "yerel decompiler’ı derleyin." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Ghidra’nın yerel decompiler’ını derleyin" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14500,7 +14510,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14510,7 +14520,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14520,20 +14530,20 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · yerel derleme talimatları{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" "Ardından Ghidra’yı kontrol edin ve yollarını istemciniz için kaydedin:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14541,13 +14551,13 @@ msgstr "Hesap Makinesi'nde {ph0} neden 220 verir?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Nasıl çalışır{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14556,22 +14566,22 @@ msgstr "" "Kodlama ajanınıza bir uygulama, oyun veya web sitesi hakkında soru sorun. " "REA, yanıtın arkasındaki kodu incelemesi için araçlar sağlar." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Başlangıç" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Bir örnek görün ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Nasıl çalışır" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14582,48 +14592,48 @@ msgstr "" "çalıştığını anlamaktır. REA ile ajanınız kodu takip edebilir, bir özelliği " "açıklayabilir ve yeniden oluşturmanıza yardımcı olabilir." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Bir özellik hakkında sorun" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Ajanınıza bir program veya sayfa ve bir soru verin." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Programı inceleyin" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA kod, referanslar ve çalışma zamanı gözlemleri döndürür." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Anlayın, sonra bir değişiklik deneyin" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Ajanınız bulguları kullanarak özelliği açıklar veya yeniden oluşturur." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Talimatları adım adım izleyin" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Ajanınıza aynı soruyu sorun" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14632,7 +14642,7 @@ msgstr "" "6'dan başla. Hız 13'ün altındayken çarpışma olmadan her güncellemeye 0,001 " "ekleyin." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14640,7 +14650,7 @@ msgstr "" "Yayımlanmış bir uygulama veya oyundaki özelliği, kod ve doğrulanmış " "sonuçlarla inceleyin." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14650,7 +14660,7 @@ msgstr "" " demo saatini hareket ettirerek kodun neden her 30 saniyede değiştiğini " "görün." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14659,7 +14669,7 @@ msgstr "" "Notion'ın paketlenmiş JavaScript kodundan sistem panosuna kadar ilerleyin ve" " kopyalamanın zengin blok verilerini nasıl koruduğunu görün." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14668,12 +14678,12 @@ msgstr "" "1996 yapımı bir Windows oyununda topun konumunun sağ ve sol sese nasıl " "dönüştüğünü çıkarın." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Hedefinizi seçin." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14683,7 +14693,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14701,14 +14711,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Örnek bilgi istemi * Web sitesi" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Evet, bu." @@ -14721,7 +14731,7 @@ msgstr "Evet, bu." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14735,7 +14745,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14749,18 +14759,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}DX-Ball vaka incelemesine bakın →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Web sitesi proje istemini kopyala" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Oyun yeniden yapılandırma istemini kopyala" @@ -14772,19 +14782,19 @@ msgstr "Oyun yeniden yapılandırma istemini kopyala" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, 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}İncelemek için {ph3}REA kullanın. Bu web sitesini benim için " -"klonla.{ph4}{ph5}{ph6}" +"{ph0}›{ph1}{ph2}İncelemek için {ph3}REA kullanın. Bu web sitesini benim için" +" klonla.{ph4}{ph5}{ph6}" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14792,23 +14802,23 @@ msgstr "{ph0}Örnekler →{ph1} — incelemeler ve etkileşimli demolar." #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — yöntemler ve yeniden oluşturma notları." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Hesap Makinesi incelemesinin tamamını görün" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Daha büyük bir proje deneyin" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14817,7 +14827,7 @@ msgstr "" "İki örnek deneyelim: bir oyunun hızını değiştirelim, sonra Hesap " "Makinesi'nin % düğmesini yeniden yapalım." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14826,7 +14836,7 @@ msgstr "" "Koştukça oyun hızlanır. Hız ayarı ekleyerek yeniden yapmak için önce hızın " "nasıl değiştiğini bulmalıyız." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Hız hakkında soru sor" @@ -14839,19 +14849,19 @@ msgstr "1. Hız hakkında soru sor" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Örnek soru · Dinozor oyunu" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Hız kuralını bul" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14860,12 +14870,12 @@ msgstr "" "REA, ajanın çalışan oyunun kodunu okumasını sağlar. Hız 6 ile başlar ve " "13'ün altındayken her güncellemede biraz artar." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Sonuçla oyna" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14874,7 +14884,7 @@ msgstr "" "Bu kuralı aşağıdaki mini oyunda yeniden uyguladık ve bir hız kaydırıcısı " "ekledik. Oyunu başlat, ardından kendi hızını seç." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14883,7 +14893,7 @@ msgstr "" "Oynamak için JavaScript'i etkinleştir. Kuralı okuyabilir ve aşağıdaki kaynak" " kodunu açabilirsin." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14892,7 +14902,7 @@ msgstr "" "% düğmesi + ve × işlemlerinden sonra farklı davranır. İki kuralı bulup küçük" " bir hesap makinesinde deneyelim." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. % düğmesi hakkında soru sor" @@ -14905,18 +14915,18 @@ msgstr "1. % düğmesi hakkında soru sor" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Örnek soru · Hesap Makinesi" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. İki kuralı bul" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14925,12 +14935,12 @@ msgstr "" "REA, ajanın % düğmesinin kodunu okumasına yardımcı olur. Kod iki farklı " "kural uygular:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. % düğmesini dene" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -14939,7 +14949,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14947,7 +14957,7 @@ msgstr "{ph0}SSS'yi oku{ph1} — kurulum ve sık sorulan sorular." #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14955,13 +14965,13 @@ msgstr "{ph0}Discord'a katıl{ph1} — yardım al ve incelemelerini paylaş." #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — hata bildir veya özellik iste." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Platformuna göre kurulum:" @@ -14969,14 +14979,14 @@ msgstr "Platformuna göre kurulum:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Diğer kurulum seçenekleri: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14991,7 +15001,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15006,7 +15016,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15018,7 +15028,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15029,7 +15039,7 @@ msgstr "" " yolunu kullanın. Linux'ta varsayılan kurulum komutu {ph1} şeklindedir." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15041,67 +15051,67 @@ msgstr "" "dizelerini listele, ardından kullanıcı girdisini işleyen bölümü kod " "referanslarıyla açıkla." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Katkıda bulunanlar" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "İçeriğe geç" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Ana sayfa{ph1} / Katkıda bulunanlar" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Birlikte geliştiriyoruz." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "REA’yı daha iyi hale getiren herkese teşekkürler." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15110,22 +15120,22 @@ msgstr "" "Kod, belgeler, testler, çeviriler ve fikirler: katkıda bulunmanın birçok " "yolu var." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Nasıl katkıda bulunulur" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Sohbete katıl →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Katkıda bulunanlar" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Katkıda bulunan birini bul" @@ -15133,13 +15143,13 @@ msgstr "Katkıda bulunan birini bul" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "{ph0}GitHub katkıda bulunanlar listesi{ph1} · Güncelleme: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Eşleşen katkıda bulunan kişi yok. Başka bir kullanıcı adı deneyin." @@ -15155,12 +15165,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "REA’ya kod, belge, test ve fikirlerle katkıda bulunanları tanıyın." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub kullanıcı adı" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Başa dön" diff --git a/website/locales/uk/messages.po b/website/locales/uk/messages.po index 7cd73229e44..125b6a9a697 100644 --- a/website/locales/uk/messages.po +++ b/website/locales/uk/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Головний{ph1} сторінка / Блог" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Блог." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Думки про реверс-інжиніринг." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Реконструкція гри{ph0}Вигадування" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Промислова революція в області реверс-інжинірингу" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "Чому мене навчив посібник з оновлення та реконструкції TH08, TH095 та TH04 " "про агентів, перевірку та знання, які використовуються в різних проектах." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Прочитайте статтю" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Автор: N0zoM1z0 · 10 жовтня 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,162 +101,162 @@ msgstr "" "Роздуми про реверс-інжиніринг, засновані на практичному досвіді роботи з REA" " і агентами штучного інтелекту." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "" -"REA — Дізнайтеся, як працює програмне забезпечення. Зворотне проектування за " -"допомогою вашого ШІ-помічника для програмування." - -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +"REA — Дізнайтеся, як працює програмне забезпечення. Зворотне проектування за" +" допомогою вашого ШІ-помічника для програмування." + +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Головна REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Основна навігація" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA на GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Приєднатися до REA в Discord" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Стежити за REA в X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -265,35 +265,35 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Есе · Реконструкція Тохоу" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Промислова революція в області реверс-інжинірингу." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Автор: N0zoM1z0 · 10 жовтня 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Головне" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -356,65 +356,65 @@ msgstr "" "{ph0}Ми знаходимося на зорі промислової революції в RE.{ph1} Методи все ще " "розробляються. Нам ще багато чого належить вивчити." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Як досвід з'єднує" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Самостійність" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Агент" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Перевірка" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Еталон перевірки" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Репозиторій" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Робоча пам’ять" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -423,7 +423,7 @@ msgstr "Кодекс, докази,{ph0}перевірки та уроки." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -432,26 +432,26 @@ msgstr "Невідповідність{ph0}{ph1}Перегляньте гіпо #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Повторне використання" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -460,14 +460,14 @@ msgstr "" "Кожен наступний проект стає найкращою відправною точкою. Це включає " "виправлення перевірок, коли ми виявляємо прогалини." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "У цій статті" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -475,7 +475,7 @@ msgstr "{ph0}Серпень 2026 року{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -483,7 +483,7 @@ msgstr "{ph0} TH08: продовження{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -491,7 +491,7 @@ msgstr "{ph0}Два підходи{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -499,7 +499,7 @@ msgstr "{ph0} TH095: рецептура{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -507,7 +507,7 @@ msgstr "{ph0} TH04: різні архітектури{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -515,7 +515,7 @@ msgstr "{ph0}Від точного до читабельного{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -523,18 +523,18 @@ msgstr "{ph0}Промисловий зсув{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Що змінилося в серпні 2026 року" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -548,7 +548,7 @@ msgstr "" "програмі. Просуваючись далі, я витрачав більше свого часу на наступну " "функцію. Це також означало, що я тримав у голові все більш об'ємну картину." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -562,7 +562,7 @@ msgstr "" "інших областях, але в кожній області потрібно встановити, що можна " "перевірити за допомогою надійних посилань." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -575,7 +575,7 @@ msgstr "" "інструментів розробки. Touhou reconstruction дав мені значний проект, де я " "міг це зрозуміти." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -592,7 +592,7 @@ msgstr "" "цієї свободи змінило ситуацію на краще: я зміг приділяти більше уваги " "напрямку проекту і тому, чи заслуговують довіри його перевірки." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -603,7 +603,7 @@ msgstr "" " що залишиться після поточного проекту. Чи буде в наступній грі корисно все," " що ми тільки що дізналися?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: опора на людську працю" @@ -612,7 +612,7 @@ msgstr "TH08: опора на людську працю" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -626,7 +626,7 @@ msgstr "" "основу. Це прийшло разом із знанням конструкції та історією внеску, яку я " "зберіг у продовженні." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -638,7 +638,7 @@ msgstr "" "журналі були зареєстровані вихідні дані для всіх 1107 ідентифікованих " "ігрових функцій." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -650,7 +650,7 @@ msgstr "" "випущена веб-версія. 64-розрядна версія Linux для власної версії вийшла 30 " "Серпня." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -666,7 +666,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -684,12 +684,12 @@ msgstr "" "досягає очікуваного стану. Агент пропонує пояснення та перевіряє його; " "невідповідність дає йому можливість дослідити щось конкретне." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Точний збіг з неправильною константою" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -701,7 +701,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -714,7 +714,7 @@ msgstr "" "була перевірена на рівні {ph0}. В оригіналі використовувалося значення {ph1}" " - поріг максимальної потужності." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -729,13 +729,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -750,7 +750,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -766,7 +766,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -781,7 +781,7 @@ msgstr "" " було проаналізовано 1548 посилань на константи з плаваючою комою. Було " "виявлено ще дванадцять неправильних посилань у п'яти прийнятих функціях." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -795,7 +795,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -805,7 +805,7 @@ msgstr "" "{ph0}Посилання для перевірки (oracle) також потребувало відновлення.{ph1} Її" " виправлення було частиною оновлення гри." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -823,7 +823,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -839,7 +839,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -849,7 +849,7 @@ msgstr "" "{ph0}Успішний запуск пакета дозволив нам відновити код та покращити " "середовище для наступного пакета.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Дві різні ідеї реконструкції" @@ -858,7 +858,7 @@ msgstr "Дві різні ідеї реконструкції" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -870,7 +870,7 @@ msgstr "" "роду роботою. У повідомленні повідомляється, що подальша розробка буде " "вестися в приватному порядку до завершення. В одному уривку сказано:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -880,7 +880,7 @@ msgstr "" "інтелекту) у цій галузі на основі нашої роботи створює погану картину для " "майбутніх зусиль з декомпіляції…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -898,7 +898,7 @@ msgstr "" "стосуються того, як повинна проходити реконструкція і як слід оцінювати " "внесок." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -911,7 +911,7 @@ msgstr "" " мірою залежав від досвіду цієї людини. Довіра до розробника мала значення, " "оскільки більша частина міркувань виникла під час його роботи." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -923,7 +923,7 @@ msgstr "" "використовувати ці знання для проведення наступного розслідування " "самостійно." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -938,7 +938,7 @@ msgstr "" "могла проаналізувати, чому ми вибрали певну реалізацію, навіть якщо агент " "зробив більшу частину роботи." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -951,7 +951,7 @@ msgstr "" "цим виникають серйозні питання про кредитоспроможність. Це також змінює те, " "що розробники повинні знати, перш ніж приймати внесок." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -966,7 +966,7 @@ msgstr "" "розробляти процес і розпізнавати, коли його результати неправильні. Різні " "спільноти можуть вибрати, яку частину цих змін вони хочуть взяти на себе." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -991,7 +991,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1003,14 +1003,14 @@ msgstr "" " 2026 року, і його {ph2}Політика щодо внесків{ph3}. Цитата є скороченою " "витримкою. {ph4}Титри та Походження{ph5} TH08 вказують на межу продовження." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: досвід починає накопичуватися" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1025,7 +1025,7 @@ msgstr "" "набагато більше про те, як розпочати реконструкцію та як підтримувати її в " "робочому стані." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1038,7 +1038,7 @@ msgstr "" "підключена. Реконструкція Windows i386 була позначена як відтворювана 10 " "вересня, приблизно через дванадцять днів після ініціалізації." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1049,7 +1049,7 @@ msgstr "" "могла б отримати вигоду від роботи над іншою грою. Досвід вже був присутній " "в інструментах і в тому, як був організований проект." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1064,7 +1064,7 @@ msgstr "" "побачити, як вони працюють разом. Цей урок допоміг нам сформулювати підхід " "до побудови всієї програми TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1077,7 +1077,7 @@ msgstr "" "допомагати і після того, як я перейду далі. Наступний агент може використати" " результат, не повторюючи розслідування, яке призвело до нього." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1092,7 +1092,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1104,7 +1104,7 @@ msgstr "" "наступному проекті ми можемо витратити більше зусиль, щоб внести щось " "справді нове у свою мету." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1117,7 +1117,7 @@ msgstr "" "роботу. Їм не потрібно відновлювати всю історію проекту, щоб з'ясувати, чому" " вихідний код виглядає саме так." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: робочий процес функціонує відповідно до іншої архітектури" @@ -1126,7 +1126,7 @@ msgstr "TH04: робочий процес функціонує відповід #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1142,7 +1142,7 @@ msgstr "" "інші дані, отримані з ігор Windows. Існуючий {ph2}робота{ph3} за ReC98 також" " дала нам цінні знання та вихідні матеріали." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1155,7 +1155,7 @@ msgstr "" "використовується власний 64-розрядний порт. При установці робочої версії DOS" " спочатку вказується посилання на цей порт." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1168,7 +1168,7 @@ msgstr "" "Але агент все-таки міг довести питання до результату і використати цей " "результат для наступного експерименту." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1183,7 +1183,7 @@ msgstr "" "будуть доступні, агент зможе опрацювати питання приблизно так само, як це " "було з заголовком Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1194,7 +1194,7 @@ msgstr "" "змусила нас почати все спочатку з нового способу роботи. Архітектура " "визначила проблему; робочий процес все ще давав нам можливість її вирішити." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1211,7 +1211,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1221,12 +1221,12 @@ msgstr "" "Стан проекту на 10 жовтня 2026 року: {ph0}реконструкція DOS та ручне " "тестування{ph1} · {ph2}64-розрядний порт{ph3}. Порт знаходиться в розробці." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Від точного коду до читабельного коду" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1235,7 +1235,7 @@ msgstr "" "Як тільки реконструкція завершиться, я хочу, щоб хтось інший міг це " "зрозуміти." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1250,7 +1250,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1267,7 +1267,7 @@ msgstr "" "відповідно до джерела, щоб наступна людина могла зрозуміти, звідки походить " "ця інтерпретація." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1282,14 +1282,14 @@ msgstr "" "безпечно змінити поведінку, нам потрібно відновити зв'язок, що стоїть за " "старим доступом до пам'яті." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Порядок, який я зараз використовую, такий:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1305,7 +1305,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1322,7 +1322,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1338,7 +1338,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1352,7 +1352,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1368,7 +1368,7 @@ msgstr "" "відповідний вихідний код та дані. Другий перевіряє, що відновлена програма " "як і раніше будує і поводиться коректно відповідно до обраних нами шляхами." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1382,7 +1382,7 @@ msgstr "" "будуть доступні, агенту не вдасться провести розслідування, перш ніж " "проводити подальший рефакторинг." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1400,7 +1400,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1419,7 +1419,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1430,12 +1430,12 @@ msgstr "" "дозволяє використовувати відновлені знання.{ph1} Потім порт може " "використовувати обидва." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Що робить це промисловим зрушенням" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1449,7 +1449,7 @@ msgstr "" "досконалий інструмент міг би допомогти в будь-якій подальшій роботі, яка " "його потребувала." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1463,7 +1463,7 @@ msgstr "" "я пропишу кожен крок, більша частина роботи залишається залежною від моєї " "уваги." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1476,7 +1476,7 @@ msgstr "" "йому зрозуміти помилку досить добре, щоб спробувати ще раз. Мені все ще " "потрібно вирішити, чи зібрані дані відповідають етапу проекту." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1491,7 +1491,7 @@ msgstr "" "Агент може використовувати їх, щоб протестувати запропоноване джерело та " "перевірити, чи відповідає його пояснення дійсності." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1509,7 +1509,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1529,7 +1529,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1546,7 +1546,7 @@ msgstr "" "інструменті, ми повинні його усунути та переглянути результати, на які він " "вплинув. Наступний проект може успадкувати більш потужний інструмент." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1562,7 +1562,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1574,7 +1574,7 @@ msgstr "" " проектам можливість спільно проводити перевірки і витягувати уроки. Робота " "над однією грою може покращити стартові умови для іншої." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1586,12 +1586,12 @@ msgstr "" "інструментів впливає на те, скільки може зробити наступна людина — або " "наступний агент." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Проекти, які ми тепер можемо розглянути" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1602,7 +1602,7 @@ msgstr "" " цікавою для реінжинірингу і все одно вимагати від мене більше уваги, ніж я " "міг би їй приділити. Багато проектів так і залишаться ідеями." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1619,7 +1619,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1630,7 +1630,7 @@ msgstr "" " зв'язок та накопичені знання дозволили б агенту надійно працювати з " "нею?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1641,12 +1641,12 @@ msgstr "" "спокої. Кожен з них може покращити наш підхід до наступного. Я хочу " "продовжувати вивчати, як далеко це може нас завести." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Основні етапи та джерела реалізації проекту" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1680,7 +1680,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1714,7 +1714,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1733,7 +1733,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1757,7 +1757,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1779,7 +1779,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1795,7 +1795,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1817,7 +1817,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1831,7 +1831,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1853,27 +1853,27 @@ msgstr "" "допомогою агентів штучного інтелекту та про те, як знання об'єднуються в " "TH08, TH095 та PC-98, TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Досвід, накопичений в період між проектами" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Есе про реконструкцію Тохоу" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -1882,19 +1882,19 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Перевірити → перебудувати → змінити" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Відновіть правило швидкості динозавра." @@ -1903,7 +1903,7 @@ msgstr "Відновіть правило швидкості динозавра. #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1915,15 +1915,15 @@ msgstr "" "швидкістю. {ph0}REA повернув запущений сценарій;{ph1} ми використовували " "його правило для створення цієї міні-гри з {ph2}регульованою швидкістю.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "На цій сторінці" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1931,7 +1931,7 @@ msgstr "{ph0}Грайте і змінюйте швидкість{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1939,7 +1939,7 @@ msgstr "{ph0}Прочитайте Відновлене правило{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1947,18 +1947,18 @@ msgstr "{ph0}Перевірте реконструкцію{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Грайте і змінюйте швидкість" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1970,49 +1970,49 @@ msgstr "" "фіксовану швидкість. Виберіть Відновлене правило, щоб почати з 6 і поступово" " збільшувати швидкість знову." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Грати у відтворену версію" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Грати" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Стрибок ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Почати знову" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Швидкість" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Використовуйте правило відновленого прискорення" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2021,7 +2021,7 @@ msgstr "" "Увімкніть JavaScript для відтворення реконструкції. Наведений вище код та " "пояснення залишаються читабельними." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Прочитав повернутий скрипт REA" @@ -2029,7 +2029,7 @@ msgstr "Прочитав повернутий скрипт REA" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2044,7 +2044,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2054,18 +2054,18 @@ msgstr "" "Задані наступні параметри: {ph0}, {ph1} і максимальна {ph2}. Гра запускає цю" " гілку в оновленні без будь-яких колізій." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Використовуйте те саме правило в новій грі" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Копіювати" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2082,18 +2082,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Перевірте реконструкцію" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2104,27 +2104,27 @@ msgstr "" " автоматичним плануванням. Порівняйте ці записані швидкості з відтворенням " "відновленого правила." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Оновлення" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Оригінальна гра" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Реконструйоване правило" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Запустіть перевірку швидкості" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2133,14 +2133,14 @@ msgstr "" "Значення округлені до трьох знаків після коми. Розгалуження перевіряє перед " "додаванням, тому кінцевий приріст може бути трохи вище 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Спробуйте провести аналіз самостійно" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2149,7 +2149,7 @@ msgstr "{ph0}Налаштуйте REA{ph1} за допомогою вашого #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2158,7 +2158,7 @@ msgstr "" "Виконавши {ph0}дії по підключенню до браузеру{ph1}, використовувати {ph2} як" " URL-адреса сторінки." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2175,7 +2175,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2187,7 +2187,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодуючий аген #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2201,7 +2201,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2216,7 +2216,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2242,12 +2242,12 @@ msgstr "" "Прочитайте правила швидкості в грі динозаврів за допомогою REA, перебудуйте " "їх, потім змініть швидкість і грайте." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Реконструкція швидкості динозавра" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2256,52 +2256,52 @@ msgstr "" "Міні-гра про динозаврів. Використовуйте кнопку переходу або натисніть " "пробіл, поки гра зосереджена." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Скопіюйте Відновлене правило швидкості" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Запит на копіювання результатів аналізу динозаврів" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Головний{ph1} сторінка / поширені запитання" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "Поширені запитання щодо REA." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Налаштування, Оновлення, аналіз та усунення несправностей." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Тим" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2309,7 +2309,7 @@ msgstr "{ph0}Налаштування та оновлення{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2317,7 +2317,7 @@ msgstr "{ph0}Аналіз{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2325,31 +2325,31 @@ msgstr "{ph0}Діагностика{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Дані та обмін ними{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Налаштування та оновлення" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Як встановити REA ?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Термінал * Налаштування агента" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Копіювати" @@ -2357,7 +2357,7 @@ msgstr "Копіювати" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2371,12 +2371,12 @@ msgstr "" "файлу та запитання. Вимоги й перші кроки описані в {ph0}посібнику з " "налаштування{ph1}." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "Які агенти кодування можуть використовувати REA?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2391,18 +2391,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Підключіть свій кодуючий агент{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Як оновити REA ?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2411,13 +2411,13 @@ msgstr "" "REA релізи часто, включаючи виправлення помилок. Якщо ви встановили CLI з " "npm:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Термінал * встановлений CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2427,14 +2427,14 @@ msgstr "" "Виконайте команду оновлення налаштувань, зазначену в оновленні. Якщо ви " "налаштовуєте свого агента через {ph0}, запустивши:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Термінал * Налаштування агента оновлення" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2446,14 +2446,14 @@ msgstr "" "визначену версію пакета. Повторіть налаштування, щоб агент перейшов на нову " "версію. Для разового виклику CLI додайте потрібну команду після {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Встановлюється навик з навичок.цього достатньо?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2466,24 +2466,24 @@ msgstr "" "відповідну навичку, а потім перезапустіть свій агент, щоб він міг викликати " "інструменти." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Аналіз" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Що я можу проаналізувати за допомогою REA?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Почніть з того програмного забезпечення, яке у вас є:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2495,7 +2495,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2507,7 +2507,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2517,7 +2517,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2529,12 +2529,12 @@ msgstr "" "Android, вбудованого ПЗ і упакованих ресурсів. {ph0}Дивіться приклади " "проведених досліджень{ph1}." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "Чи потрібен мені Hopper, Ghidra або IDA?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2546,7 +2546,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2559,12 +2559,12 @@ msgstr "" "визначають, якого постачальника можна використовувати. {ph0}Налаштуйте " "аналіз програм з машинним кодом{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Чи можу я використовувати REA без кодуючого агента?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2573,14 +2573,14 @@ msgstr "" "Так. У CLI використовуються ті ж робочі процеси аналізу. Для локальної " "програми JavaScript або Electron:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Термінал * статичний аналіз додатків" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2591,13 +2591,13 @@ msgstr "" "{ph0}Використовуйте CLI{ph1} для параметрів установки." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2612,7 +2612,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2624,12 +2624,12 @@ msgstr "" "та тестування реалізації. {ph0}Розрахунок{ph1} DX-Ball і {ph2}перевірка " "прапора CTF{ph3} показують, як працює цей процес." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Що запитати в помічника?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2646,7 +2646,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2654,7 +2654,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодуючий аген #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2664,18 +2664,18 @@ msgstr "" "Замініть шлях на цільовий. В {ph0}керівництво{ph1} наведені підказки для " "прикладів в native, Electron і браузері." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Діагностика" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Чому мій агент не може бачити інструменти REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2685,7 +2685,7 @@ msgstr "" "Перезапустіть або підключіть агент після налаштування. Перевірте його " "реєстрацію REA в {ph0}; для Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Термінал * перевірте одного клієнта" @@ -2693,7 +2693,7 @@ msgstr "Термінал * перевірте одного клієнта" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2704,14 +2704,14 @@ msgstr "" "Якщо у звіті відображається відсутність або застаріла реєстрація, запустіть " "програму встановлення для цього клієнта:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Термінал * виправлення налаштувань одного клієнта" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2723,14 +2723,14 @@ msgstr "" "інструменти все ще відсутні, перевірте помилку підключення клієнта MCP. " "{ph0}Додаткова діагностика налаштування{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Чи потрібно спочатку запускати Hopper?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2743,14 +2743,14 @@ msgstr "" "демонстраційний режим або активацію ліцензії. {ph0}Дивіться розділ " "Налаштування власного провайдера{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Що робити, якщо я знайшов помилку?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2762,7 +2762,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2775,17 +2775,17 @@ msgstr "" "ім'я постачальника, якщо проблема пов'язана з аналізом програм з машинним " "кодом." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Дані та обмін ними" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "Чи завантажує REA мій додаток?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2795,7 +2795,7 @@ msgstr "" "цих результатів застосовується політика щодо даних, встановлена його " "постачальником моделей." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Як я можу поділитися прикладом або зробити свій внесок?" @@ -2804,7 +2804,7 @@ msgstr "Як я можу поділитися прикладом або зроб #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2820,7 +2820,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2847,77 +2847,77 @@ msgstr "" "Відповіді на поширені питання REA: установка, оновлення, інструменти " "аналізу, засоби програмування, усунення неполадок і обмін прикладами." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "Поширені запитання про REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Скопіювати інсталяційну команду REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Скопіювати команду оновлення REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Команда оновлення Налаштування агента копіювання" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Скопіювати команду аналізу REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Запит на копіювання прикладу аналізу" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Скопіювати команду діагностики клієнта" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Команда налаштування в області копіювання" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Головний{ph1} / Ваше перше розслідування" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2926,14 +2926,14 @@ msgstr "" "Використовуйте REA для перевірки невеликого додатки, натисніть на кнопку " "\"Експорт заміток\" і перевірте одну деталь самостійно." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "У цій вправі" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2941,7 +2941,7 @@ msgstr "{ph0}1. Настройка{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2949,7 +2949,7 @@ msgstr "{ph0}2. Запитайте про експорт{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2957,7 +2957,7 @@ msgstr "{ph0}3. Дотримуйтесь відповіді{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2965,13 +2965,13 @@ msgstr "{ph0}4. Перевірте прогноз{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Підключіть свого агента до REA." @@ -2984,30 +2984,30 @@ msgstr "1. Підключіть свого агента до REA." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Копіювати" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Або запустіть цю команду у своєму терміналі:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3016,14 +3016,14 @@ msgstr "" "Ознайомтеся з планом, схваліть налаштування, а потім перезапустіть свого " "агента. Ви вже підключені? Продовження нижче." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Запитайте, де записаний CSV" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3035,7 +3035,7 @@ msgstr "" "кнопкою {ph0}експорту заміток{ph1}. Ваш агент може перевірити його код, не " "встановлюючи та не запускаючи Electron." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3046,14 +3046,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Приклад завантаження ZIP-файлу{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3063,12 +3063,12 @@ msgstr "" "Якщо ваш агент не може завантажити файли, розпакуйте цей архів самостійно. " "Вкажіть шлях до папки {ph0} і задайте те саме питання щодо експорту." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Дотримуйтесь відповіді назад до коду" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Шукайте коротке пояснення з посиланнями на файли та рядки:" @@ -3077,7 +3077,7 @@ msgstr "Шукайте коротке пояснення з посиланням #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3088,12 +3088,12 @@ msgstr "" "Кнопка надсилає повідомлення {ph0}. Основний процес форматує нотатки як CSV " "і записує {ph1} в папку завантажень користувача. Це стовпці {ph2} і {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Від кнопки до пристрою запису файлів" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3102,7 +3102,7 @@ msgstr "" "Статичний аналіз REA відображає повідомлення з його обробником. Адресат " "зчитується з коду." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3114,19 +3114,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" "{ph0}Перегляньте повний трасування коду та записаний результат{ph1} REA." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Перевірте прогноз" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3135,29 +3135,29 @@ msgstr "" "Стовпці CSV розділені комою. Що відбувається, коли заголовок нотатки сам по " "собі містить кому або лапки?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Проведіть перевірку самостійно" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Задайте ще одне питання" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Спробуйте продовжити ту саму розмову:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3166,7 +3166,7 @@ msgstr "" "Що станеться, якщо файл не може бути записаний? Поверніться на сторінку, " "вказану в повідомленні про помилку." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3179,7 +3179,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3193,7 +3193,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3207,7 +3207,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3232,116 +3232,116 @@ msgstr "" "запитайте, куди надсилаються експортовані нотатки, і перевірте форматування " "CSV із прикладом заголовка." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "Ваше перше розслідування REA" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Скопіюйте запит на встановлення REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Команда Налаштування Копіювання" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Запит на копіювання нотаток для розслідування" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Скопіювати запит перевірки CSV" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Команда перевірки форматування копії" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Головний{ph1} сторінка / початок роботи" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Налаштуйте REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Відкрийте термінал і перевірте:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Термінал" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Копіювати" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3353,7 +3353,7 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3365,7 +3365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3377,7 +3377,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3385,7 +3385,7 @@ msgstr "{ph0}Використовуйте CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3399,19 +3399,19 @@ msgstr "{ph0}Отримання допомоги{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Або запустіть програму налаштування самостійно" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Як відкрити термінал?" @@ -3420,7 +3420,7 @@ msgstr "Як відкрити термінал?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3436,7 +3436,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3450,7 +3450,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3465,7 +3465,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3475,7 +3475,7 @@ msgstr "" "Введіть команду за допомогою {ph0} {ph1} ( macOS : {ph2} {ph3}; Linux для " "терміналів: {ph4} {ph5} {ph6}), потім натисніть Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3486,7 +3486,7 @@ msgstr "" " відповідну навичку дослідження, зберігаючи резервну копію наявної " "конфігурації. Перед застосуванням змін він запитує вашого дозволу." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Як перезапустити клієнта?" @@ -3495,7 +3495,7 @@ msgstr "Як перезапустити клієнта?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3511,7 +3511,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3521,7 +3521,7 @@ msgstr "" "{ph0}Термінальні агенти{ph1} (Claude Code, Codex, Gemini CLI): вийдіть із " "сеансу та запустіть його знову." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Як отримати повний шлях до папки?" @@ -3530,7 +3530,7 @@ msgstr "Як отримати повний шлях до папки?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3545,7 +3545,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3557,7 +3557,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3567,13 +3567,13 @@ msgstr "" "{ph0}Будь-яка система:{ph1} перетягніть папку у вікно терміналу, і з'явиться" " шлях до неї." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3582,14 +3582,14 @@ msgstr "" "Проаналізуйте папку Програми JavaScript або Electron або архів ASAR, не " "запускаючи програму:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Статичний аналіз додатків" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3599,13 +3599,13 @@ msgstr "" "Замініть шлях на каталог витягнутої Програми або файл {ph0}. У Windows тут " "працює шлях, наприклад {ph1}." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Де я можу знайти файл програми asar?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3616,7 +3616,7 @@ msgstr "Програми Electron зазвичай зберігають його #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3628,7 +3628,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3641,14 +3641,14 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} часто {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." @@ -3656,7 +3656,7 @@ msgstr "" "Деякі додатки встановлюються в іншому місці. Знайдіть у папці програми " "{ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3668,36 +3668,36 @@ msgstr "" "може вирішити." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, 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:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Встановіть CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Підключіть вашу установку Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Підключіть Ghidra до Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3709,7 +3709,7 @@ msgstr "" "Використовуйте існуючу установку Ghidra 12.1.x і 64-розрядну версію JDK 21 " "або новіше:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3717,7 +3717,7 @@ msgstr "" "Замініть ці два шляхи на свої установки, а потім перегляньте план " "встановлення." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3727,18 +3727,18 @@ msgstr "" "встановлення; вона виявить існуючу установку або запропонує план " "встановлення для вашого схвалення." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Отримання допомоги" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Якщо ваш агент не бачить REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3748,22 +3748,22 @@ msgstr "" "Перезапустіть або підключіть клієнт після встановлення. Перевірте його " "REA-з'єднання з {ph0}; для Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Якщо постачальник послуг потребує уваги" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Перевірте, яким провайдером ви користуєтесь. Для Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Перевірте одного постачальника" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" @@ -3774,7 +3774,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3786,7 +3786,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3800,7 +3800,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3814,7 +3814,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3838,68 +3838,68 @@ msgstr "" "застосунок JavaScript чи Electron з термінала. Налаштування, перші запитання" " та посібники з інструментів аналізу машинного коду." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Скопіюйте перевірку версії Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Скопіюйте команду встановлення Node.js для Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Скопіювати команду установки Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Скопіюйте команду встановлення fnm для Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Скопіюйте 24 команди Node.js для Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA Керівництво по початку роботи" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Скопіюйте запит на встановлення REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Скопіювати команду аналізу JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Скопіювати команду установки CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Команда діагностики Постачальника копіювання" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -3908,20 +3908,20 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Головний{ph1} сторінка / {ph2}Керівництво{ph3} / Огляд браузера" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3930,14 +3930,14 @@ msgstr "" "Використовуйте невеликий додаток браузера для підключення дії, його " "мережевого запиту та JavaScript, який створює завантаження." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "У цьому керівництві" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3945,7 +3945,7 @@ msgstr "{ph0}Навести приклад{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3953,7 +3953,7 @@ msgstr "{ph0}Відкрийте браузер{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3961,7 +3961,7 @@ msgstr "{ph0}Запитайте свого агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3969,13 +3969,13 @@ msgstr "{ph0}Захоплення з CLI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Що відбувається, коли ви натискаєте кнопку Експортувати?" @@ -3985,7 +3985,7 @@ msgstr "Що відбувається, коли ви натискаєте кно #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3997,7 +3997,7 @@ msgstr "" " натисканні на неї завантажується файл {ph4}, дві нотатки форматуються як " "CSV і починається завантаження." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Від кліка до завантаження CSV" @@ -4008,7 +4008,7 @@ msgstr "Від кліка до завантаження CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4024,7 +4024,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4042,7 +4042,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4052,17 +4052,17 @@ msgstr "" "{ph0}03 * ваш агент{ph1}{ph2} прочитав експортний код{ph3}{ph4}, що " "підключає спостережуваний запит до {ph5} в {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Запустіть запис, перш ніж натиснути кнопку Експортувати нотатки." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "Відкрийте Chrome з віддаленою налагодженням" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4071,21 +4071,21 @@ msgstr "" "Відкрийте хостинг-приклад Notes, використовуючи окремий профіль браузера та " "локальний порт для налагодження. На Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Запустіть приблизний браузер" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Копіювати" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4095,7 +4095,7 @@ msgstr "" " Windows . Ви можете замінити URL-адресу сторінки на іншу сторінку, яку ви " "хочете переглянути." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4104,7 +4104,7 @@ msgstr "" "REA підключається до цього існуючого браузера. Ви зберігаєте контроль над " "сторінкою, виконуєте дію та закриваєте браузер після завершення." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Попросіть свого агента Переглянути одну дію" @@ -4117,7 +4117,7 @@ msgstr "Попросіть свого агента Переглянути одн #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4129,7 +4129,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Ваш кодуючий аген #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4141,7 +4141,7 @@ msgstr "" "CSV?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4151,7 +4151,7 @@ msgstr "" "Приклад запиту. Вкажіть своєму агенту кінцеву точку налагодження, {ph0} і " "URL-адреса сторінки. Нехай він запустить запис до того, як ви натиснете." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4162,23 +4162,23 @@ msgstr "" "отримані дані. Потім він може перевірити сценарій, що лежить в основі " "експорту." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Або захоплення з терміналу" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Знайдіть цільовий ідентифікатор сторінки:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Знайдіть потрібну сторінку" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4188,14 +4188,14 @@ msgstr "" "Виберіть цільовий об'єкт за допомогою URL-адреси, наведеної в прикладі " "Notes. Замінивши {ph0} нижче на його ідентифікатор, потім запустіть:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Зафіксуйте наступні десять секунд" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4206,7 +4206,7 @@ msgstr "" "\"{ph0}Експортувати нотатки{ph1}\"у цьому браузері. Результат з'явиться " "після завершення перегляду." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4217,49 +4217,49 @@ msgstr "" "цього вікна та форму відповіді у форматі JSON. Попередні запити не входять " "до цього списку." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Прочитайте запит і експортуйте скрипт" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Записано за допомогою REA 4.1.0 на прикладі local Notes" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Зафіксований факт" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Цінність" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Запит" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Відповідь" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Ініціатор запиту" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · сценарій" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Структура відповіді" @@ -4267,19 +4267,19 @@ msgstr "Структура відповіді" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Прочитайте завантажені скрипти" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4291,7 +4291,7 @@ msgstr "" "використовуються дані:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4304,7 +4304,7 @@ msgstr "" " цьому клацанні запитувався файл {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4316,7 +4316,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4341,65 +4341,65 @@ msgstr "" "браузера, зафіксуйте клацання, перегляньте запит і дотримуйтесь сценарію " "експорту." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Спостереження в браузері" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Скопіюйте та запустіть приклад браузера" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Запит на копіювання прикладу" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Скопіюйте знайдену сторінку" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Скопіюйте запис на наступні десять секунд" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Копіювати читати завантажені скрипти" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Головний{ph1} сторінка / Путівники" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "Напрямні REA." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4408,37 +4408,39 @@ msgstr "" "Проаналізуйте вбудовану функцію, експорт Electron або запит браузера. Кожен " "посібник містить підказку, код та результати." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Перше розслідування" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Налаштування REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." -msgstr "Підключіть свого ШІ-помічника для програмування або використовуйте REA в терміналі." +msgstr "" +"Підключіть свого ШІ-помічника для програмування або використовуйте REA в " +"терміналі." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Почніть роботу з REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Програми з машинним кодом" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Відновлення розрахунку положення звуку зліва / справа" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4448,22 +4450,22 @@ msgstr "" "дотримуйтесь абонента, прочитайте Числові константи та перевірте відновлений" " C." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Керівництво по аналізу програм з машинним кодом" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript і Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Слідкуйте за експортом CSV" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4473,14 +4475,14 @@ msgstr "" "завантаження і основного процесу. Використовуйте REA для підключення API, " "каналу IPC та запису файлів." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "Керівництво по JavaScript і Electron" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4488,17 +4490,17 @@ msgstr "" "Щоб створити більший упакований додаток, скористайтеся {ph0}мостом " "буфера{ph1} обміну Notion." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Поведінка браузера" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Спостерігайте за клацанням" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4507,7 +4509,7 @@ msgstr "" "Відкрийте приклад working Notes, запишіть запит на експорт і знайдіть код, " "який перетворює його відповідь на завантаження." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Керівництво по спостереженню за браузером" @@ -4526,12 +4528,12 @@ msgstr "" "Вивчіть REA на коротких прикладах: власні обчислення, експорт Electron, CSV " "і запит з браузера." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -4540,7 +4542,7 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" @@ -4548,13 +4550,13 @@ msgstr "" "{ph0}Головний{ph1} сторінка / {ph2}Керівництво{ph3} / JavaScript і Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4563,14 +4565,14 @@ msgstr "" "Виконайте натискання кнопки на сторінці API, через Electron IPC, для запису " "файлів CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "У цьому керівництві" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4578,7 +4580,7 @@ msgstr "{ph0}Навести приклад{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4586,7 +4588,7 @@ msgstr "{ph0}Запитайте свого агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4594,7 +4596,7 @@ msgstr "{ph0}Відстеження експортного коду{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4602,20 +4604,20 @@ msgstr "{ph0}Спробуйте на прикладі{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "Куди дівається \"експорт нотаток\"?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4628,7 +4630,7 @@ msgstr "" "сторінці, виконується перехід до основного процесу і записується CSV . " "Поведінка розподілена по декількох файлах." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "Експорт CSV в рамках процесів Electron" @@ -4642,7 +4644,7 @@ msgstr "Експорт CSV в рамках процесів Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4659,7 +4661,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4677,7 +4679,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4690,13 +4692,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4707,14 +4709,14 @@ msgstr "" "відкритий API. Шлях виводиться з коду; під час перехоплення під час " "виконання можна перевірити, що виконується." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Запитайте про експорт CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4732,14 +4734,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Копіювати" @@ -4750,7 +4752,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4761,7 +4763,7 @@ msgstr "" "експортую нотатки до цієї програми. Де створено CSV?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4769,7 +4771,7 @@ msgid "" "{ph0}." msgstr "Приклад запиту. Вкажіть абсолютний шлях до папки програми або {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4780,17 +4782,17 @@ msgstr "" "процесів. Ваш агент використовує цю карту, щоб звузити пошук до функції " "експорту." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Відстеження експортного коду" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Сторінка викликає невеликий API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4801,7 +4803,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4813,7 +4815,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4824,7 +4826,7 @@ msgstr "" "форматуються, і основний процес записує файл {ph1} в папку завантажень " "користувача." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4833,7 +4835,7 @@ msgstr "" "Записано за допомогою REA 4.1.0 на прикладі, який можна завантажити нижче. " "Розташування вихідних текстів відповідає висновкам API, каналу та обробника." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Проаналізуйте цей приклад самостійно" @@ -4841,25 +4843,25 @@ msgstr "Проаналізуйте цей приклад самостійно" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Приклад завантаження ZIP-файлу{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Перегляньте шість оригінальних файлів" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Статичний аналіз додатків" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4870,7 +4872,7 @@ msgstr "" " та один відповідний обробник у {ph0}. Місця розташування джерел вказані в " "{ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4881,13 +4883,13 @@ msgstr "" " шлях до ASAR. Агент може використовувати рядок літер, ІМ'Я API або канал " "IPC за допомогою інструментів відстеження функцій REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Перевірте пристрій запису CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4897,7 +4899,7 @@ msgstr "" "Випливати {ph0} в його обробник. Які вхідні дані надходять до CSV writer і " "що станеться, якщо запис файлу не вдасться?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4912,7 +4914,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4926,7 +4928,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4940,7 +4942,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4966,32 +4968,32 @@ msgstr "" "завантаження та обробника IPC за допомогою REA. Включає завантажувані файли " "прикладів і перевірений результат аналізу." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript і Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Запит на копіювання прикладу" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Копіювання статичного аналізу програми" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -5000,7 +5002,7 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -5009,13 +5011,13 @@ msgstr "" "машинним кодом" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5024,14 +5026,14 @@ msgstr "" "Перегляньте оригінальні інструкції, визначте вхідні дані та константи, а " "потім перевірте відновлений C." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "У цьому керівництві" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5039,7 +5041,7 @@ msgstr "{ph0}Навести приклад{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5047,7 +5049,7 @@ msgstr "{ph0}Запитайте свого агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5055,7 +5057,7 @@ msgstr "{ph0}Ознайомтеся з результатами REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5063,18 +5065,18 @@ msgstr "{ph0}Відновіть і перевірте{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Розрахувати розташування стереозвуку зліва / справа" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5085,7 +5087,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5097,7 +5099,7 @@ msgstr "" "функції {ph1}. REA також повертає свої інструкції та пристрої виклику, які " "дають агенту можливість знайти відсутню арифметику." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Ви знайомі з цими умовами?" @@ -5106,7 +5108,7 @@ msgstr "Ви знайомі з цими умовами?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5118,7 +5120,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5131,7 +5133,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5144,7 +5146,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5156,7 +5158,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5166,7 +5168,7 @@ msgstr "" "{ph0}Константа:{ph1} фіксовані числа, що зберігаються в програмі, зчитуються" " як необроблені байти та декодуються." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Три докази, один розрахунок" @@ -5177,7 +5179,7 @@ msgstr "Три докази, один розрахунок" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5194,7 +5196,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5212,7 +5214,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5222,7 +5224,7 @@ msgstr "" "{ph0}03 * байти даних{ph1}{ph2} Числова константа{ph3}{ph4}, на які " "посилаються байти, декодуються як {ph5}, {ph6} і масштабне значення.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5231,7 +5233,7 @@ msgstr "" "REA надає інструкції, зв'язок між викликами функцій і байти. Агент " "інтерпретує їх разом." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Запитайте про поведінку" @@ -5240,7 +5242,7 @@ msgstr "Запитайте про поведінку" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5251,19 +5253,19 @@ msgstr "" "інструменту аналізу програм з машинним кодом{ph3} надайте локальний " "виконуваний файл та запитання:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Який інструмент аналізу слід використовувати?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA потрібен один з них для читання власних програм:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5277,7 +5279,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5290,7 +5292,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5300,7 +5302,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5316,14 +5318,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Копіювати" @@ -5334,7 +5336,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5344,7 +5346,7 @@ msgstr "" "{ph0}\"{ph1}{ph2}Використовуйте REA, щоб дізнатися, як DX-Ball обчислює " "розташування стереозвуку. Поясніть розрахунок і покажіть код.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5355,7 +5357,7 @@ msgstr "" "DX-Ball 1.07. REA не включає DX-Ball, тому використовуйте власну копію або " "задайте те саме питання про іншу невелику програму Windows, яку ви маєте." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Як отримати повний шлях до файлу?" @@ -5364,7 +5366,7 @@ msgstr "Як отримати повний шлях до файлу?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5379,7 +5381,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5391,7 +5393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5401,17 +5403,17 @@ msgstr "" "{ph0}Будь-яка система:{ph1} перетягніть файл у вікно терміналу, і з'явиться " "шлях до нього." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Ознайомтеся з результатами REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Прочитайте вхідні дані" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5420,13 +5422,13 @@ msgstr "" "Інструкції завантажують цілий аргумент і перетворюють його в арифметику з " "плаваючою комою. Це вхідні дані, відсутні в першому поданні псевдокоду." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Слідуйте за абонентом" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5437,12 +5439,12 @@ msgstr "" "координату плитки множили на 30; додавання {ph0} (20) дає положення цегли на" " екрані." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Прочитайте зазначені константи" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5452,12 +5454,12 @@ msgstr "" "фактичні значення; порядок команд повідомляє агенту, як вони " "використовуються." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Запишіть і перевірте відновлену функцію" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5468,7 +5470,7 @@ msgstr "" "до перетворення в ціле число. При обчисленні центр екрану виявляється в " "центрі стереополя." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5481,20 +5483,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Спробуйте це за допомогою власного двійкового коду" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5508,7 +5510,7 @@ msgstr "" "для вивчення. Корисні початкові запитання включають “як обробляється цей " "файл?\"або\" яка функція виконує цю дію в меню?”." -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5517,13 +5519,13 @@ msgstr "" "Якщо ви вже знаєте назву функції або адресу, ви можете запитати її з " "терміналу. Для налаштованої установки Ghidra:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Функціональний аналіз" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5537,7 +5539,7 @@ msgstr "" "сеанс. Запити вашого агента MCP повторно використовують імпортований " "двійковий файл, поки цей сеанс відкритий." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5561,50 +5563,50 @@ msgstr "" "Відновіть власні обчислення за допомогою REA: перегляньте інструкції, " "дотримуйтесь абонента, прочитайте константи та перевірте відновлений C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Аналіз програм з машинним кодом" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Запит на копіювання прикладу" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Аналіз функції копіювання" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Перейти до змісту" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Налаштування REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5612,7 +5614,7 @@ msgstr "{ph0}Налаштування REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5620,7 +5622,7 @@ msgstr "{ph0}Гра в динозаврів{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5628,7 +5630,7 @@ msgstr "{ph0}Калькулятор{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5636,25 +5638,25 @@ msgstr "{ph0}Спробуйте REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Дізнатися більше{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Зворотне проектування за допомогою агента кодування" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Дізнайтеся, як{ph0}працює програма." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Вставте цей запит у свого ШІ-помічника для програмування:" @@ -5667,33 +5669,33 @@ msgstr "Вставте цей запит у свого ШІ-помічника #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Копіювати" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Або виконайте цю команду в терміналі:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Перевірте й схваліть план змін, а потім перезапустіть помічника." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5701,7 +5703,7 @@ msgstr "{ph0}01{ph1} Декодування гілок" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5709,7 +5711,7 @@ msgstr "{ph0}02{ph1} Відстеження викликів" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5719,20 +5721,20 @@ msgstr "{ph0}03{ph1} Відновіть правило" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * в якій філії?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5742,29 +5744,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Два переходи в одне і те ж місце. Що це за " "оператори?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Знайдіть ідентифікатори команд, а потім позначте гілку." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Розділити ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Помноживши ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Що роблять викликані функції?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5774,24 +5776,24 @@ msgstr "" "\"100-це чисто. Дзвінки-це лише адреси. {ph0}Який з них ділиться? Яке " "значення входить в?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Перевірте допоміжні функції та простежте збережені значення." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Діливши" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * яке це правило?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5801,19 +5803,19 @@ msgstr "" "\"Цей шлях множиться на інші вхідні дані. Таким чином, {ph0}10% означає 10% " "від 200{ph1} після +”." -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Назвіть операнди та перевірте обидва шляхи до операторів." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Наочне міркування експерта" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5831,21 +5833,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Приклад відповіді * заснований на результатах дослідження" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5853,67 +5855,67 @@ msgid "" msgstr "" "Після + кнопка % виводить {ph0}процентне значення від першого числа.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA надає" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Інструкції обробника, декомпільований код та виклики." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Помічник пояснює" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Яка гілка застосовується, що вона обчислює і як її перебудувати." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Приклад 01 * гра в динозаврів Chrome" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Чому динозавр прискорюється?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Грати" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Стрибок ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Почати знову" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Швидкість" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Використовуйте правило відновленого прискорення" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Початкове правило: починайте з 6, потім збільшуйте до 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5926,7 +5928,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5940,19 +5942,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" "Перевірена мета: {ph0}версія браузера wayou, заснована{ph1} на Chromium." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Відкрийте лабораторію швидкості →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Що робить кожна частина" @@ -5963,7 +5965,7 @@ msgstr "Що робить кожна частина" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5979,7 +5981,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5996,7 +5998,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6006,13 +6008,13 @@ msgstr "" "{ph0}03 * ви{ph1}{ph2} міняєте швидкість і граєте{ph3}{ph4} з оригінальним " "прискоренням, потім вибираєте свій власний темп.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Ознайомтеся зі сценарієм, перевірками та як спробувати аналіз" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6022,7 +6024,7 @@ msgstr "" "REA перевірив версію браузера HTTP через локальне з'єднання Налагодження та " "повернув завантажений {ph0}, включаючи його вихідний код та дайджест." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6036,7 +6038,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6053,7 +6055,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6071,7 +6073,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6080,34 +6082,34 @@ msgstr "" "{ph0}Перевірений код швидкості{ph1} · {ph2}Автори Chromium * Ліцензія " "BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Приклад 02 * Калькулятор Windows" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Відтворіть кнопку % калькулятора." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Скинути" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% від 200 = 20. Тоді 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Інтерактивна ілюстрація перевіряється процентного правила." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6119,7 +6121,7 @@ msgstr "У цьому прикладі {ph0}, а {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6131,7 +6133,7 @@ msgstr "" "Windows. Відновіть правила після + і×, а потім створіть невеликий " "калькулятор, який використовує обидва параметри.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Со +" @@ -6139,13 +6141,13 @@ msgstr "Со +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Со ×" @@ -6153,13 +6155,13 @@ msgstr "Со ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Перетворіть 10% на 0,1200{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Від встановленого додатка до робочої кнопки %" @@ -6171,7 +6173,7 @@ msgstr "Від встановленого додатка до робочої к #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6188,7 +6190,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6200,12 +6202,12 @@ msgstr "" "правила{ph3}{ph4}, звіряє гілку з вихідним кодом Microsoft, а потім " "спробуйте + і × вище.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Подивіться реальний код і те, як була перевірена відповідь" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6226,7 +6228,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6236,17 +6238,17 @@ msgstr "" "{ph0}Відсоток реалізації{ph1} · {ph2}Тестові приклади Microsoft{ph3} * " "Керівництво по {ph4}вбудованої налаштуванні{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Ваше перше розслідування" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Спробуйте REA у невеликому додатку." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6255,17 +6257,17 @@ msgstr "" "Завантажте наш приклад Notes, простежте його експорт CSV і перевірте один " "змінений вхід." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Спробуйте керуватися наведеним прикладом" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Програми з машинним кодом" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6274,17 +6276,17 @@ msgstr "" "Перевірте функції, рядки, посилання та зв'язки між викликами функцій у " "виконуваних файлах та бібліотеках." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Керівництво по аналізу програм з машинним кодом" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript і Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6293,17 +6295,17 @@ msgstr "" "Відображайте модулі, маршрути, IPC та власні залежності з папки програми або" " архіву ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Робочі процеси додатків" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Активність у браузері та під час виконання" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6312,12 +6314,12 @@ msgstr "" "Фіксуйте активність обраного браузера або процесу, а потім порівнюйте " "результати в різних запусках." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Керівництво по спостереженню за браузером" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Маєте запитання?" @@ -6334,30 +6336,30 @@ msgid "" " Follow clear guides and try interactive examples with REA." msgstr "" "Реінжиніринг програм, двійкових файлів та поведінки браузера за допомогою " -"ШІ-помічника для програмування. Дотримуйтесь чітких інструкцій та спробуйте інтерактивні " -"приклади з REA." +"ШІ-помічника для програмування. Дотримуйтесь чітких інструкцій та спробуйте " +"інтерактивні приклади з REA." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Скопіюйте запит на встановлення REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Команда Налаштування Копіювання" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Дотримуйтесь інструкцій ручного калькулятора для аналізу" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Процентне питання калькулятора копіювання" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6366,27 +6368,27 @@ msgstr "" "Міні-гра про динозаврів. Використовуйте кнопку переходу або натисніть " "пробіл, поки гра зосереджена." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Запит на копіювання результатів аналізу динозаврів" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Виберіть спосіб розрахунку" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Запит на аналіз за допомогою калькулятора копіювання" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -6395,25 +6397,25 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Практичний приклад * аутентифікатор Aegis" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Звідки Аутентифікатор{ph0}генерувати код авторизації?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6423,17 +6425,17 @@ msgstr "" " обчислення в Android APK, а потім відновіть їх за допомогою годинника, яким" " ви можете керувати." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * офіційний реліз APK * 6,9 МБ" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Переглянути Aegis на GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "Від APK до коду, який ви можете відтворити" @@ -6444,7 +6446,7 @@ msgstr "Від APK до коду, який ви можете відтворит #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6462,7 +6464,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6480,7 +6482,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6492,14 +6494,14 @@ msgstr "" "Ознайомтеся з кодом.{ph3}{ph4}Нова демонстрація браузера відтворює правило і" " перевіряє його на відповідність загальнодоступним посиланням.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "У цьому тематичному дослідженні" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6507,7 +6509,7 @@ msgstr "{ph0}Запитайте свого агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6515,7 +6517,7 @@ msgstr "{ph0}Спробуйте скористатися генератором #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6523,7 +6525,7 @@ msgstr "{ph0}Знайдіть код за допомогою REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6531,7 +6533,7 @@ msgstr "{ph0}Ознайомтеся з розрахунком{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6539,20 +6541,20 @@ msgstr "{ph0}Перевірте реконструкцію{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Запитайте свого агента" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6570,21 +6572,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Копіювати" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6594,14 +6596,14 @@ msgstr "" "Приклад запиту для завантаженого APK з налаштованим аналізом REA для " "Android. {ph0}Отримайте APK і налаштування аналізу ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Спробуйте скористатися генератором коду" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6613,33 +6615,33 @@ msgstr "" "блоку об'єднується з ключем облікового запису. Один і той же ключ і блок " "генерують один і той же код." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Переведіть стрілки годинника на 60 секунд вперед" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Час" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "секунда" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Наші регульовані зразкові годинник" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30-секундний блок" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Блок" @@ -6648,35 +6650,35 @@ msgstr "Блок" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Згенерований код" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Ключ облікового запису + блокування → шість цифр" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Приблизний час, в секундах" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 секунд" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 секунд" @@ -6685,7 +6687,7 @@ msgstr "60 секунд" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6697,7 +6699,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6707,7 +6709,7 @@ msgstr "" "Ключ є фіксованим, загальнодоступні {ph0}тестові дані RFC 6238{ph1}. У " "демонстрації реалізований розрахунок, відновлений з APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " @@ -6716,18 +6718,18 @@ msgstr "" "На діаграмі показано результат за 59 секунд. Увімкніть JavaScript, щоб " "змінити час." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Знайдіть код за допомогою REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Скоротіть APK до трьох класів" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6738,14 +6740,14 @@ msgstr "" "індикатора виконання та імпортованих облікових записів. TOTP означає " "одноразовий пароль на основі часу." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Підключіть генератор до дисплея програми" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6756,7 +6758,7 @@ msgstr "" "метод. При перевірці {ph0} на дисплеї відображається виклик {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6766,14 +6768,14 @@ msgstr "" "Запити показують скорочений шлях введення. В іменах результуючих КЛАСІВ " "відсутній поширений префікс {ph0}." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Ознайомтеся з розрахунком" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6787,7 +6789,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6795,7 +6797,7 @@ msgstr "{ph0}Часовий блок 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6803,7 +6805,7 @@ msgstr "{ph0}02{ph1} Клавіша + блок" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6811,7 +6813,7 @@ msgstr "{ph0}03{ph1} Шість цифр" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6823,7 +6825,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6837,7 +6839,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6851,7 +6853,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6862,7 +6864,7 @@ msgstr "" "відображення. Права панель являє собою пояснювальне резюме. {ph0}Код Aegis " "відповідає GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Всередині генератора" @@ -6871,7 +6873,7 @@ msgstr "Всередині генератора" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6881,7 +6883,7 @@ msgstr "" "Випущений APK перекладає {ph0} в {ph1}. REA слідує за викликом з {ph2} і " "повертає це тіло; оригінальне джерело викликає допоміжне {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6898,20 +6900,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Перевірте реконструкцію" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6924,29 +6926,29 @@ msgstr "" "прикладів{ph1}, включаючи межі тимчасових блоків і коди, що починаються з " "нуля." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Приблизний час" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Шестизначний код" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 секунд" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 секунди" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6956,17 +6958,17 @@ msgstr "" "Генератор також відповідає шести опублікованим посилальним варіантам SHA-1 в" " {ph0}RFC 6238{ph1}. Перевірте їх реалізацію в браузері:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Виконувати перевірку посилань" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Ознайомтеся з демонстраційним розрахунком" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6975,7 +6977,7 @@ msgstr "" "У контрольних випадках використовуються восьмизначні значення. Перевірка " "також підтверджує їх шестизначні результати." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6984,14 +6986,14 @@ msgstr "" "Для перевірки використовуються витягнуті методи Java та нова демонстрація. " "Android APK був перевірений статично." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Перевірте APK самостійно" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7003,7 +7005,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7013,18 +7015,18 @@ msgstr "" "Для аналізу Android потрібен повний JDK 17 або новішої версії. Виберіть його" " за допомогою {ph0} або {ph1}. У цьому випадку використовувався JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7037,7 +7039,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7047,7 +7049,7 @@ msgstr "" "Наступне питання: {ph0}що відбувається, коли в обліковому записі " "використовуються вісім цифр або інший інтервал часу?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Джерело" @@ -7063,7 +7065,7 @@ msgstr "Джерело" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7077,7 +7079,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" @@ -7085,7 +7087,7 @@ msgstr "" "{ph0}Довідкові приклади RFC 6238{ph1} · {ph2}Демонстраційні тестові " "дані{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7110,37 +7112,37 @@ msgstr "" "Перевірити Aegis Андроїд APK з REA, відновити його шестизначний логін-код " "розрахунків і спробувати реконструкція з регульованим годинник." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Тематичне дослідження Aegis APK" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Скопіювати запит як приклад Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Дотримуйтесь інструкцій щодо введення реєстраційного коду" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Скопіювати команду перевірки APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -7149,26 +7151,26 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Тематичне дослідження * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Знайдіть прапор у{ph0}двійковому форматі CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7178,19 +7180,19 @@ msgstr "" "Використовуйте REA для перевірки невеликого засобу перевірки прапорів, " "перетворіть його правила в рівняння та знайдіть вхідні дані, які {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 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:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Перегляньте оригінальну задачу" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Від двійкового коду до перевіреної відповіді" @@ -7201,7 +7203,7 @@ msgstr "Від двійкового коду до перевіреної від #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7219,7 +7221,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7237,7 +7239,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7249,21 +7251,21 @@ msgstr "" "виправити!{ph3}{ph4}Рівняння вирішуються сценарієм Python. REA фіксує " "вихідну програму, яка приймає результат.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 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:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "У цьому тематичному дослідженні" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7271,7 +7273,7 @@ msgstr "{ph0}Знайдіть код підтвердження{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7279,7 +7281,7 @@ msgstr "{ph0}Прочитайте одну маску{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7287,7 +7289,7 @@ msgstr "{ph0}Збірка в читається код{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7295,7 +7297,7 @@ msgstr "{ph0}Розв'яжіть рівняння{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7303,20 +7305,20 @@ msgstr "{ph0}Перевірте відповідь{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Спробуйте самі{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Знайдіть код підтвердження" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7335,17 +7337,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Копіювати" @@ -7356,7 +7358,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7368,7 +7370,7 @@ msgstr "" "прапора. Поясніть, як працюють перевірки, а потім перевірте відповідь за " "допомогою оригінальної програми.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7377,12 +7379,12 @@ msgstr "" "Приклад запиту із завантаженим завданням, доступним локально, та підключеним" " постачальником програм для аналізу машинного коду." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Дотримуйтесь інструкцій щодо введення, щоб перейти до його функції" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7391,14 +7393,14 @@ msgstr "" "Посилання дає агенту можливість провести розслідування, навіть незважаючи на" " те, що оригінальні імена функцій виконуваного файлу були видалені." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Ознайомтеся з програмою перевірки і двома її помічниками" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7410,7 +7412,7 @@ msgstr "" "підсумовує вибрані коди та порівнює результат із збереженим числом. Його " "кроки розміром {ph0} байт по {ph1} байт дають 26 масок." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7420,12 +7422,12 @@ msgstr "" "об'єкта скорочено для відображення; адреси стосуються імпортованого " "зображення REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Одна перевірка виявляє один символ" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7439,7 +7441,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." @@ -7447,7 +7449,7 @@ msgstr "" "При сьомій перевірці вибирається тільки одна позиція. {ph0}Відкрийте " "малюнок{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Порахуйте маску та її ціль із двійкового файлу" @@ -7456,7 +7458,7 @@ msgstr "Порахуйте маску та її ціль із двійковог #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7468,12 +7470,12 @@ msgstr "" "означає -21. Метою є ціле число в порядку убування. Разом ці байти " "повідомляють агенту, що {ph2}, так що цей символ дорівнює {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Від інструкцій до читабельного чеку" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7484,7 +7486,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7492,7 +7494,7 @@ msgstr "{ph0}01{ph1} Почавши" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7500,7 +7502,7 @@ msgstr "{ph0}02{ph1} Вибрати" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7508,7 +7510,7 @@ msgstr "{ph0}03{ph1} Додавши" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7516,18 +7518,18 @@ msgstr "{ph0}04{ph1} Просування" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} Порівнювати" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * вибрані оригінальні інструкції" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Читабельний підсумок C * one-check" @@ -7535,7 +7537,7 @@ msgstr "Читабельний підсумок C * one-check" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7543,7 +7545,7 @@ msgstr "{ph0}01 * почніть з нуля.{ph1} {ph2} містить пото #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7555,7 +7557,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7567,7 +7569,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7581,7 +7583,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7591,7 +7593,7 @@ msgstr "" "{ph0}05 * порівняти зі збереженим цільовим значенням.{ph1} Абонент отримує " "суму в {ph2}. Невідповідність стає {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7601,12 +7603,12 @@ msgstr "" "пристрою. C - це пояснювальна записка з описовими назвами та згладженим " "циклом із 36 клітинок." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Розв'яжіть 26 рівнянь" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7618,13 +7620,13 @@ msgstr "" "Перекриваються вибірки дають рівняння, які може вирішити невеликий скрипт " "Python." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Уривок з Python * solver" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7638,19 +7640,19 @@ msgstr "" "{ph0} з буквами, цифрами, символами підкреслення і фігурними дужками. Повне " "завантаження включає всі 26 масок і цільових об'єктів." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Завантажте повний вирішувач" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Перевірте відповідь за допомогою оригінальної програми" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7663,47 +7665,47 @@ msgstr "" "призводить до отримання першої суми 1440 замість 1441, і програма відхиляє " "її." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Уведення" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Спостережуваний результат" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Код виходу" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Прапор вирішувача" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Один персонаж змінено" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Відобразити відновлений прапор і захоплені вихідні дані" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * вихідний програмний результат" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Прапор копіювання" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7712,12 +7714,12 @@ msgstr "" "Відновлене значення також відповідає прапору в опублікованих організаторами " "метаданих задачі, який був перевірений після вирішення двійкової задачі." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Ідентифікація джерела, цілі та деталі аналізу" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7728,7 +7730,7 @@ msgstr "" "використовуючи REA 4.1.0 та Ghidra 12.1.4 на Linux x64. Двійковий файл являє" " собою урізаний x86-64 ELF, об'ємом 15 248 байт." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7751,7 +7753,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7761,12 +7763,12 @@ msgstr "" "{ph0}Порівняйте з джерелом, наданим організаторами{ph1} · {ph2}Метадані та " "прапор конкурсу{ph3} · {ph4}Примітки до доказів REA{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Спробуйте самі" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7776,13 +7778,13 @@ msgstr "" "наведеною вище інструкцією, щоб провести розслідування за допомогою свого " "агента, або запустіть доданий сценарій." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Термінал * вирішити і запустити" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7794,7 +7796,7 @@ msgstr "" " Для вирішення потрібен Python і {ph0}. Для запуску оригінального " "виконуваного файлу потрібен Linux x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Налаштуйте REA за допомогою агента кодування" @@ -7815,27 +7817,27 @@ msgstr "" "квадратів у DOWNDERCTF. Знайдіть функції перевірки, витягніть маски та " "порівняйте відновлений прапор з оригінальною програмою." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "Практичний приклад перевірки прапорів CTF" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Запит на копіювання прикладу CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "Рівняння маски CTF; горизонтальна прокрутка на менших екранах" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7846,42 +7848,42 @@ msgstr "" "Тільки ця комірка вносить свій внесок у суму. Її обов'язковий код-55, що " "означає, що символ дорівнює 7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Виконайте перевірку CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Скопіюйте збірку CTF" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Копіюваний чек CTF для читання" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Скопіюйте витяг із CTF-вирішувача" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Копіювати відновлений прапор" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Копіювання команд вирішувача CTF" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -7890,25 +7892,25 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Тематичне дослідження * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, 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:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7918,14 +7920,14 @@ msgstr "" "1996 році. REA допомагає агенту перевіряти оригінал, по одній функції за " "раз." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows для i386 · s * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7937,14 +7939,14 @@ msgstr "" "викликають пристрої і дані для читання; проект реконструкції реалізує і " "тестує результат. {ph0}Відкрити малюнок{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "У цьому тематичному дослідженні" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7952,7 +7954,7 @@ msgstr "{ph0}Проект{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7960,7 +7962,7 @@ msgstr "{ph0}Звукова панорама{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7968,23 +7970,23 @@ msgstr "{ph0}Перевірка результату{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, 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:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "підтримувані функції C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "порівняння з вихідним кодом" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "функції з відповідними скомпільованими байтами" @@ -7995,7 +7997,7 @@ msgstr "функції з відповідними скомпільованим #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8005,12 +8007,12 @@ msgstr "" "Контрольна точка проекту: 7 жовтня 2026 року. {ph0}Журнал виконання{ph1} " "роботи · {ph2}Тестове покриття{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Проект досі" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -8024,12 +8026,12 @@ msgstr "" " перевірки та бібліотека аналізу. Триває робота над грою, в яку можна грати," " фізикою м'яча і весла, управлінням посиленнями і інтеграцією Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Визначення положення звуку зліва / справа при розрахунку" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8048,17 +8050,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Копіювати" @@ -8069,7 +8071,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8079,18 +8081,18 @@ msgstr "" "{ph0}\"{ph1}{ph2}Використовуйте REA, щоб дізнатися, як DX-Ball обчислює " "розташування стереозвуку. Поясніть розрахунок і покажіть код.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 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 та докази, що " -"лежать в основі відповіді." +"Приклад запиту для вашого ШІ-помічника для програмування з доступним " +"локальним виконуваним файлом. У наведеному нижче дослідженні Показані запити" +" REA та докази, що лежать в основі відповіді." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8104,7 +8106,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8118,12 +8120,12 @@ msgstr "" "операції з плаваючою комою. Ця невідповідність дала агенту конкретну причину" " продовжувати розслідування." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Перше представлення декомпілятора" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8133,18 +8135,18 @@ msgstr "" "інструкцій можна побачити вхідні дані і обчислення, які використовуються для" " цього виклику." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Відповіді на три запитання за допомогою REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Відновіть відсутні вхідні дані" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8155,14 +8157,14 @@ msgstr "" " елементами. Тут {ph0} забезпечує цілочисельний вхід, відсутній у поданні " "декомпілятора." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Слідкуйте за абонентом, щоб зрозуміти введені дані" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8173,12 +8175,12 @@ msgstr "" "tile_x масштабується {ph0}на 30; додавання 20 дає екранну координату цегли, " "{ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Порахуйте значення, що стоять за адресами пам'яті" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8187,12 +8189,12 @@ msgstr "" "Повернені байти задають дві арифметичні константи та початковий масштаб " "панорамування. Тепер агент має значення, необхідні для вираження мовою Сі." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "Від штифтів REA до C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8203,7 +8205,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8211,7 +8213,7 @@ msgstr "{ph0}Вхід 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8219,7 +8221,7 @@ msgstr "{ph0}02{ph1} Помноживши" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8227,7 +8229,7 @@ msgstr "{ph0}03{ph1} Віднявши" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8235,18 +8237,18 @@ msgstr "{ph0}Шкала 04{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, 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:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Оригінальний витяг з x86 ·" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Реконструйований C" @@ -8256,7 +8258,7 @@ msgstr "Реконструйований C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8276,7 +8278,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8293,7 +8295,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8311,7 +8313,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8328,7 +8330,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8341,7 +8343,7 @@ msgstr "" "результат у {ph4}; оригінальні порівняння з x86 перевіряють повернене " "значення." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8352,23 +8354,23 @@ msgstr "" "арифметики та повернення. У наведений нижче повний список також включені " "проміжні сховища, настройка і очищення функцій." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Повна збірка та підтверджуючі докази" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "Результат REA · 0X406400–0X40643E" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Що надає Абонент" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8378,54 +8380,54 @@ msgstr "" "Функція brick-hit в {ph0} масштабує координату плитки на 30, додає 20, а " "потім переміщує її перед викликом:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Те, що читають дані, встановлює" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Адрес" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Цінність" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Використовується для" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Перше множення" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Віднімання" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} споконвічно" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Збережені ваги для піддонів" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8441,7 +8443,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8451,12 +8453,12 @@ msgstr "" "{ph0}Підтримуване джерело{ph1} · {ph2}Примітки щодо розслідування та " "посилання на докази{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Перевірка відновленої функції" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8466,12 +8468,12 @@ msgstr "" "збігаються з вихідними, а скомпільовані байти відповідають виконуваному " "файлу." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3 205 випадків порушення поведінки" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8482,12 +8484,12 @@ msgstr "" "повертає, із збереженим значенням C. Вони охоплюють усі цілі позиції від 0 " "до 640 у п'яти масштабах панорамування: 0, 0,5, 1, 20 та -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 збігаються байти" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8498,7 +8500,7 @@ msgstr "" "VC4.0. Повторне відтворення компілятором відповідає повній функції після " "застосування розглянутих змін і перевірки констант, на які дано посилання." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8513,18 +8515,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Продовжуйте розслідування" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8535,7 +8537,7 @@ msgstr "" "розширенням та генерування бонусів: перевірте відповідні функції, відновіть " "їх стан та залежності, а потім порівняйте реалізацію з оригінальною." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8545,7 +8547,7 @@ msgstr "" "інструкцій з налаштування DX-Ball project і вкажіть відповідну вихідну мету." " Потім запустіть:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "При оформленні замовлення DX-Ball" @@ -8554,7 +8556,7 @@ msgstr "При оформленні замовлення DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8568,7 +8570,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8584,7 +8586,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8609,7 +8611,7 @@ msgstr "" "підтримуваних тестів на C, вихідних x86 і зіставлення скомпільованих байтів " "функцій." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" @@ -8617,7 +8619,7 @@ msgstr "" "DX-Ball sound - дослідження панорамування; горизонтальна прокрутка на менших" " екранах" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8633,70 +8635,70 @@ msgstr "" "від вихідного x86 в 3205 випадках і за допомогою компілятора VC4.0 " "відтворюється на відповідність 63 байтам." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Тематичне дослідження реконструкції DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Запит на копіювання прикладу" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Слідкуйте за розрахунком положення звуку зліва / справа" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Скопіюйте фрагмент оригінальної збірки" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Функція копіювання звуку-панорамування" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Скопіюйте повну збірку sound-pan" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Скопіювати команду аналізу DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Головний{ph1} сторінка / вітрини" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "Тематичні дослідження REA." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8705,17 +8707,17 @@ msgstr "" "Android, ігри, Electron і конкурс CTF з кодом, цифрами і перевіреними " "результатами." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * аналіз APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Як аутентифікатор генерує код входу" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8727,22 +8729,22 @@ msgstr "" "демонстраційний годинник, щоб зрозуміти, чому код змінюється кожні 30 " "секунд." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Ознайомтеся з тематичним дослідженням Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * аналіз програм з машинним кодом" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Вирішіть проблему перевірки прапора CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8753,22 +8755,22 @@ msgstr "" "перевірки, Перетворіть маски та суми в рівняння, а потім перевірте прапорець" " \"вирішено\" за допомогою оригінальної програми." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Ознайомтеся з тематичним дослідженням CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Нативна * Реконструкція" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball обчислює положення звуку зліва / справа" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8780,22 +8782,22 @@ msgstr "" "призводять до невеликої функції C, яка перевіряється на відповідність " "вихідній поведінці та всім 63 скомпільованим байтам." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Ознайомтеся з тематичним дослідженням DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * відстеження об'єктів" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Як Notion копіює текст та HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8807,22 +8809,22 @@ msgstr "" "потім подивіться, як маленький маркер HTML пов'язує дані розширеного блоку з" " копією." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Ознайомтеся з тематичним дослідженням Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Реконструкція" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "Як TH04 цілиться в кільце з куль" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8833,17 +8835,17 @@ msgstr "" " його операції множення, ділення та координації з зрозумілим C++, а потім " "подивіться, як вони створюють кільце, спрямоване на гравця." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Ознайомтеся з тематичним дослідженням TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Покрокові керівництва" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8852,7 +8854,7 @@ msgstr "" "У посібниках описуються власні обчислення, експорт Electron і запит до " "браузера. Кожне з них починається з запиту і конкретної мети." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Ознайомтеся з посібниками" @@ -8872,12 +8874,12 @@ msgstr "" " Android authenticator, DX-Ball, Notion, TH04 і засоби перевірки прапора " "downunderctf." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -8886,25 +8888,25 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Тематичне дослідження * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8913,12 +8915,12 @@ msgstr "" "Простежте виклик буфера обміну з API сторінки Notion, через попереднє " "завантаження і основний процес, в програму запису буфера обміну Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Міст всередині настільного пакету Notion" @@ -8930,7 +8932,7 @@ msgstr "Міст всередині настільного пакету Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8947,7 +8949,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8964,7 +8966,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8981,7 +8983,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8992,13 +8994,13 @@ msgstr "" "наданий текст і HTML-код.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, 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:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -9008,14 +9010,14 @@ msgstr "" "завантаження та в основному процесі. При вирішенні оболонок виявляються " "виклики Electron, що стоять за цими іменами." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "У цьому тематичному дослідженні" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -9023,7 +9025,7 @@ msgstr "{ph0}Дотримуйтесь мосту з буфера обміну{ph #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -9031,19 +9033,19 @@ msgstr "{ph0}Збереження структури блоку{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Де виконується операція копіювання?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9063,17 +9065,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Копіювати" @@ -9084,7 +9086,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9095,21 +9097,21 @@ msgstr "" "і HTML в системний буфер обміну. Показуйте код на кожному " "кроці.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " "coding agent." msgstr "" -"Приклад запиту з локальним пакетом додатків Notion, доступним вашому " -"ШІ-помічнику для програмування." +"Приклад запиту з локальним пакетом додатків Notion, доступним вашому ШІ-" +"помічнику для програмування." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA знаходить, з чого почати читання" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9120,13 +9122,13 @@ msgstr "" "API, доступний для сторінки, і виклик, який відправляє запит IPC. Обидва " "результати представлені з діапазонами вихідних текстів у зменшеному пакеті:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA висновки → два місця для відкриття" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9141,7 +9143,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9155,12 +9157,12 @@ msgstr "" "інформацію для пошуку в основному пакеті. У чотирьох наведених нижче витягах" " показано маршрут, по якому він підключається." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Чотири короткі фрагменти коду" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9169,13 +9171,13 @@ msgstr "" "Спрощений порівняно з пакетом JavaScript, з читабельними іменами змінних. " "Незв'язані елементи опущені." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Почніть з API, доступного для цієї сторінки" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9185,13 +9187,13 @@ msgstr "" "Цей учасник надає назву каналу. Реалізація {ph0} повідомляє нам, як запит " "завершує обробку сторінки." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Усуньте оболонку попереднього завантаження" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9201,14 +9203,14 @@ msgstr "" "Функція повернення перенаправляє аргументи через IPC запиту та відповіді " "Electron. Тепер ми можемо шукати {ph0} на стороні основного процесу." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Перевірте, як зареєстрований одержувач" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9218,12 +9220,12 @@ msgstr "" "Основний процес використовує іншу оболонку. Його метод {ph0} реєструвати " "{ph1} для цього каналу." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Знайдіть запис і перевірте його відправника" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9234,13 +9236,13 @@ msgstr "" "буфера обміну Electron. Канал і дві дозволені оболонки підключають відкритий" " метод до цього виклику." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Як скопійований блок зберігає свою структуру?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9251,27 +9253,27 @@ msgstr "" "дані блоку локально та вставляє ідентифікатор у скопійований HTML-код, щоб " "зв'язати їх." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "HTML-посилання на збережені дані блоків" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Прочитайте ідентифікатор HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Знайдіть той самий локальний ідентифікатор" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Відновити дані блоку Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9281,7 +9283,7 @@ msgstr "" "дані блоку, якщо ідентифікатори однакові; застарілий запис повертає лише " "текст та HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9290,24 +9292,24 @@ msgstr "" "При вставці Notion шукає HTML-ідентифікатор і порівнює його зі збереженою " "копією. Відповідні ідентифікатори відновлюють дані блоку." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 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:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Додаткові приклади та джерела" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Інший приклад: таблиці уцінки" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9316,12 +9318,12 @@ msgstr "" "Notion перетворює Markdown в блокові дані. У цьому прикладі показано, як " "таблиця перетворюється на заголовок та рядки даних." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Таблиця за допомогою аналізатора уцінки Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9330,13 +9332,13 @@ msgstr "" "Записаний вихід із витягнутого аналізатора Markdown. Таблиця перетворюється " "в рядки і осередки." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Інший шлях: автономне підключення до SQLite" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9350,7 +9352,7 @@ msgstr "" "візуалізації, а інший - службовому процесу SQLite. Наступні пакети " "інструкцій та результати передаються через цей порт." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9360,7 +9362,7 @@ msgstr "" "базою даних і чому при відстеженні тільки початкового IPC-запиту не " "враховується подальший діалог." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Джерела та як читати уривки" @@ -9368,7 +9370,7 @@ msgstr "Джерела та як читати уривки" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9386,7 +9388,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9402,7 +9404,7 @@ msgstr "" "невеликі модулі управління; їх результати описують ці тести, а не захоплений" " сеанс інтерфейсу робочого столу." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9417,7 +9419,7 @@ msgstr "" "реалізацій-оболонок в пакеті." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9435,7 +9437,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9449,7 +9451,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9475,52 +9477,52 @@ msgstr "" " Electron, обгортки IPC та основного процесу, з короткими витягами коду та " "ознайомтеся з його багатим форматом буфера обміну." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Тематичне дослідження Notion Electron" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Скопіювати запит на аналіз Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Скопіювати фрагмент попереднього завантаження Notion" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Скопіювати фрагмент коду Notion для виклику оболонки" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Скопіювати фрагмент оболонки обробника Notion" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Скопіювати фрагмент приймача з буфера обміну Notion" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Відновлення розширених даних буфера обміну при вставці" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Нагору" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -9529,25 +9531,25 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Тематичне дослідження * Тохоу 4: історія Землі лотосів" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, 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:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9557,17 +9559,17 @@ msgstr "" "для перевірки оригінальної функції DOS, а потім дотримуйтесь її інструкцій " "на читабельному C++." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Переглянути реконструкцію TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Від оригінальних інструкцій до перевіреного джерела" @@ -9578,7 +9580,7 @@ msgstr "Від оригінальних інструкцій до перевір #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9595,7 +9597,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9613,7 +9615,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9629,7 +9631,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9641,7 +9643,7 @@ msgstr "" "записаних компілятором, перевірки охоплюють код генерації маркерів, що " "містить цей допоміжний елемент.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9650,14 +9652,14 @@ msgstr "" "REA повертає вихідний код і результати його аналізу. Проект TH04 забезпечує " "підтримувані перевірки вихідного коду та компілятора." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "У цьому тематичному дослідженні" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9665,7 +9667,7 @@ msgstr "{ph0}Кільце з кулями{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9673,7 +9675,7 @@ msgstr "{ph0}Що повертає REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9681,7 +9683,7 @@ msgstr "{ph0}Збірка на C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9689,18 +9691,18 @@ msgstr "{ph0}Перевірка джерела{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Повний проект{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Як кільце націлюється на гравця" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9719,16 +9721,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Копіювати" @@ -9739,7 +9741,7 @@ msgstr "Копіювати" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9750,7 +9752,7 @@ msgstr "" " куль і направляє його на гравця. Поясніть розрахунок і покажіть " "код.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9760,7 +9762,7 @@ msgstr "" "локально." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9774,7 +9776,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9784,12 +9786,12 @@ msgstr "" "Ілюстрація відновленого математичного розрахунку кута для рахунку 16, " "напрямку гравця 40 і повороту шаблону 0. {ph0}Відкрити малюнок{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Шаблон запуску у відновленому джерелі" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Напад Еллі на кільце · уривок з джерела" @@ -9798,7 +9800,7 @@ msgstr "Напад Еллі на кільце · уривок з джерела" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9808,13 +9810,13 @@ msgstr "" "У цих рядках вибирається шаблон перед налаштуванням складності та " "продуктивності. {ph0}Прочитайте джерело атаки{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "Що повертає REA" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9826,12 +9828,12 @@ msgstr "" "повертає свої інструкції, псевдокод та посилання. Три частини цього " "результату пояснюють закономірність." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Перевірте зображення DOS, перш ніж читати його код" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9840,7 +9842,7 @@ msgstr "" "Перевірка прив'язує завантажений код і записи про переміщення до наданого " "виконуваного файлу. Шлях, зазначений вище, скорочений для відображення." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Прочитайте напис на кільці \"множ і Делі\"" @@ -9848,7 +9850,7 @@ msgstr "Прочитайте напис на кільці \"множ і Делі #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9861,12 +9863,12 @@ msgstr "" "підтримуваних джерел, які вказані в полі {ph2}. Повна послідовність наведена" " нижче." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Знайдіть, де малюнок повертається в бік гравця" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9879,12 +9881,12 @@ msgstr "" "роблять ці адреси читабельними; REA дозволяє агенту перевіряти початкові " "операції, що стоять за ними." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Від асемблера до читабельного C++" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9897,7 +9899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9905,7 +9907,7 @@ msgstr "{ph0}Індекс 01{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9913,7 +9915,7 @@ msgstr "{ph0}02{ph1} Простір" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9921,7 +9923,7 @@ msgstr "{ph0}03{ph1} Мета" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9929,18 +9931,18 @@ msgstr "{ph0}04{ph1} Обертати" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Магазин" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * оригінальні 16-розрядні інструкції" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Читабельний c++ * короткий опис aimed-ring" @@ -9948,7 +9950,7 @@ msgstr "Читабельний c++ * короткий опис aimed-ring" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9963,7 +9965,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9979,7 +9981,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9994,7 +9996,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10009,7 +10011,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10023,7 +10025,7 @@ msgstr "" "відбувається при перетворенні беззнакових байт. Навколишнє джерело також " "перетворює цей кут і швидкість у Швидкість обертання." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -10035,7 +10037,7 @@ msgstr "" "перевірки компілятора застосовуються до підтримуваного вихідного тексту у " "зв'язаному проекті." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Ознайомтеся з збереженим кільцем і приціліться в джерело" @@ -10052,7 +10054,7 @@ msgstr "Ознайомтеся з збереженим кільцем і при #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10062,12 +10064,12 @@ msgstr "" "{ph0}Кільцевий макрос{ph1} · {ph2}Мета та джерело швидкості{ph3} · " "{ph4}Представлення кута{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Перевірка підтримуваного джерела" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10077,12 +10079,12 @@ msgstr "" "маркерів, включаючи цей помічник, за допомогою закріпленого набору " "інструментів Turbo C++ 4.0 J." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 відповідних байтів" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10091,12 +10093,12 @@ msgstr "" "Скомпільований код генерації маркерів відповідає 2139-байтовому розділу " "оригінального виконуваного файлу." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Дві чисті збірки" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10109,7 +10111,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." @@ -10117,59 +10119,59 @@ msgstr "" "Записано 3 жовтня 2026 року. {ph0}Ознайомтеся з перевірками " "компілятора{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Ідентифікація мети і обсяг аналізу" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Початкова мета" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Допоміжний запис" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} у завантаженому зображенні REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Зміщення вихідного файлу" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, що повертається параметром {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Перевірка записаного коду" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 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:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10180,7 +10182,7 @@ msgstr "" "відображення та перекриття переміщення." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10195,7 +10197,7 @@ msgstr "" "інструкції, наведені вище, знаходяться в цих повідомлених діапазонах." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10211,7 +10213,7 @@ msgstr "" "REA для тієї ж початкової мети. Надана гра ідентифікується в маніфесті " "сховища, при цьому незалежне Походження незайманого дампа все ще відкрите." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10222,12 +10224,12 @@ msgstr "" "гри, хронометраж і поведінку апаратного забезпечення PC-98 перевіряються під" " час виконання в проекті реконструкції окремо." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "Повна реконструкція TH04" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10240,7 +10242,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10252,7 +10254,7 @@ msgstr "{ph0}Вивчіть репозиторій TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10268,7 +10270,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10284,7 +10286,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10310,22 +10312,22 @@ msgstr "" "Слідкуйте за збіркою та відновленим C++, щоб побачити, як розставлено кільце" " куль і як вони націлені на гравця." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "Тематичне дослідження щодо маркування TH04" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Скопіювати запит як приклад TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10333,7 +10335,7 @@ msgstr "" "TH04 фіксовані та цільові кульові кільця; горизонтальна прокрутка на менших " "екранах" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10347,27 +10349,27 @@ msgstr "" "обох випадках відстань між точками становить 16 кутових одиниць, або 22,5 " "градуса." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Скопіювати шаблон запуску TH04" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Дотримуйтесь розрахунку прицільного кільця TH04" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Скопіюйте фрагмент збірки TH04" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Копіювально-читається розрахунок прицільного кільця" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Нагору" @@ -10854,598 +10856,598 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Приклади" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Блог" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Почати" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Посібники" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Вихідний код" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Ліцензія MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Приєднатися до спільноти" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Стежити в X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * вибране джерело сценарію" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Вихідний код" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Очікуваний результат форматування" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Інструкція" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Абонент" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Константа" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Функція C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Кнопка" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "API попереднього завантаження" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "МПК" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "Файл CSV" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Ваш клацання" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Захоплений запит" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Експорт скрипта" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA результат * підсумок.витяг з ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA витяг з інструкції * 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA запит абонента * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" "Результати в байтах REA * інтерпретуються як подвоєння в порядку зменшення" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Відновлений уривок з C ·" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Вітрина →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Вибрані налаштування з перевіреного скрипта" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Читається зведення про обробнику %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * вибрані оригінальні інструкції" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Ідентифікатори операторів * вихідний код Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → агент * вибрані результати" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → агент * методи та абоненти" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * вибраний Декомпільований Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Читабельне резюме * інтерпретація агента" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP, повний корпус" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Завантажити Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Завантажити Android analysis provider" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → агент * вибрані результати" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → агент * вибрані інструкції" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Агент → REA * прочитано_байт" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → агент * сьомі записи" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Оригінальний виконуваний файл * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Скачайте оригінальну гру challenge" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Завантажити вирішувач" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "Результат REA * фрагмент псевдокоду" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Агент → REA * функція {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → агент * уривок з інструкції" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → агент * уривок з повідомлення про абонента" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "Результати в байтах REA * декодуються як подвійні" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Почніть зі своєї власної мети" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Генерація коду" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Відновлене правило" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Регульований годинник" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Двійковий" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Перевіряючий код" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Рівняння" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Правильно!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Здійсненний" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "Висновки REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Відновлений C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Затвердження" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Упакований додаток" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Відкритий API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "Оболонки IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Буфер обміну" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Вихідний код DOS" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "Інструкції щодо REA" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Розрахунок кута нахилу" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Кульове кільце" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Відкритий API сторінки" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Виклик IPC засобу візуалізації" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Надіслано до системного буфера обміну" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Збережено локально за допомогою Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Введення даних для уцінки" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Висновок структурованого синтаксичного аналізатора · Витяг" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Проаналізуйте свій власний додаток" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Агент → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → агент * вибрані поля" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Агент → REA * функція {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → агент * уривок з інструкції" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Результат тієї ж функції · витяг з aim" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Відповідний Підтримуваний c++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Кільцевий макрос * гілка TH04, фрагмент" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Кут і швидкість * витяг з джерела" @@ -11477,7 +11479,7 @@ msgstr "Переклад оновлюється. Поки прочитайте #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11495,7 +11497,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11516,7 +11518,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11537,7 +11539,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11556,7 +11558,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11569,14 +11571,14 @@ msgstr "" " перевір встановлення.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Реконструкція * {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11587,7 +11589,7 @@ msgstr "" "ознайомтеся з запропонованими змінами." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11596,7 +11598,7 @@ msgstr "Наведений приклад · {ph0} та npm * ваш кодую #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11615,7 +11617,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11631,7 +11633,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11650,7 +11652,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11661,7 +11663,7 @@ msgstr "" "форматування в {ph7} і записує файл.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11676,7 +11678,7 @@ msgstr "{ph0} * рядки 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11690,7 +11692,7 @@ msgstr "" "результат.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11703,17 +11705,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Вам знадобиться {ph0}22 (22.23.4+), 24 (24.22.1+) або 26+ (>=26.12.1). У комплект поставки " -"входить {ph1}npm ." +"Вам знадобиться {ph0}22 (22.23.4+), 24 (24.22.1+) або 26+ (>=26.12.1). У " +"комплект поставки входить {ph1}npm ." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11721,20 +11724,20 @@ msgstr "У вас немає {ph0} або ви не впевнені?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Якщо {ph0} друкує версії v22.23.4+, v24.22.1+ або v26.12.1+, все готово. Якщо він " -"видає стару версію або \"не розпізнається\" / \"команда не знайдена\", " -"встановіть {ph1} 24 LTS:" +"Якщо {ph0} друкує версії v22.23.4+, v24.22.1+ або v26.12.1+, все готово. " +"Якщо він видає стару версію або \"не розпізнається\" / \"команда не " +"знайдена\", встановіть {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11748,7 +11751,7 @@ msgstr "{ph0} * приклад витягу з джерела" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11759,9 +11762,9 @@ msgstr "" "файл {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11769,7 +11772,7 @@ msgstr "{ph0} * приклад джерела" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11783,7 +11786,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11800,7 +11803,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11811,7 +11814,7 @@ msgstr "" "{ph3} дають 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11825,7 +11828,7 @@ msgstr "REA · завантажено {ph0} * вибрані рядки" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11844,7 +11847,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11857,28 +11860,28 @@ msgstr "" "невеликий приклад, у якому можна змінювати час.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * Учасник API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * Помічник IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "main/{ph0} * помічник обробника" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11897,7 +11900,7 @@ msgstr "Перемкнути на темну тему" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11913,18 +11916,18 @@ msgstr "" "трафік разом з агентом." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Спеціалізація моделей{ph0}Есе" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Чи потрібна для зворотної розробки більша модель?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11933,12 +11936,12 @@ msgstr "" "Що реконструкція Touhou допомагає зрозуміти про універсальні й " "спеціалізовані моделі та навчання на зворотному зв’язку від компілятора." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Автор N0zoM1z0 · 13 жовтня 2026 р" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Перейти до змісту" @@ -11947,7 +11950,7 @@ msgstr "Перейти до змісту" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" @@ -11955,31 +11958,31 @@ msgstr "" "{ph0}Домашня сторінка{ph1} / {ph2}Блог{ph3} / Моделі та зворотне " "проектування" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Есе" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Чи потрібна для зворотного проектування більша модель?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Автор N0zoM1z0 · 13 жовтня 2026 р" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Головне" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11992,7 +11995,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12005,7 +12008,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12017,7 +12020,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12030,7 +12033,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12041,14 +12044,14 @@ msgstr "" "вартістю.{ph1} Це те, що я хочу виміряти для повного робочого процесу AI-" "agent." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "У цій статті" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -12056,7 +12059,7 @@ msgstr "{ph0}Що змінили сильніші моделі{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -12064,7 +12067,7 @@ msgstr "{ph0}Навіщо спеціалізуватися?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -12072,7 +12075,7 @@ msgstr "{ph0}Де зберігати цей досвід?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -12080,7 +12083,7 @@ msgstr "{ph0}Вивчення наступного корисного експе #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -12088,7 +12091,7 @@ msgstr "{ph0}Зворотне проектування та навчання з #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12096,7 +12099,7 @@ msgstr "{ph0}Коли засіб перевірки помиляється{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12104,18 +12107,18 @@ msgstr "{ph0}Варте порівняння{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Що це за агент ШІ?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Що змінили сильніші моделі" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12130,7 +12133,7 @@ msgstr "" "Оскільки я змінював моделі, репозиторії зберігали записи про те, що вдалося " "відновити за кожну сесію." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12144,12 +12147,12 @@ msgstr "" "модель досягає успіху там, де попередня робота зупинилася, зміни джерела " "показують, що зробило цей прогрес можливим." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Тимчасові змінні потребували часу існування, що збігався" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12170,7 +12173,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12184,7 +12187,7 @@ msgstr "" "{ph2}GPT-6.1-Sol знову дослідив проблему{ph3}, він запропонував корисну " "гіпотезу щодо тривалості життя цих тимчасових змінних." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12201,7 +12204,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12216,7 +12219,7 @@ msgstr "" " {ph0}чиста повторна компіляція з джерела підтвердила, що повна функція " "відповідає{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12228,7 +12231,7 @@ msgstr "" "Відгуки компілятора допомогли уточнити цю гіпотезу у вихідному коді, який " "відповідав." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Інший графік потоку керування" @@ -12237,7 +12240,7 @@ msgstr "Інший графік потоку керування" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12259,7 +12262,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12277,7 +12280,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12291,7 +12294,7 @@ msgstr "" "можливості моделі: агент може довго пробувати місцеві варіації, перш ніж " "знайти кращий спосіб вираження навколишньої роботи." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12305,7 +12308,7 @@ msgstr "" "нам ознайомитися з відкриттями та їх перевірками; контрольоване порівняння " "допомогло б відокремити ефект моделі від досвіду, який вона успадкувала." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12320,12 +12323,12 @@ msgstr "" "Наскільки для цього потрібна широка здатність міркувати? Скільки може " "навчитися модель, постійно працюючи з цим компілятором і кодом?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Чому спеціалізована модель ШІ може працювати добре?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12340,7 +12343,7 @@ msgstr "" "корисними прикладами: пов’язані цикли та допоміжні механізми надають " "гіпотези для різних ігор." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12360,7 +12363,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12376,7 +12379,7 @@ msgstr "" "вплинув на вибір компілятора. Це запропонувало більш перспективну гіпотезу " "для {ph2}реконструкції {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12385,7 +12388,7 @@ msgstr "" "Повторне використання цього шаблону для змінної розміру файлу створило " "необхідний макет без додавання пам’яті. Тоді повна функція збігалася." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12397,7 +12400,7 @@ msgstr "" "компілятора може побачити багато таких випадків і дізнатися, які варіації " "вихідного коду варто перевірити в першу чергу." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12416,7 +12419,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12436,14 +12439,14 @@ msgstr "" "автора дає нам початкове очікування, але кожна ціль говорить нам, чи вона " "застосовна. Спеціалізована модель повинна розрізняти ці контексти." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Де зберігати цей досвід?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12459,7 +12462,7 @@ msgstr "" "проекту. Ця пам’ять містить уроки компілятора, а також джерело та невдалі " "експерименти, які зробили їх корисними." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12476,7 +12479,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12494,7 +12497,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12511,7 +12514,7 @@ msgstr "" "вирішити, що означає результат для її наступної спроби. Знання відповідного " "шаблону – це лише початок цього процесу." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12524,12 +12527,12 @@ msgstr "" "б нам визначити, що додає навчання: краще формування кандидатів, кращі " "рішення після зворотного зв’язку чи те й інше." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Вивчення наступного корисного експерименту" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12543,7 +12546,7 @@ msgstr "" "звузити можливості, що залишилися, і запропонувати більш корисний наступний " "експеримент." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12556,32 +12559,32 @@ msgstr "" "інформації. Кожен із наступних експериментів допоміг визначити, що ще " "потрібно змінити." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Експериментуйте" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Чого нас навчив його результат" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Спробуйте інший спосіб скопіювати результати" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Код копіювання змінюється, але функція все ще відрізняється." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Використовуйте повернуті значення безпосередньо" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." @@ -12589,12 +12592,12 @@ msgstr "" "Копіювання відбувається за оригінальним шаблоном, але тимчасове зберігання " "все ще відрізняється." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Зберігайте всі тимчасові змінні дійсними одночасно" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12603,17 +12606,17 @@ msgstr "" "Вони отримують окреме сховище, але одне все одно перекриває значення, яке " "буде використано пізніше для перевірок на конфлікти." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Зберігайте значення перевірки зіткнень окремо" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "Чиста перекомпіляція з джерела підтверджує повний збіг." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12622,7 +12625,7 @@ msgstr "" "Вибрані експерименти з наведеної вище реконструкції функції атаки, " "згруповані за тим, чому вони нас навчили." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12638,7 +12641,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12653,7 +12656,7 @@ msgstr "" "перестають бути інформативними, агент повинен мати можливість переглянути " "вихідне представлення або знову перевірити докази." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12667,12 +12670,12 @@ msgstr "" "усуне цей вибір разом із частиною поведінки, яку ми хочемо, щоб модель " "навчила." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Чому зворотне проектування цікаве для навчання з підкріпленням" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12685,7 +12688,7 @@ msgstr "" " вихідним кодом дають швидкий, відтворюваний зворотний зв’язок. Агент може " "скомпілювати кандидата, перевірити відмінності та вибрати наступний крок." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12702,7 +12705,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12724,7 +12727,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12741,7 +12744,7 @@ msgstr "" "обробляла обчислення з плаваючою комою{ph1}. Перш ніж агент міг перевірити " "корисну поправку, він повинен був визначити, що вимірювати." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12753,12 +12756,12 @@ msgstr "" "зможемо дослідити, наскільки далеко може зайти вивчена політика пошуку з " "нею." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Коли засіб перевірки помиляється" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12770,7 +12773,7 @@ msgstr "" " Навіть відтворювану відповідь потрібно розуміти в межах того, що вона " "справді перевіряє." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12793,7 +12796,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12807,7 +12810,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12824,7 +12827,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12841,7 +12844,7 @@ msgstr "" "збіг інструкцій слід розуміти з точки зору байтів і даних, які він " "перевіряє." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12860,7 +12863,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12872,12 +12875,12 @@ msgstr "" "дослідницької проблеми.{ph1} Що краще модель оптимізує наданий зворотний " "зв’язок, то важливіше розуміти сам цей зв’язок." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Варте порівняння" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12892,7 +12895,7 @@ msgstr "" "покаже, які зміни в пошуку. Звідти контрольована спеціалізація та версія з " "навчанням RL дозволять нам перевірити, що додає навчання." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12906,7 +12909,7 @@ msgstr "" "випробування допомогли б відрізнити надійну стратегію пошуку від " "альтернативного рішення, яке вдалось випадково." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12922,7 +12925,7 @@ msgstr "" "частину роботи, необхідної для її досягнення. Вимірювання їх окремо виявило " "б такий розподіл роботи." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12937,7 +12940,7 @@ msgstr "" "вихідного коду й виключав їхні перевірені відповіді як із навчальних даних, " "так і з бібліотеки пошуку." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12952,7 +12955,7 @@ msgstr "" "компіляцію, покаже, чи забезпечує така якість ефективний робочий процес. " "Витрати на навчання слід вимірювати окремо." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12970,7 +12973,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12992,7 +12995,7 @@ msgstr "" "може керувати наступним експериментом, але я б перевірив будь-яку винагороду" " за «наближення» до повної перевірки прийняття." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -13008,12 +13011,12 @@ msgstr "" "хороший пошук, скільки ще додає навчання? Відповіді допоможуть нам вирішити," " де кожен тип моделі є найбільш корисним." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Що це за агент ШІ?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -13029,7 +13032,7 @@ msgstr "" "сенс, ширший агент може повернутися до цільових доказів або дослідити саме " "вимірювання." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -13040,7 +13043,7 @@ msgstr "" "вибрати під час розслідування. Агент зберігає свободу змінювати напрямок, що" " уможливило попередні прориви." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -13054,7 +13057,7 @@ msgstr "" "оцінювання, а які покращуються через повторний досвід роботи з певним " "ремеслом." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -13071,7 +13074,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13081,12 +13084,12 @@ msgstr "" "{ph0}Репозиторії дають нам спосіб перевірити запитання.{ph1} Я хотів би " "використати цей запис для порівняння та побачити, що ми дізнаємося." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Докази та атрибуція моделі" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13099,7 +13102,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13125,7 +13128,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13150,7 +13153,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13175,7 +13178,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13202,7 +13205,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13214,7 +13217,7 @@ msgstr "" "комою{ph3}, {ph4}TH08 числове дослідження{ph5} та {ph6}TH09 реконструкція зі" " збереженням повтору{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13240,22 +13243,22 @@ msgstr "" "моделей і навчання пропонувати кращі гіпотези на основі відгуків " "компілятора." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "На цій сторінці" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Есе про моделі та зворотне проектування" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Вибрані досліди реконструкції" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Нагору" @@ -13264,7 +13267,7 @@ msgstr "Нагору" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13276,68 +13279,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Приклади{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "Тематичні дослідження REA." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * аналіз APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Як аутентифікатор генерує код входу" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Ознайомтеся з тематичним дослідженням Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * відстеження об'єктів" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Як Notion копіює текст та HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Ознайомтеся з тематичним дослідженням Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Нативна * Реконструкція" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball обчислює положення звуку зліва / справа" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Ознайомтеся з тематичним дослідженням DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Параметри налаштування" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13348,7 +13351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13360,7 +13363,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13368,7 +13371,7 @@ msgstr "{ph0}1. Підготуйте комп’ютер{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13376,7 +13379,7 @@ msgstr "{ph0}2. Виберіть агента{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13384,7 +13387,7 @@ msgstr "{ph0}3. Підключіть REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13392,18 +13395,18 @@ msgstr "{ph0}4. Спробуйте дослідження{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Інші цілі та інструменти аналізу{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Підготуйте комп’ютер" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13413,7 +13416,7 @@ msgstr "" "Локальний ШІ-помічник для програмування може читати їх і запускати " "інструменти для вас." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13424,7 +13427,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13435,7 +13438,7 @@ msgstr "Якщо winget недоступний, {ph0}завантажте інс #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13446,17 +13449,17 @@ msgstr "" "scripts is disabled on this system\"{ph1}, використовуйте натомість {ph3}. " "Для npm використовуйте {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Створіть робочу папку для агента" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "У терміналі створіть папку для вправи й перейдіть до неї:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13465,12 +13468,12 @@ msgstr "" "Залиште цей термінал відкритим для наступного кроку. Якщо ви вже маєте " "робочу папку, відкрийте її замість нової." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Виберіть ШІ-помічника для програмування" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13480,12 +13483,12 @@ msgstr "" "дослідження програм. Виберіть один застосунок-клієнт нижче; якщо раніше ним " "не користувалися, відкрийте інструкції." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · використовуйте свій обліковий запис ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13496,41 +13499,41 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Встановлення Codex і вхід в обліковий запис{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf або VS Code · використовуйте редактор" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" "Встановіть редактор для своєї операційної системи та увійдіть в обліковий " "запис." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Відкрийте папку rea-work, створену на кроці 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · використовуйте свій обліковий запис Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Встановіть за допомогою команди для своєї операційної системи:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13544,13 +13547,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Встановлення Claude Code та варіанти облікових записів{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · використовуйте настільний чат" @@ -13560,7 +13563,7 @@ msgstr "Claude Desktop · використовуйте настільний ча #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13572,7 +13575,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13585,19 +13588,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Встановлення OpenCode та налаштування моделі{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Усі підтримувані клієнти та їхні ідентифікатори для налаштування" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13607,12 +13610,12 @@ msgstr "" "Випуск 6.4.0 у npm підтримує перелічені нижче клієнти. Щоб явно вибрати " "клієнт, укажіть його ідентифікатор із {ph0}." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Клієнт" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Ідентифікатор для налаштування" @@ -13622,7 +13625,7 @@ msgstr "Ідентифікатор для налаштування" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13641,7 +13644,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13651,13 +13654,13 @@ msgstr "" "{ph0}Налаштування клієнтів та усунення неполадок{ph1} · {ph2}Доступність у " "випусках{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · підключіть на комп’ютері, де він працює" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13670,29 +13673,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Інструкції з підключення Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Підключіть REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Вставте цей запит у свого ШІ-помічника для програмування:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Для конкретного клієнта додайте його ідентифікатор для налаштування:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13704,7 +13707,7 @@ msgstr "" "Enter. У списку клієнтів REA переміщуйтеся стрілками, виберіть клієнт " "клавішею Space й натисніть Enter для продовження." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13713,7 +13716,7 @@ msgstr "" "MCP — це з’єднання, через яке агент викликає REA. Навичка задає порядок дій " "для дослідження програм." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13724,7 +13727,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13734,21 +13737,21 @@ msgstr "" "Замініть {ph0} ідентифікатором свого клієнта для налаштування. Успішна " "перевірка виводить {ph1}. Потім попросіть агента:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Перевір, що REA підключено, і покажи, які інструменти REA ти можеш " "використовувати." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Спробуйте перше дослідження" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13760,7 +13763,7 @@ msgstr "" "кнопкою {ph0}експорту заміток{ph1}. Ваш агент може перевірити його код, не " "встановлюючи та не запускаючи Electron." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Ваш ШІ-помічник для програмування" @@ -13774,7 +13777,7 @@ msgstr "Ваш ШІ-помічник для програмування" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13788,7 +13791,7 @@ msgstr "" "Покажи, куди записується {ph4}, які поля він містить, а також відповідні " "файли й рядки.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Шукайте коротке пояснення з посиланнями на файли та рядки:" @@ -13797,7 +13800,7 @@ msgstr "Шукайте коротке пояснення з посиланням #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13810,13 +13813,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Перевірте передбачення в покроковій вправі →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Завантажте приклад самостійно або використовуйте свій застосунок" @@ -13824,14 +13827,14 @@ msgstr "Завантажте приклад самостійно або вико #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Приклад завантаження ZIP-файлу{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13842,7 +13845,7 @@ msgstr "" "Вкажіть шлях до папки {ph0} і задайте те саме питання щодо експорту." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13852,12 +13855,12 @@ msgstr "" "Досліди застосунок за шляхом {ph0} за допомогою REA. Знайди, як він " "експортує дані, і покажи відповідні файли та рядки." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Дослідіть інший вид програм" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13866,13 +13869,13 @@ msgstr "" "Виберіть розділ для своєї цілі. Провайдер аналізу — це локальний інструмент," " який REA використовує для цього виду програм." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" "Виконувані файли та бібліотеки машинного коду · Hopper, Ghidra або IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13881,47 +13884,47 @@ msgstr "" "Встановіть один інструмент аналізу на комп’ютер, де працює REA. Хост — це " "ваша операційна система, а ціль — програма, яку ви хочете дослідити." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Провайдер аналізу" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Недоступно" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Підтримувані дистрибутиви" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · експериментально" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Перевірені профілі" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Перевірений профіль без графічного інтерфейсу" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Див. посібник провайдера" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · дозвольте налаштуванню встановити або підключити його" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13933,7 +13936,7 @@ msgstr "" "або активуйте ліцензію. У Linux налаштування готує підтримувану демоверсію " "та окремий дисплей для неї." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13943,7 +13946,7 @@ msgstr "" "Omarchy. Hopper — комерційна програма; обмеження демоверсії визначає " "розробник." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13957,18 +13960,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Налаштування Hopper та усунення неполадок{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · встановіть безкоштовний інструмент аналізу та Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13978,7 +13981,7 @@ msgstr "" "Виберіть пакет для архітектури свого комп’ютера." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13991,7 +13994,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14007,7 +14010,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -14015,7 +14018,7 @@ msgstr "{ph0}Завантажити JDK{ph1} · {ph2}Завантажити Ghid #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14025,7 +14028,7 @@ msgstr "" "Перевірте Java. Перша команда виводить {ph0}; використовуйте цю папку для " "{ph1}. Друга підтверджує, що компілятор встановлено:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -14043,7 +14046,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14053,12 +14056,12 @@ msgstr "" "{ph0}Налаштування Ghidra та вимоги до архітектури{ph1} · {ph2}Посібник із " "Ghidra у Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · підключіть наявне встановлення" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -14070,7 +14073,7 @@ msgstr "" "бінарним файлом або до супервізора без графічного інтерфейсу, який відкриває" " окрему базу даних." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -14082,7 +14085,7 @@ msgstr "" "інтерфейсу в macOS arm64 з IDA Professional 9.1. Необов’язковий нативний " "міст до GUI має власні вимоги до версій і платформ." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -14094,13 +14097,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}Профілі IDA, приклади реєстрації та перевірені платформи{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14111,18 +14114,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Пройдіть приклад аналізу машинного коду{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Сайти, Android, .NET, прошивки та інші цілі" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14131,110 +14134,110 @@ msgstr "" "Відкрийте посібник для своєї цілі. Кожен містить додаткові інструменти, " "підтримувані хости та першу команду." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Ціль" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Потрібні інструменти" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Посібник" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Відкрити посібник{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Сайт" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / пакети" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Пристрій Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Ресурси Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Проєкт JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Прошивка" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / збій Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Логічні сигнали" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Поведінка процесу" @@ -14250,7 +14253,7 @@ msgstr "Поведінка процесу" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14260,18 +14263,18 @@ msgstr "" "{ph0}Посібник із Flutter{ph1} · {ph2}Пакети та ресурси{ph3} · {ph4}Байткод " "EVM{ph5} · {ph6}Усі посібники з дослідження{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Використовуйте REA з термінала" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Команди CLI, глобальне встановлення та curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14281,7 +14284,7 @@ msgstr "" "Замініть {ph0} назвою або адресою функції зі списку функцій цілі. Спочатку " "потрібно налаштувати Ghidra." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14290,7 +14293,7 @@ msgstr "" "У macOS або Linux після підготовки Node.js можна також скористатися " "інсталятором через curl:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14300,12 +14303,12 @@ msgstr "" "налаштування. У редакторах увімкніть REA в параметрах MCP і дозвольте його " "інструменти в чаті агента." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL і шляхи з пробілами" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14317,17 +14320,17 @@ msgstr "" "середовище Linux та використовуйте там шляхи Linux. Провайдери без " "графічного інтерфейсу працюють на тому самому хості, що й REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Команда налаштування для Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Оновіть або видаліть REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14338,7 +14341,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14352,52 +14355,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Докладніше про оновлення та видалення{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Копіювати команду налаштування REA для Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Копіювати команду" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Запит на копіювання нотаток для розслідування" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14408,12 +14411,12 @@ msgstr "" "виконайте {ph0}; в інших дистрибутивах використовуйте свій пакетний " "менеджер." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Закрийте термінал, відкрийте його знову, а потім виконайте:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14429,7 +14432,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14439,19 +14442,19 @@ msgstr "" "{ph0}Налаштування Cursor{ph1} · {ph2}Налаштування Windsurf / Devin " "Desktop{ph3} · {ph4}Налаштування VS Code та Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · виберіть модель ШІ" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Підготуйте файл реєстрації IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14466,7 +14469,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14479,7 +14482,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14492,22 +14495,22 @@ msgstr "" " бінарний файл у IDA та запустіть плагін на боці IDA, перш ніж просити REA " "його дослідити." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "База даних SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Байткод EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Встановіть Codex за допомогою команди для своєї операційної системи:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14518,7 +14521,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14529,12 +14532,12 @@ msgstr "" " (.pkg){ph1}, відкрийте його та дотримуйтеся інструкцій. Потім знову " "відкрийте Термінал." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Уже користуєтеся Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14546,7 +14549,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14556,7 +14559,7 @@ msgstr "" "Перегляньте й схваліть план, знову відкрийте Claude, а потім {ph0}перевірте " "підключення за кроком 3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14567,12 +14570,12 @@ msgstr "" "встановлення в macOS або Linux arm64 перед продовженням зберіть нативний " "декомпілятор для свого комп’ютера." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Зберіть нативний декомпілятор Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14585,7 +14588,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14595,7 +14598,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14605,19 +14608,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · інструкції з нативного збирання{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Потім перевірте Ghidra та збережіть шляхи до нього для свого клієнта:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14625,13 +14628,13 @@ msgstr "Чому {ph0} дає 220 у Калькуляторі?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Як це працює{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14640,22 +14643,22 @@ msgstr "" "Запитайте свого агента-програміста про застосунок, гру або сайт. REA дає " "йому інструменти для дослідження коду, на якому ґрунтується відповідь." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Почати" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Переглянути приклад ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Як це працює" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14666,49 +14669,49 @@ msgstr "" "З REA ваш агент може простежити код, пояснити функцію та допомогти " "відтворити її." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Запитайте про одну функцію" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Дайте агенту програму або сторінку й поставте запитання." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Дослідіть програму" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA повертає код, посилання та спостереження під час виконання." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Зрозумійте й спробуйте зміну" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" "Агент використовує результати дослідження, щоб пояснити або відтворити " "функцію." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Простежити інструкції крок за кроком" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Поставити агенту те саме запитання" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14717,7 +14720,7 @@ msgstr "" "Почніть з 6. Додавайте 0,001 при кожному оновленні без збоїв, поки швидкість" " нижче 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14725,7 +14728,7 @@ msgstr "" "Дослідіть функцію випущеного застосунку або гри разом із кодом і " "перевіреними результатами." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14735,7 +14738,7 @@ msgstr "" "пересуньте демонстраційний годинник, щоб побачити, чому код змінюється кожні" " 30 секунд." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14744,7 +14747,7 @@ msgstr "" "Простежте JavaScript із пакета Notion до системного буфера обміну та " "дізнайтеся, як копіювання зберігає розширені дані блоків." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14753,12 +14756,12 @@ msgstr "" "Відновіть, як положення м'яча перетворюється на звук ліворуч або праворуч у " "грі для Windows 1996 року." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Оберіть ціль." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14768,7 +14771,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14787,13 +14790,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Приклад запиту * Веб-сайт" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Так, ось цей." @@ -14806,7 +14809,7 @@ msgstr "Так, ось цей." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14820,7 +14823,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14834,18 +14837,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Запит на копіювання проекту веб-сайту" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Запит на копіювання реконструкції гри" @@ -14857,7 +14860,7 @@ msgstr "Запит на копіювання реконструкції гри" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14869,7 +14872,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14877,23 +14880,23 @@ msgstr "{ph0}Приклади →{ph1} — дослідження й інтер #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Блог →{ph1} — методи й нотатки про відтворення ПЗ." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Переглянути повне дослідження Калькулятора" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Спробувати більший проєкт" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14902,7 +14905,7 @@ msgstr "" "Спробуймо два приклади: змінимо швидкість гри, а потім відтворимо кнопку % " "Калькулятора." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14911,7 +14914,7 @@ msgstr "" "Гра прискорюється під час бігу. Щоб відтворити її з регулюванням швидкості, " "спершу треба з'ясувати, як змінюється швидкість." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Запитайте про швидкість" @@ -14924,7 +14927,7 @@ msgstr "1. Запитайте про швидкість" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14932,12 +14935,12 @@ msgid "" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Приклад запитання · Гра з динозавром" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Знайдіть правило зміни швидкості" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14946,12 +14949,12 @@ msgstr "" "REA дає агенту змогу читати код запущеної гри. Швидкість починається з 6 і " "трохи зростає під час кожного оновлення, поки вона менша за 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Пограйте в результат" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14960,7 +14963,7 @@ msgstr "" "Ми відтворили це правило в мінігрі нижче й додали повзунок швидкості. " "Почніть гру та виберіть свою швидкість." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14969,7 +14972,7 @@ msgstr "" "Увімкніть JavaScript, щоб грати. Ви й далі можете читати правило та " "відкривати вихідний код нижче." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14978,7 +14981,7 @@ msgstr "" "Кнопка % працює по-різному після + і ×. Знайдемо обидва правила й перевіримо" " їх у невеликому калькуляторі." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Запитайте про кнопку %" @@ -14991,19 +14994,19 @@ msgstr "1. Запитайте про кнопку %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Приклад запитання · Калькулятор" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Знайдіть обидва правила" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -15012,12 +15015,12 @@ msgstr "" "REA допомагає агенту читати код кнопки %. У ньому застосовуються два різні " "правила:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Спробуйте кнопку %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -15026,7 +15029,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -15034,7 +15037,7 @@ msgstr "{ph0}Прочитайте FAQ{ph1} — налаштування та п #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -15044,14 +15047,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "" "{ph0}GitHub issues{ph1} — повідомте про помилку або запропонуйте функцію." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Налаштування для вашої платформи:" @@ -15059,14 +15062,14 @@ msgstr "Налаштування для вашої платформи:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Інші способи встановлення: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15081,7 +15084,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15095,7 +15098,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15107,7 +15110,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15118,7 +15121,7 @@ msgstr "" "який вивів інсталятор. У Linux стандартна команда налаштування — {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15130,67 +15133,67 @@ msgstr "" "Перелічи функції та рядки, а потім поясни частину, що обробляє введення " "користувача, з посиланнями на код." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Учасники" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Перейти до змісту" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Головна{ph1} / Учасники" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Створюємо разом." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Дякуємо всім, хто допомагає робити REA кращим." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15198,22 +15201,22 @@ msgid "" msgstr "" "Код, документація, тести, переклади та ідеї — долучитися можна по-різному." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Як долучитися" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Приєднатися до обговорення →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Учасники" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Знайти учасника" @@ -15221,13 +15224,13 @@ msgstr "Знайти учасника" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "За {ph0}списком учасників на GitHub{ph1} · Оновлено: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Учасників не знайдено. Спробуйте інше ім’я користувача." @@ -15245,12 +15248,12 @@ msgstr "" "Познайомтеся з тими, хто долучається до коду, документації, тестів та ідей " "REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Ім’я користувача на GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Нагору" diff --git a/website/locales/ur-Latn/messages.po b/website/locales/ur-Latn/messages.po index 18b84b1c16d..815ed24fcb9 100644 --- a/website/locales/ur-Latn/messages.po +++ b/website/locales/ur-Latn/messages.po @@ -7,282 +7,315 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: website/public/blog/index.html:109 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "" -#: website/public/blog/index.html:121 -#: website/public/blog/reverse-engineering-models/index.html:121 -#: website/public/blog/touhou-reconstruction/index.html:121 -#: website/public/contributors/index.html:122 -#: website/public/examples/dino-lab/index.html:122 website/public/faq/index.html:121 -#: website/public/first-investigation/index.html:121 -#: website/public/get-started/index.html:121 -#: website/public/guides/browser/index.html:121 website/public/guides/index.html:121 -#: website/public/guides/javascript/index.html:121 -#: website/public/guides/native/index.html:121 website/public/index.html:123 -#: website/public/showcase/aegis/index.html:122 -#: website/public/showcase/ctf/index.html:121 -#: website/public/showcase/dx-ball/index.html:121 website/public/showcase/index.html:121 -#: website/public/showcase/notion/index.html:121 -#: website/public/showcase/th04/index.html:121 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "" -#: website/public/blog/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/contributors/index.html:123 -#: website/public/examples/dino-lab/index.html:123 website/public/faq/index.html:122 -#: website/public/first-investigation/index.html:122 -#: website/public/get-started/index.html:122 -#: website/public/guides/browser/index.html:122 website/public/guides/index.html:122 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/native/index.html:122 website/public/index.html:124 -#: website/public/showcase/aegis/index.html:123 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/dx-ball/index.html:122 website/public/showcase/index.html:122 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/th04/index.html:122 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "" -#: website/public/blog/index.html:124 website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:124 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:124 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:125 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:125 -#: website/public/examples/dino-lab/index.html:474 website/public/faq/index.html:124 -#: website/public/faq/index.html:572 website/public/first-investigation/index.html:124 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:124 website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:124 -#: website/public/guides/browser/index.html:506 website/public/guides/index.html:124 -#: website/public/guides/index.html:281 website/public/guides/javascript/index.html:124 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:124 -#: website/public/guides/native/index.html:508 website/public/index.html:126 -#: website/public/index.html:1221 website/public/showcase/aegis/index.html:125 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:124 website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:124 -#: website/public/showcase/dx-ball/index.html:784 website/public/showcase/index.html:124 -#: website/public/showcase/index.html:316 website/public/showcase/notion/index.html:124 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:124 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "" -#: website/public/blog/index.html:202 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "" -#: website/public/blog/index.html:203 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "" #. {ph0}:
-#: website/public/blog/index.html:207 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "" -#: website/public/blog/index.html:209 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/index.html:210 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" -"What Touhou reconstruction suggests about general models, specialist models and " -"learning from compiler feedback." +"What Touhou reconstruction suggests about general models, specialist models " +"and learning from compiler feedback." msgstr "" -#: website/public/blog/index.html:214 website/public/blog/index.html:229 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "" -#: website/public/blog/index.html:217 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" #. {ph0}:
-#: website/public/blog/index.html:221 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "" -#: website/public/blog/index.html:223 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "" -#: website/public/blog/index.html:224 +#: website/public/blog/index.html:228 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." +"What manual RE and reconstructing TH08, TH095 and TH04 taught me about " +"agents, verification and knowledge that compounds across projects." msgstr "" -#: website/public/blog/index.html:232 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "" -#: website/public/blog/index.html:246 -#: website/public/blog/reverse-engineering-models/index.html:885 -#: website/public/blog/touhou-reconstruction/index.html:1082 -#: website/public/contributors/index.html:1133 -#: website/public/examples/dino-lab/index.html:477 website/public/faq/index.html:575 -#: website/public/first-investigation/index.html:536 -#: website/public/get-started/index.html:1819 -#: website/public/guides/browser/index.html:509 website/public/guides/index.html:284 -#: website/public/guides/javascript/index.html:505 -#: website/public/guides/native/index.html:511 website/public/index.html:1224 -#: website/public/showcase/aegis/index.html:810 -#: website/public/showcase/ctf/index.html:779 -#: website/public/showcase/dx-ball/index.html:787 website/public/showcase/index.html:319 -#: website/public/showcase/notion/index.html:633 -#: website/public/showcase/th04/index.html:802 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "" -#: website/public/blog/index.html:247 -#: website/public/blog/reverse-engineering-models/index.html:886 -#: website/public/blog/touhou-reconstruction/index.html:1083 -#: website/public/contributors/index.html:1134 -#: website/public/examples/dino-lab/index.html:478 website/public/faq/index.html:576 -#: website/public/first-investigation/index.html:537 -#: website/public/get-started/index.html:1820 -#: website/public/guides/browser/index.html:510 website/public/guides/index.html:285 -#: website/public/guides/javascript/index.html:506 -#: website/public/guides/native/index.html:512 website/public/index.html:1225 -#: website/public/showcase/aegis/index.html:811 -#: website/public/showcase/ctf/index.html:780 -#: website/public/showcase/dx-ball/index.html:788 website/public/showcase/index.html:320 -#: website/public/showcase/notion/index.html:634 -#: website/public/showcase/th04/index.html:803 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "" #. {ph0}: -#: website/public/blog/index.html:252 -#: website/public/blog/reverse-engineering-models/index.html:891 -#: website/public/blog/touhou-reconstruction/index.html:1088 -#: website/public/contributors/index.html:1139 -#: website/public/examples/dino-lab/index.html:483 website/public/faq/index.html:581 -#: website/public/first-investigation/index.html:542 -#: website/public/get-started/index.html:1825 -#: website/public/guides/browser/index.html:515 website/public/guides/index.html:290 -#: website/public/guides/javascript/index.html:511 -#: website/public/guides/native/index.html:517 website/public/index.html:1230 -#: website/public/showcase/aegis/index.html:816 -#: website/public/showcase/ctf/index.html:785 -#: website/public/showcase/dx-ball/index.html:793 website/public/showcase/index.html:325 -#: website/public/showcase/notion/index.html:639 -#: website/public/showcase/th04/index.html:808 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -296,140 +329,164 @@ msgstr "" #: 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 "" - -#: website/public/blog/index.html:81 website/public/blog/index.html:94 -#: website/public/blog/reverse-engineering-models/index.html:81 -#: website/public/blog/reverse-engineering-models/index.html:94 -#: website/public/blog/touhou-reconstruction/index.html:81 -#: website/public/blog/touhou-reconstruction/index.html:94 -#: website/public/contributors/index.html:81 website/public/contributors/index.html:94 -#: website/public/examples/dino-lab/index.html:81 -#: website/public/examples/dino-lab/index.html:94 website/public/faq/index.html:81 -#: website/public/faq/index.html:94 website/public/first-investigation/index.html:81 -#: website/public/first-investigation/index.html:94 -#: website/public/get-started/index.html:81 website/public/get-started/index.html:94 -#: website/public/guides/browser/index.html:81 -#: website/public/guides/browser/index.html:94 website/public/guides/index.html:81 -#: website/public/guides/index.html:94 website/public/guides/javascript/index.html:81 -#: website/public/guides/javascript/index.html:94 -#: website/public/guides/native/index.html:81 website/public/guides/native/index.html:94 -#: website/public/index.html:81 website/public/index.html:94 -#: website/public/showcase/aegis/index.html:81 -#: website/public/showcase/aegis/index.html:94 website/public/showcase/ctf/index.html:81 -#: website/public/showcase/ctf/index.html:94 -#: website/public/showcase/dx-ball/index.html:81 -#: website/public/showcase/dx-ball/index.html:94 website/public/showcase/index.html:81 -#: website/public/showcase/index.html:94 website/public/showcase/notion/index.html:81 -#: website/public/showcase/notion/index.html:94 -#: website/public/showcase/th04/index.html:81 website/public/showcase/th04/index.html:94 -msgctxt "shared" -msgid "REA — Find out how software works. Reverse engineering with your coding agent." -msgstr "" - -#: website/public/blog/index.html:114 -#: website/public/blog/reverse-engineering-models/index.html:114 -#: website/public/blog/touhou-reconstruction/index.html:114 -#: website/public/contributors/index.html:115 -#: website/public/examples/dino-lab/index.html:115 website/public/faq/index.html:114 -#: website/public/first-investigation/index.html:114 -#: website/public/get-started/index.html:114 -#: website/public/guides/browser/index.html:114 website/public/guides/index.html:114 -#: website/public/guides/javascript/index.html:114 -#: website/public/guides/native/index.html:114 website/public/index.html:116 -#: website/public/showcase/aegis/index.html:115 -#: website/public/showcase/ctf/index.html:114 -#: website/public/showcase/dx-ball/index.html:114 website/public/showcase/index.html:114 -#: website/public/showcase/notion/index.html:114 -#: website/public/showcase/th04/index.html:114 +"Thoughts on reverse engineering, drawing on practical experience with REA " +"and AI agents." +msgstr "" + +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" -msgid "REA home" +msgid "" +"REA — Find out how software works. Reverse engineering with your coding " +"agent." msgstr "" #: website/public/blog/index.html:118 #: website/public/blog/reverse-engineering-models/index.html:118 #: website/public/blog/touhou-reconstruction/index.html:118 #: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 website/public/faq/index.html:118 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 #: website/public/first-investigation/index.html:118 #: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 website/public/guides/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 #: website/public/guides/javascript/index.html:118 #: website/public/guides/native/index.html:118 website/public/index.html:120 #: website/public/showcase/aegis/index.html:119 #: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 website/public/showcase/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 #: website/public/showcase/notion/index.html:118 #: website/public/showcase/th04/index.html:118 msgctxt "shared" +msgid "REA home" +msgstr "" + +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 +msgctxt "shared" msgid "Main navigation" msgstr "" -#: website/public/blog/index.html:137 -#: website/public/blog/reverse-engineering-models/index.html:137 -#: website/public/blog/touhou-reconstruction/index.html:137 -#: website/public/contributors/index.html:138 -#: 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 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "" -#: website/public/blog/index.html:157 -#: website/public/blog/reverse-engineering-models/index.html:157 -#: website/public/blog/touhou-reconstruction/index.html:157 -#: website/public/contributors/index.html:158 -#: website/public/examples/dino-lab/index.html:158 website/public/faq/index.html:157 -#: website/public/first-investigation/index.html:157 -#: website/public/get-started/index.html:157 -#: website/public/guides/browser/index.html:157 website/public/guides/index.html:157 -#: website/public/guides/javascript/index.html:157 -#: website/public/guides/native/index.html:157 website/public/index.html:159 -#: website/public/showcase/aegis/index.html:158 -#: website/public/showcase/ctf/index.html:157 -#: website/public/showcase/dx-ball/index.html:157 website/public/showcase/index.html:157 -#: website/public/showcase/notion/index.html:157 -#: website/public/showcase/th04/index.html:157 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "" -#: website/public/blog/index.html:176 -#: website/public/blog/reverse-engineering-models/index.html:176 -#: website/public/blog/touhou-reconstruction/index.html:176 -#: website/public/contributors/index.html:177 -#: website/public/examples/dino-lab/index.html:177 website/public/faq/index.html:176 -#: website/public/first-investigation/index.html:176 -#: website/public/get-started/index.html:176 -#: website/public/guides/browser/index.html:176 website/public/guides/index.html:176 -#: website/public/guides/javascript/index.html:176 -#: website/public/guides/native/index.html:176 website/public/index.html:178 -#: website/public/showcase/aegis/index.html:177 -#: website/public/showcase/ctf/index.html:176 -#: website/public/showcase/dx-ball/index.html:176 website/public/showcase/index.html:176 -#: website/public/showcase/notion/index.html:176 -#: website/public/showcase/th04/index.html:176 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "" -#: website/public/blog/index.html:252 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:109 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "" @@ -438,90 +495,90 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:201 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:205 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:210 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later sessions " -"have solved problems that earlier work left unresolved." +"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later " +"sessions have solved problems that earlier work left unresolved." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:218 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}A familiar compiler gives specialization something concrete to learn.{ph1} Some " -"exact matches depend on narrow, reusable source patterns." +"{ph0}A familiar compiler gives specialization something concrete to " +"learn.{ph1} Some exact matches depend on narrow, reusable source patterns." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:225 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with good " -"retrieval may already know enough to make progress." +"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with " +"good retrieval may already know enough to make progress." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:230 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value of feedback" -" depends on what the checker actually verifies." +"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value " +"of feedback depends on what the checker actually verifies." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:237 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the result I " -"want from the whole agent." +"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the" +" result I want from the whole agent." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -529,7 +586,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -537,7 +594,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -545,7 +602,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -553,7 +610,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -561,7 +618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -569,7 +626,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -577,47 +634,48 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:257 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:265 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:266 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Since August 2026, I have been exploring how much reverse engineering an agent can " -"carry out with access to a program and a way to check its work. Most of my experience " -"comes from reconstructing games, especially Touhou. As I have changed models, the " -"repositories have kept a record of what each session managed to recover." +"Since August 2026, I have been exploring how much reverse engineering an " +"agent can carry out with access to a program and a way to check its work. " +"Most of my experience comes from reconstructing games, especially Touhou. As" +" I have changed models, the repositories have kept a record of what each " +"session managed to recover." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:274 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Much of that work aims at exact reconstruction: we compile the maintained source under" -" a pinned historical toolchain and check whether it reproduces the target function. " -"When a later model succeeds where earlier work stalled, the source changes show what " -"made that progress possible." +"Much of that work aims at exact reconstruction: we compile the maintained " +"source under a pinned historical toolchain and check whether it reproduces " +"the target function. When a later model succeeds where earlier work stalled," +" the source changes show what made that progress possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:281 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:282 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Much of a TH09 attack function's logic had already been reconstructed, but the " -"compiler still stored temporary results differently from the original. The remaining " -"problem was how long those results needed to stay alive and when their storage could " -"be reused." +"Much of a TH09 attack function's logic had already been reconstructed, but " +"the compiler still stored temporary results differently from the original. " +"The remaining problem was how long those results needed to stay alive and " +"when their storage could be reused." msgstr "" #. {ph0}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:289 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing several ordinary" -" source arrangements. When {ph2}GPT-6.1-Sol returned to the problem{ph3}, it found a " -"useful hypothesis about how long those temporary values needed to stay alive." +"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing " +"several ordinary source arrangements. When {ph2}GPT-6.1-Sol returned to the " +"problem{ph3}, it found a useful hypothesis about how long those temporary " +"values needed to stay alive." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:303 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The function produced temporary results and copied them into animation positions. In " -"C++, a temporary result stays alive until the expression using it finishes. Grouping " -"the real operations into one expression kept those results alive together, so the " -"compiler could no longer reuse the same storage for all of them." +"The function produced temporary results and copied them into animation " +"positions. In C++, a temporary result stays alive until the expression using" +" it finishes. Grouping the real operations into one expression kept those " +"results alive together, so the compiler could no longer reuse the same " +"storage for all of them." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:310 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"One result still shared storage with a value used later for collision checks. Giving " -"that value its own lifetime resolved the remaining overlap. After several targeted " -"experiments, {ph0}a clean rebuild confirmed that the full function matched{ph1}." +"One result still shared storage with a value used later for collision " +"checks. Giving that value its own lifetime resolved the remaining overlap. " +"After several targeted experiments, {ph0}a clean rebuild confirmed that the " +"full function matched{ph1}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:319 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"What interests me is how the discovery and the tests worked together. The lifetime " -"hypothesis gave the agent a new direction; compiler feedback helped it refine that " -"hypothesis into a source arrangement that matched." +"What interests me is how the discovery and the tests worked together. The " +"lifetime hypothesis gave the agent a new direction; compiler feedback helped" +" it refine that hypothesis into a source arrangement that matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:325 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "" @@ -674,14 +735,14 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:326 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A second TH09 function shows why that new direction can matter. Here, the obstacle was" -" how several branches shared their final work. {ph0}GPT-6.1-Sol's earlier work{ph1} " -"got parts of the function to match, but the branches still joined up differently from " -"the original." +"A second TH09 function shows why that new direction can matter. Here, the " +"obstacle was how several branches shared their final work. " +"{ph0}GPT-6.1-Sol's earlier work{ph1} got parts of the function to match, but" +" the branches still joined up differently from the original." msgstr "" #. {ph0}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:337 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main paths now " -"led to a shared final update and return. In that source structure, the compiler " -"combined the branches in the same way as the original. The complete function matched, " -"and a {ph2}separate rebuild check confirmed it{ph3}." +"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main " +"paths now led to a shared final update and return. In that source structure," +" the compiler combined the branches in the same way as the original. The " +"complete function matched, and a {ph2}separate rebuild check confirmed " +"it{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:349 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Changing the representation opened a more productive search space.{ph1} Both " -"cases give me a reason to take general model capability seriously: an agent can keep " -"trying local variations for a long time before finding a better way to express the " -"surrounding work." +"{ph0}Changing the representation opened a more productive search space.{ph1}" +" Both cases give me a reason to take general model capability seriously: an " +"agent can keep trying local variations for a long time before finding a " +"better way to express the surrounding work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:358 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"At the same time, the later sessions started with earlier source and recorded " -"failures. That accumulated work was part of their advantage. The history lets us " -"inspect the discoveries and their checks; a controlled comparison would help separate " -"the effect of the model from the experience it inherited." +"At the same time, the later sessions started with earlier source and " +"recorded failures. That accumulated work was part of their advantage. The " +"history lets us inspect the discoveries and their checks; a controlled " +"comparison would help separate the effect of the model from the experience " +"it inherited." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:365 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This is where the question becomes interesting to me. Some of the progress came from " -"finding a new representation, while much of the remaining work involved testing source" -" forms against a familiar compiler. How much needs broad reasoning ability, and how " -"much could a model learn through repeated experience with that compiler and code?" +"This is where the question becomes interesting to me. Some of the progress " +"came from finding a new representation, while much of the remaining work " +"involved testing source forms against a familiar compiler. How much needs " +"broad reasoning ability, and how much could a model learn through repeated " +"experience with that compiler and code?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:375 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:376 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Touhou gives us a concrete reason to expect that experience to help. Much of the game " -"code comes from the same author, ZUN, so recurring habits are a reasonable starting " -"assumption. The repositories back that up with useful examples: related loops and " -"helper arrangements have supplied hypotheses across games." +"Touhou gives us a concrete reason to expect that experience to help. Much of" +" the game code comes from the same author, ZUN, so recurring habits are a " +"reasonable starting assumption. The repositories back that up with useful " +"examples: related loops and helper arrangements have supplied hypotheses " +"across games." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:383 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Those source patterns become more specific when we include the compiler. Under a " -"particular version and set of options, small changes in source can produce repeatable " -"differences in machine code. Some of those differences are surprisingly obscure." +"Those source patterns become more specific when we include the compiler. " +"Under a particular version and set of options, small changes in source can " +"produce repeatable differences in machine code. Some of those differences " +"are surprisingly obscure." msgstr "" #. {ph0}: @@ -761,310 +827,320 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:389 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"In TH095, for example, {ph0}even the name used for a local variable could change where" -" VC7.1 stored it{ph1}. Moving the declaration alone did not solve the layout, but an " -"earlier background function had revealed a naming pattern that affected the compiler's" -" choice. That gave us a more promising hypothesis for {ph2}the reconstruction of " -"{ph3}{ph4}." +"In TH095, for example, {ph0}even the name used for a local variable could " +"change where VC7.1 stored it{ph1}. Moving the declaration alone did not " +"solve the layout, but an earlier background function had revealed a naming " +"pattern that affected the compiler's choice. That gave us a more promising " +"hypothesis for {ph2}the reconstruction of {ph3}{ph4}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:403 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Reusing that pattern for the file-size variable produced the required layout without " -"adding storage. The full function then matched." +"Reusing that pattern for the file-size variable produced the required layout" +" without adding storage. The full function then matched." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:408 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This is the sort of narrow detail a general model may not know when it arrives. A " -"specialist trained on this compiler could encounter many such cases and learn which " -"source variations are worth testing first." +"This is the sort of narrow detail a general model may not know when it " +"arrives. A specialist trained on this compiler could encounter many such " +"cases and learn which source variations are worth testing first." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:414 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The opportunity is especially clear in final matching problems where we already " -"understand the behavior. We are then asking which ordinary source form this compiler " -"turns into the observed instructions. Specialization could help the model propose " -"those forms more efficiently, while the target still determines which hypotheses " -"survive." +"The opportunity is especially clear in final matching problems where we " +"already understand the behavior. We are then asking which ordinary source " +"form this compiler turns into the observed instructions. Specialization " +"could help the model propose those forms more efficiently, while the target " +"still determines which hypotheses survive." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:422 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The useful patterns would have to retain their context, though. TH08 uses an earlier " -"Visual C++ version than TH095 and TH09. TH04 uses a different DOS-era compiler, and " -"its {ph0}player reconstruction{ph1} needed different hypotheses about source patterns " -"and how the compiled code was combined into an executable. Shared authorship gives us " -"a prior, but each target tells us whether it applies. Distinguishing those contexts is" -" part of what a specialist would need to learn." +"The useful patterns would have to retain their context, though. TH08 uses an" +" earlier Visual C++ version than TH095 and TH09. TH04 uses a different DOS-" +"era compiler, and its {ph0}player reconstruction{ph1} needed different " +"hypotheses about source patterns and how the compiled code was combined into" +" an executable. Shared authorship gives us a prior, but each target tells us" +" whether it applies. Distinguishing those contexts is part of what a " +"specialist would need to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:438 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:439 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Before deciding to teach those patterns through model training, I would look at the " -"knowledge we already keep in the repository. In the {ph0}previous essay{ph1}, I wrote " -"about it becoming the project's working memory. That memory includes compiler lessons," -" along with the source and failed experiments that made them useful." +"Before deciding to teach those patterns through model training, I would look" +" at the knowledge we already keep in the repository. In the {ph0}previous " +"essay{ph1}, I wrote about it becoming the project's working memory. That " +"memory includes compiler lessons, along with the source and failed " +"experiments that made them useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:448 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"By retrieving that record, an agent can start with a known result and inspect how we " -"reached it. It can also avoid alternatives that have already failed in the same " -"context. The starting point improves without changing the model's weights." +"By retrieving that record, an agent can start with a known result and " +"inspect how we reached it. It can also avoid alternatives that have already " +"failed in the same context. The starting point improves without changing the" +" model's weights." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:454 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max session{ph1} " -"drew a hypothesis from TH08's corresponding source family. That earlier source " -"suggested how to structure the loop and handle failures within it. TH09's own evidence" -" supplied the game-specific details, and clean rebuilds confirmed the complete match." +"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max " +"session{ph1} drew a hypothesis from TH08's corresponding source family. That" +" earlier source suggested how to structure the loop and handle failures " +"within it. TH09's own evidence supplied the game-specific details, and clean" +" rebuilds confirmed the complete match." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:465 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}\"The model did not know that compiler quirk\" and \"the model could not use it\"" -" are different problems.{ph1} Retrieval may solve the first, but turning that fact " -"into a useful candidate still takes work. And if the candidate fails, the model must " -"decide what the result means for its next attempt. Knowing the relevant pattern is " -"only the beginning of that process." +"{ph0}\"The model did not know that compiler quirk\" and \"the model could " +"not use it\" are different problems.{ph1} Retrieval may solve the first, but" +" turning that fact into a useful candidate still takes work. And if the " +"candidate fails, the model must decide what the result means for its next " +"attempt. Knowing the relevant pattern is only the beginning of that process." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:475 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"For that reason, I would include a smaller general model with good retrieval in any " -"comparison. Giving it the same library of experience would help us identify what " -"training adds: better candidate generation, better decisions after feedback, or both." +"For that reason, I would include a smaller general model with good retrieval" +" in any comparison. Giving it the same library of experience would help us " +"identify what training adds: better candidate generation, better decisions " +"after feedback, or both." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:483 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:484 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Those decisions after feedback are what I would most like to study. In agentic " -"reconstruction, the model proposes an explanation and tests it against the program. " -"Even when the candidate fails, the result can narrow the remaining possibilities and " -"suggest a more useful next experiment." +"Those decisions after feedback are what I would most like to study. In " +"agentic reconstruction, the model proposes an explanation and tests it " +"against the program. Even when the candidate fails, the result can narrow " +"the remaining possibilities and suggest a more useful next experiment." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:491 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Consider the temporary-results example again. Its final source shows the arrangement " -"that worked, but the route to that source contains more information. Each of the " -"following experiments helped identify what still needed to change." +"Consider the temporary-results example again. Its final source shows the " +"arrangement that worked, but the route to that source contains more " +"information. Each of the following experiments helped identify what still " +"needed to change." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:504 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:505 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:510 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:511 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:516 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:517 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" -msgid "Copying follows the original pattern, but temporary storage still differs." +msgid "" +"Copying follows the original pattern, but temporary storage still differs." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:523 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:524 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"They get separate storage, but one still overlaps a value used later for collision " -"checks." +"They get separate storage, but one still overlaps a value used later for " +"collision checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:530 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:531 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:536 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Selected experiments from the attack-function reconstruction above, grouped by what " -"they taught us." +"Selected experiments from the attack-function reconstruction above, grouped " +"by what they taught us." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:540 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A training record that keeps this sequence can teach more than the final source alone." -" It connects each proposed change to an observed result and the next decision. Keeping" -" ineffective variations matters too: they tell a later agent which hypotheses have " -"already been tested in that context." +"A training record that keeps this sequence can teach more than the final " +"source alone. It connects each proposed change to an observed result and the" +" next decision. Keeping ineffective variations matters too: they tell a " +"later agent which hypotheses have already been tested in that context." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:547 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral result is a " -"reason to reconsider the variation; a changed mismatch may point to another cause. " -"When local edits stop being informative, the agent should be able to revisit the " -"source representation or inspect the evidence again." +"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral " +"result is a reason to reconsider the variation; a changed mismatch may point" +" to another cause. When local edits stop being informative, the agent should" +" be able to revisit the source representation or inspect the evidence again." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:556 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Learning to make those choices requires autonomy. Sometimes the useful next step is " -"inspecting another caller rather than compiling another edit. A rigid sequence of " -"required rewrites would remove that choice, along with part of the behavior we want " -"the model to learn." +"Learning to make those choices requires autonomy. Sometimes the useful next " +"step is inspecting another caller rather than compiling another edit. A " +"rigid sequence of required rewrites would remove that choice, along with " +"part of the behavior we want the model to learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:565 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:566 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Bounded reconstruction gives us a practical environment for studying these choices. " -"Once the target and compiler are pinned, many source experiments produce quick, " -"repeatable feedback. The agent can compile a candidate, inspect the mismatch and use " -"that observation to choose its next step." +"Bounded reconstruction gives us a practical environment for studying these " +"choices. Once the target and compiler are pinned, many source experiments " +"produce quick, repeatable feedback. The agent can compile a candidate, " +"inspect the mismatch and use that observation to choose its next step." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:573 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Reinforcement learning could train that decision-making process through the feedback " -"it receives. A candidate accepted by a defined check gives us a concrete outcome, " -"while the sequence of attempts lets us observe how much work it took to reach it." +"Reinforcement learning could train that decision-making process through the " +"feedback it receives. A candidate accepted by a defined check gives us a " +"concrete outcome, while the sequence of attempts lets us observe how much " +"work it took to reach it." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:579 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"There is already research supporting this direction. {ph0}LLM4Decompile{ph1} studies " -"models specialized for decompilation. {ph2}AutoDecompiler{ph3} trains multi-turn " -"refinement using compiler and execution feedback. Their studies focus on functional " -"recovery. For this work, I would use them as a starting point for the related task of " -"finding source that matches a historical compiler's output." +"There is already research supporting this direction. {ph0}LLM4Decompile{ph1}" +" studies models specialized for decompilation. {ph2}AutoDecompiler{ph3} " +"trains multi-turn refinement using compiler and execution feedback. Their " +"studies focus on functional recovery. For this work, I would use them as a " +"starting point for the related task of finding source that matches a " +"historical compiler's output." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:591 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To reach such a well-defined task, though, we may first need to establish what a " -"function owns or devise a new runtime measurement. In TH08, for example, a " -"{ph0}collision difference led back to how the original program handled floating-point " -"calculations{ph1}. Before the agent could test a useful correction, it had to work out" -" what to measure." +"To reach such a well-defined task, though, we may first need to establish " +"what a function owns or devise a new runtime measurement. In TH08, for " +"example, a {ph0}collision difference led back to how the original program " +"handled floating-point calculations{ph1}. Before the agent could test a " +"useful correction, it had to work out what to measure." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:602 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This suggests another role for a broadly capable model: helping make the problem " -"checkable in the first place. Once that check exists, we can investigate how far a " -"learned search policy can get with it." +"This suggests another role for a broadly capable model: helping make the " +"problem checkable in the first place. Once that check exists, we can " +"investigate how far a learned search policy can get with it." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:610 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:611 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Once we train against that check, its coverage becomes part of what the model learns. " -"I call the reference or checker an oracle. Even if it gives a repeatable answer, we " -"still need to understand what that answer covers." +"Once we train against that check, its coverage becomes part of what the " +"model learns. I call the reference or checker an oracle. Even if it gives a " +"repeatable answer, we still need to understand what that answer covers." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:617 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"TH08 showed how much can hide outside that coverage. Some reconstructed functions " -"passed their exact comparisons with wrong floating constants. The comparator adjusted " -"relocated addresses before checking instructions, but it checked the values behind " -"those addresses only when they had been explicitly recorded for verification. Other " -"literal references could pass without their values being examined." +"TH08 showed how much can hide outside that coverage. Some reconstructed " +"functions passed their exact comparisons with wrong floating constants. The " +"comparator adjusted relocated addresses before checking instructions, but it" +" checked the values behind those addresses only when they had been " +"explicitly recorded for verification. Other literal references could pass " +"without their values being examined." msgstr "" #. {ph0}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:626 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in functions that" -" had already been accepted. In one calculation, the reconstructed source added {ph2} " -"where the original added {ph3}." +"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in " +"functions that had already been accepted. In one calculation, the " +"reconstructed source added {ph2} where the original added {ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:636 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "{ph0}A learner rewarded by the old check could learn to produce the wrong " -"reconstruction.{ph1} We had not trained an RL model against this oracle; the observed " -"failure was in the check itself. But using that check as a reward would have made the " -"same blind spot part of the learning environment." +"reconstruction.{ph1} We had not trained an RL model against this oracle; the" +" observed failure was in the check itself. But using that check as a reward " +"would have made the same blind spot part of the learning environment." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:646 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"A functional test can have a similar blind spot. {ph0}Differential-fuzzing research on" -" LLM decompilers{ph1} has found behavior differences beyond the supplied tests. " -"Passing those tests therefore needs to be read in terms of the cases they exercise, " -"just as an instruction match needs to be read in terms of the bytes and data it " -"checks." +"A functional test can have a similar blind spot. {ph0}Differential-fuzzing " +"research on LLM decompilers{ph1} has found behavior differences beyond the " +"supplied tests. Passing those tests therefore needs to be read in terms of " +"the cases they exercise, just as an instruction match needs to be read in " +"terms of the bytes and data it checks." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:656 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Before using either kind of check as a reward, I would test it with deliberate " -"failures. I would also keep final acceptance outside the candidate's editable source, " -"so the model has to satisfy the check through its reconstruction. Otherwise, something" -" like a byte array copied from the target could satisfy a naive score without " -"recovering useful source." +"Before using either kind of check as a reward, I would test it with " +"deliberate failures. I would also keep final acceptance outside the " +"candidate's editable source, so the model has to satisfy the check through " +"its reconstruction. Otherwise, something like a byte array copied from the " +"target could satisfy a naive score without recovering useful source." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:664 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Improving the learner and improving its oracle belong to the same research " -"problem.{ph1} As the learner gets better at optimizing the feedback we give it, " -"understanding that feedback becomes more important too." +"{ph0}Improving the learner and improving its oracle belong to the same " +"research problem.{ph1} As the learner gets better at optimizing the feedback" +" we give it, understanding that feedback becomes more important too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:674 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:675 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"With those checks in place, I would start the comparison on a fixed VC7.1 task family." -" First, I would establish baselines for a strong general model and a smaller one. " -"Adding repository knowledge to the smaller model would show what retrieval changes. " -"From there, supervised specialization and an RL-trained version would let us examine " -"what training adds." +"With those checks in place, I would start the comparison on a fixed VC7.1 " +"task family. First, I would establish baselines for a strong general model " +"and a smaller one. Adding repository knowledge to the smaller model would " +"show what retrieval changes. From there, supervised specialization and an " +"RL-trained version would let us examine what training adds." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:683 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"To make those comparisons informative, each model would receive the same target " -"evidence and tools. For the training-specific comparisons, I would keep the base model" -" and available knowledge fixed as well. Repeated trials would help distinguish a " -"reliable search strategy from a lucky candidate." +"To make those comparisons informative, each model would receive the same " +"target evidence and tools. For the training-specific comparisons, I would " +"keep the base model and available knowledge fixed as well. Repeated trials " +"would help distinguish a reliable search strategy from a lucky candidate." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:690 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"I would then separate two starting conditions: reconstructing a function from its " -"instructions, and closing the last few differences in maintained source. A specialist " -"might be excellent at the second task while a general model does much of the work " -"needed to reach it. Measuring them separately would reveal that division of work." +"I would then separate two starting conditions: reconstructing a function " +"from its instructions, and closing the last few differences in maintained " +"source. A specialist might be excellent at the second task while a general " +"model does much of the work needed to reach it. Measuring them separately " +"would reveal that division of work." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:698 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Both tasks need genuinely held-out examples. Because related Touhou games share engine" -" code, holding out a game's name would still allow nearly identical functions to " -"appear in training. I would instead hold out source families and keep their accepted " -"answers out of both training and retrieval." +"Both tasks need genuinely held-out examples. Because related Touhou games " +"share engine code, holding out a game's name would still allow nearly " +"identical functions to appear in training. I would instead hold out source " +"families and keep their accepted answers out of both training and retrieval." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:705 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"On those examples, the outcome would be complete, independently validated matches. " -"Giving each model the same candidate or compile budget would help compare search " -"quality. Measuring elapsed time and total cost, including compilation, would tell us " -"whether that quality produces an efficient workflow. Training costs would need their " -"own accounting too." +"On those examples, the outcome would be complete, independently validated " +"matches. Giving each model the same candidate or compile budget would help " +"compare search quality. Measuring elapsed time and total cost, including " +"compilation, would tell us whether that quality produces an efficient " +"workflow. Training costs would need their own accounting too." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:713 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Both views matter because a cheaper proposal can become an expensive workflow if it " -"causes more uninformative compiles. Conversely, a slower model may pay for itself by " -"finding a useful experiment sooner. The comparison should capture those costs." +"Both views matter because a cheaper proposal can become an expensive " +"workflow if it causes more uninformative compiles. Conversely, a slower " +"model may pay for itself by finding a useful experiment sooner. The " +"comparison should capture those costs." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:719 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"Counting accepted results also keeps intermediate progress in perspective. One TH09 " -"{ph0}replay-save candidate{ph1} looked promising because the compiled function had the" -" expected size, but a full comparison still found substantial differences. Changes in " -"how the compiler arranges instructions can also make a candidate look closer without " -"resolving the underlying problem. Such diagnostics can guide the next experiment, but " -"I would validate any reward for \"getting closer\" against the full acceptance check." +"Counting accepted results also keeps intermediate progress in perspective. " +"One TH09 {ph0}replay-save candidate{ph1} looked promising because the " +"compiled function had the expected size, but a full comparison still found " +"substantial differences. Changes in how the compiler arranges instructions " +"can also make a candidate look closer without resolving the underlying " +"problem. Such diagnostics can guide the next experiment, but I would " +"validate any reward for \"getting closer\" against the full acceptance " +"check." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:734 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"I would be interested in the pattern across these results. If a specialist does well " -"within a familiar compiler family, does that advantage survive a toolchain change? And" -" once both models have good retrieval, how much does training still add? The answers " -"would help us decide where each kind of model is most useful." +"I would be interested in the pattern across these results. If a specialist " +"does well within a familiar compiler family, does that advantage survive a " +"toolchain change? And once both models have good retrieval, how much does " +"training still add? The answers would help us decide where each kind of " +"model is most useful." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:743 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:744 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"If the models turn out to help at different stages, a useful arrangement might be a " -"broad agent with access to a specialist. Once a task becomes a familiar compiler " -"search, it could ask the specialist for candidates. If the results stop making sense, " -"the broader agent could return to the target evidence or investigate the measurement " -"itself." +"If the models turn out to help at different stages, a useful arrangement " +"might be a broad agent with access to a specialist. Once a task becomes a " +"familiar compiler search, it could ask the specialist for candidates. If the" +" results stop making sense, the broader agent could return to the target " +"evidence or investigate the measurement itself." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:752 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"In that arrangement, specialization becomes a tool the agent can choose as the " -"investigation develops. The agent keeps the freedom to change direction that made the " -"earlier breakthroughs possible." +"In that arrangement, specialization becomes a tool the agent can choose as " +"the investigation develops. The agent keeps the freedom to change direction " +"that made the earlier breakthroughs possible." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:757 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"This follows naturally from the industrial shift I described in the previous essay. " -"Being able to run many more experiments changes how we organize the work. It also " -"gives us a reason to ask which decisions need broad judgment and which improve through" -" repeated experience with a particular craft." +"This follows naturally from the industrial shift I described in the previous" +" essay. Being able to run many more experiments changes how we organize the " +"work. It also gives us a reason to ask which decisions need broad judgment " +"and which improve through repeated experience with a particular craft." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:764 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"For now, the strongest general model has earned its place in my workflow by opening " -"problems I had left unresolved. Those successes are what make me want to examine the " -"work more closely: how much depended on the model's breadth, and how much could be " -"handled by a model trained in this particular kind of reconstruction?" +"For now, the strongest general model has earned its place in my workflow by " +"opening problems I had left unresolved. Those successes are what make me " +"want to examine the work more closely: how much depended on the model's " +"breadth, and how much could be handled by a model trained in this particular" +" kind of reconstruction?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:772 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}The repositories give us a way to test the question.{ph1} I would like to use " -"that record to build the comparison and see what we learn." +"{ph0}The repositories give us a way to test the question.{ph1} I would like " +"to use that record to build the comparison and see what we learn." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:782 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:783 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and experiment " -"context." +"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and " +"experiment context." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:790 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The examples describe historical function-level comparisons recorded in the linked " -"commits. Whole-game runtime checks are separate milestones. Source and matching " -"records were reviewed on 13 October 2026." +"The examples describe historical function-level comparisons recorded in the " +"linked commits. Whole-game runtime checks are separate milestones. Source " +"and matching records were reviewed on 13 October 2026." msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:796 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model used at the " -"time, so that label alone does not identify an individual run. Explicit model names in" -" the other cited commits establish their recorded attribution; the histories do not " -"contain uniform per-run cost or effort measurements." +"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model " +"used at the time, so that label alone does not identify an individual run. " +"Explicit model names in the other cited commits establish their recorded " +"attribution; the histories do not contain uniform per-run cost or effort " +"measurements." msgstr "" #. {ph0}: @@ -1310,12 +1394,12 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:805 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and " -"{ph4}complete cold reconstruction{ph5}." +"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and" +" {ph4}complete cold reconstruction{ph5}." msgstr "" #. {ph0}: @@ -1332,12 +1416,12 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:817 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, {ph4}Astra's " -"new graph{ph5} and its {ph6}accepted recompile replay{ph7}." +"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, " +"{ph4}Astra's new graph{ph5} and its {ph6}accepted recompile replay{ph7}." msgstr "" #. {ph0}: @@ -1354,12 +1438,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:833 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, {ph4}TH04 " -"player source and linker order{ph5} and {ph6}Luna's TH09 enemy-spawn closure{ph7}." +"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, " +"{ph4}TH04 player source and linker order{ph5} and {ph6}Luna's TH09 enemy-" +"spawn closure{ph7}." msgstr "" #. {ph0}: @@ -1376,19 +1461,21 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:849 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, {ph4}TH08 " -"numerical investigation{ph5} and {ph6}TH09 replay-save reconstruction{ph7}." +"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, " +"{ph4}TH08 numerical investigation{ph5} and {ph6}TH09 replay-save " +"reconstruction{ph7}." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:866 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"The proposed specialist and RL comparisons are future experiments. The project " -"histories motivate them; no trained specialist was evaluated for this essay." +"The proposed specialist and RL comparisons are future experiments. The " +"project histories motivate them; no trained specialist was evaluated for " +"this essay." msgstr "" #: website/public/blog/reverse-engineering-models/index.html:6 @@ -1399,31 +1486,31 @@ msgstr "" #: website/public/blog/reverse-engineering-models/index.html:7 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" -"What Touhou reconstruction taught me about general models, specialist models and " -"learning to propose better hypotheses from compiler feedback." +"What Touhou reconstruction taught me about general models, specialist models" +" and learning to propose better hypotheses from compiler feedback." msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:260 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:498 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "" -#: website/public/blog/reverse-engineering-models/index.html:891 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:109 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "" @@ -1432,141 +1519,142 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:201 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:206 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:211 +#: website/public/blog/touhou-reconstruction/index.html:215 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:216 +#: website/public/blog/touhou-reconstruction/index.html:220 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:221 +#: website/public/blog/touhou-reconstruction/index.html:225 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:226 +#: website/public/blog/touhou-reconstruction/index.html:230 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:231 +#: website/public/blog/touhou-reconstruction/index.html:235 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:243 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:244 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:333 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:334 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:338 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:339 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:343 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -1575,7 +1663,7 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:346 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -1584,40 +1672,40 @@ msgstr "" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:349 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:352 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:353 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:365 +#: website/public/blog/touhou-reconstruction/index.html:369 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." +"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:372 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -1625,7 +1713,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -1633,7 +1721,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -1641,7 +1729,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -1649,7 +1737,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:378 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -1657,7 +1745,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:379 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -1665,7 +1753,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:382 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -1673,61 +1761,65 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:383 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:388 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:389 +#: website/public/blog/touhou-reconstruction/index.html:393 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." +"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:396 +#: website/public/blog/touhou-reconstruction/index.html:400 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." +"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:403 +#: website/public/blog/touhou-reconstruction/index.html:407 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:409 +#: website/public/blog/touhou-reconstruction/index.html:413 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." +"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:418 +#: website/public/blog/touhou-reconstruction/index.html:422 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?" +"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:425 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "" @@ -1736,178 +1828,180 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:426 +#: website/public/blog/touhou-reconstruction/index.html:430 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:435 +#: website/public/blog/touhou-reconstruction/index.html:439 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:440 +#: website/public/blog/touhou-reconstruction/index.html:444 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:445 +#: website/public/blog/touhou-reconstruction/index.html:449 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:452 +#: website/public/blog/touhou-reconstruction/index.html:456 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:460 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:461 +#: website/public/blog/touhou-reconstruction/index.html:465 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." +"An oracle is software someone wrote. TH08 gave me a clear reminder of how " +"much can depend on that software." msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:465 +#: website/public/blog/touhou-reconstruction/index.html:469 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:471 +#: website/public/blog/touhou-reconstruction/index.html:475 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:478 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:484 +#: website/public/blog/touhou-reconstruction/index.html:488 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." +"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}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:491 +#: website/public/blog/touhou-reconstruction/index.html:495 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:497 +#: website/public/blog/touhou-reconstruction/index.html:501 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:508 +#: website/public/blog/touhou-reconstruction/index.html:512 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:513 +#: website/public/blog/touhou-reconstruction/index.html:517 #, 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." +"{ph0}The oracle needed reconstructing too.{ph1} Repairing it was part of " +"repairing the game." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:517 +#: website/public/blog/touhou-reconstruction/index.html:521 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:525 +#: website/public/blog/touhou-reconstruction/index.html:529 #, 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}" +"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}: -#: website/public/blog/touhou-reconstruction/index.html:534 +#: website/public/blog/touhou-reconstruction/index.html:538 #, 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}" +"{ph0}A successful batch gave us both recovered code and a better environment" +" for the next batch.{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:542 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "" @@ -1916,81 +2010,86 @@ msgstr "" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:543 +#: website/public/blog/touhou-reconstruction/index.html:547 #, 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:" +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:554 +#: website/public/blog/touhou-reconstruction/index.html:558 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…" +"The rise of grifters (AI decompilations and ports) in this space taking from" +" our work paints a bad image for future decompilation efforts…" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:560 +#: website/public/blog/touhou-reconstruction/index.html:564 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." +"contribution policy excludes pull requests produced primarily with AI. They " +"have put their free time into difficult work, and that work helped make my " +"continuation possible. I respect the effort behind it. The disagreement I " +"want to discuss is about how reconstruction should proceed and how a " +"contribution should be judged." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:569 +#: website/public/blog/touhou-reconstruction/index.html:573 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." +"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:576 +#: website/public/blog/touhou-reconstruction/index.html:580 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." +"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:581 +#: website/public/blog/touhou-reconstruction/index.html:585 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." +"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:588 +#: website/public/blog/touhou-reconstruction/index.html:592 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." +"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:594 +#: website/public/blog/touhou-reconstruction/index.html:598 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." +"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:602 +#: website/public/blog/touhou-reconstruction/index.html:606 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." +"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}: #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:608 +#: website/public/blog/touhou-reconstruction/index.html:612 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:626 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:627 +#: website/public/blog/touhou-reconstruction/index.html:631 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:635 +#: website/public/blog/touhou-reconstruction/index.html:639 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:642 +#: website/public/blog/touhou-reconstruction/index.html:646 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." +"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:648 +#: website/public/blog/touhou-reconstruction/index.html:652 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:655 +#: website/public/blog/touhou-reconstruction/index.html:659 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." +"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:661 +#: website/public/blog/touhou-reconstruction/index.html:665 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:667 +#: website/public/blog/touhou-reconstruction/index.html:671 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:675 +#: website/public/blog/touhou-reconstruction/index.html:679 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." +"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:683 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "" @@ -2100,55 +2204,59 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:684 +#: website/public/blog/touhou-reconstruction/index.html:688 #, 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." +"{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 "" -#: website/public/blog/touhou-reconstruction/index.html:693 +#: website/public/blog/touhou-reconstruction/index.html:697 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:699 +#: website/public/blog/touhou-reconstruction/index.html:703 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." +"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:705 +#: website/public/blog/touhou-reconstruction/index.html:709 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:713 +#: website/public/blog/touhou-reconstruction/index.html:717 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:719 +#: website/public/blog/touhou-reconstruction/index.html:723 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." +"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 "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:724 +#: website/public/blog/touhou-reconstruction/index.html:728 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:737 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:738 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" -msgid "Once a reconstruction works, I want someone else to be able to understand it." +msgid "" +"Once a reconstruction works, I want someone else to be able to understand " +"it." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:742 +#: website/public/blog/touhou-reconstruction/index.html:746 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:748 +#: website/public/blog/touhou-reconstruction/index.html:752 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:756 +#: website/public/blog/touhou-reconstruction/index.html:760 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:765 +#: website/public/blog/touhou-reconstruction/index.html:769 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:772 +#: website/public/blog/touhou-reconstruction/index.html:776 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:779 +#: website/public/blog/touhou-reconstruction/index.html:783 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:788 +#: website/public/blog/touhou-reconstruction/index.html:792 #, 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." +"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}: -#: website/public/blog/touhou-reconstruction/index.html:795 +#: website/public/blog/touhou-reconstruction/index.html:799 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:803 +#: website/public/blog/touhou-reconstruction/index.html:807 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:810 +#: website/public/blog/touhou-reconstruction/index.html:814 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:817 +#: website/public/blog/touhou-reconstruction/index.html:821 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:828 +#: website/public/blog/touhou-reconstruction/index.html:832 #, 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." +"{ph0}Exact reconstruction gives us a reference. Semantic reconstruction " +"makes the recovered knowledge usable.{ph1} A port can then build on both." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:837 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:838 +#: website/public/blog/touhou-reconstruction/index.html:842 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." +"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:845 +#: website/public/blog/touhou-reconstruction/index.html:849 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." +"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:852 +#: website/public/blog/touhou-reconstruction/index.html:856 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." +"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:859 +#: website/public/blog/touhou-reconstruction/index.html:863 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:866 +#: website/public/blog/touhou-reconstruction/index.html:870 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." +"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 "" -#. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:873 +#: website/public/blog/touhou-reconstruction/index.html:877 #, 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:890 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:896 +#: website/public/blog/touhou-reconstruction/index.html:900 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." +"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}: +#. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:902 +#: website/public/blog/touhou-reconstruction/index.html:906 #, 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." +"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 "" -#: website/public/blog/touhou-reconstruction/index.html:912 +#: website/public/blog/touhou-reconstruction/index.html:916 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." +"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:920 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:921 +#: website/public/blog/touhou-reconstruction/index.html:925 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." +"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:927 +#: website/public/blog/touhou-reconstruction/index.html:931 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." +"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}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:934 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -2446,25 +2567,26 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:941 +#: website/public/blog/touhou-reconstruction/index.html:945 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." +"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:949 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:950 +#: website/public/blog/touhou-reconstruction/index.html:954 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." +"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 "" #. {ph0}: @@ -2485,15 +2607,16 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/529eb1a3afa05ae36467731eaccb12e3e50e132f" #. > #. {ph9}: -#. {ph10}: +#. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:958 +#: website/public/blog/touhou-reconstruction/index.html:962 #, 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}." +"{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}: @@ -2518,13 +2641,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:981 +#: website/public/blog/touhou-reconstruction/index.html:985 #, 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}." +"{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}: @@ -2533,12 +2656,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1004 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, 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." +"{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}: @@ -2553,12 +2677,13 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1013 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, 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}." +"{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}: @@ -2571,48 +2696,52 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1027 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, 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}." +"{ph0}Semantic reconstruction:{ph1} {ph2}TH08's readability playbook{ph3} and" +" {ph4}the Factory's phase order and two validation paths{ph5}." msgstr "" #. {ph0}: #. {ph1}: -#. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1039 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, 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." +"{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}: +#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/agent- +#. autonomy.md" > #. {ph3}: #. {ph4}: +#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- +#. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1048 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, 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." +"{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}: -#: website/public/blog/touhou-reconstruction/index.html:1063 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -2626,76 +2755,76 @@ msgstr "" #: 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." +"N0zoM1z0 reflects on manual reverse engineering, Touhou reconstruction with " +"AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04." msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:357 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:371 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "" -#: website/public/blog/touhou-reconstruction/index.html:1088 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "" -#: website/public/contributors/index.html:110 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "" -#: website/public/contributors/index.html:204 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "" -#: website/public/contributors/index.html:205 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "" -#: website/public/contributors/index.html:210 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "" -#: website/public/contributors/index.html:215 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "" -#: website/public/contributors/index.html:227 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "" @@ -2703,13 +2832,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1114 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "" -#: website/public/contributors/index.html:1119 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "" @@ -2721,20 +2850,21 @@ msgstr "" #: website/public/contributors/index.html:7 msgctxt "page:contributors/index.html" -msgid "Meet the people who contribute code, documentation, tests and ideas to REA." +msgid "" +"Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "" -#: website/public/contributors/index.html:228 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "" -#: website/public/contributors/index.html:1139 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "" -#: website/public/examples/dino-lab/index.html:110 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "" @@ -2743,18 +2873,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:202 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "" -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "" -#: website/public/examples/dino-lab/index.html:206 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "" @@ -2763,24 +2893,24 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:207 +#: website/public/examples/dino-lab/index.html:211 #, 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}" +"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 "" -#: website/public/examples/dino-lab/index.html:216 -#: website/public/examples/dino-lab/index.html:215 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -2788,7 +2918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -2796,7 +2926,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -2804,73 +2934,73 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:221 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "" -#: website/public/examples/dino-lab/index.html:226 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "" -#: website/public/examples/dino-lab/index.html:227 +#: website/public/examples/dino-lab/index.html:231 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." +"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 "" -#: website/public/examples/dino-lab/index.html:233 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:265 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "" -#: website/public/examples/dino-lab/index.html:268 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "" -#: website/public/examples/dino-lab/index.html:269 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "" -#: website/public/examples/dino-lab/index.html:272 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "" -#: website/public/examples/dino-lab/index.html:282 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/examples/dino-lab/index.html:286 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/examples/dino-lab/index.html:289 +#: website/public/examples/dino-lab/index.html:293 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:294 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Enable JavaScript to play the reconstruction. The code and explanation above remain " -"readable." +"Enable JavaScript to play the reconstruction. The code and explanation above" +" remain readable." msgstr "" -#: website/public/examples/dino-lab/index.html:302 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "" @@ -2878,15 +3008,16 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:303 +#: website/public/examples/dino-lab/index.html:307 #, 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:" +"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 "" -#: website/public/examples/dino-lab/index.html:313 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "" @@ -2894,97 +3025,99 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:319 +#: website/public/examples/dino-lab/index.html:323 #, 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." +"The settings are {ph0}, {ph1} and {ph2}. The game runs this branch on an " +"update without a collision." msgstr "" -#: website/public/examples/dino-lab/index.html:324 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:327 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "" -#: website/public/examples/dino-lab/index.html:330 -#: website/public/examples/dino-lab/index.html:429 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "" -#: website/public/examples/dino-lab/index.html:343 +#: website/public/examples/dino-lab/index.html:347 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." +"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 "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:349 +#: website/public/examples/dino-lab/index.html:353 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}" msgstr "" -#: website/public/examples/dino-lab/index.html:357 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:358 +#: website/public/examples/dino-lab/index.html:362 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." +"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:367 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "" -#: website/public/examples/dino-lab/index.html:368 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "" -#: website/public/examples/dino-lab/index.html:369 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:396 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "" -#: website/public/examples/dino-lab/index.html:399 +#: website/public/examples/dino-lab/index.html:403 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." +"Values rounded to three decimals. The branch checks before adding, so the " +"final increment can take speed just above 13." msgstr "" -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:407 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2993,16 +3126,18 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:411 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" -msgid "Follow the {ph0}browser connection steps{ph1}, using {ph2} as the page URL." +msgid "" +"Follow the {ph0}browser connection steps{ph1}, using {ph2} as the page URL." msgstr "" -#: website/public/examples/dino-lab/index.html:418 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Give your agent the page URL and local debugging endpoint, then copy this prompt." +"Give your agent the page URL and local debugging endpoint, then copy this " +"prompt." msgstr "" #. {ph0}: -#: website/public/examples/dino-lab/index.html:425 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3025,22 +3160,23 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:438 +#: website/public/examples/dino-lab/index.html:442 #, 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}" +"{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}: -#: website/public/examples/dino-lab/index.html:447 +#: website/public/examples/dino-lab/index.html:451 #, 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}" +"Ask a follow-up: {ph0}“Where is jump height calculated? Add a jump-height " +"control to the new version.”{ph1}" msgstr "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:454 +#: website/public/examples/dino-lab/index.html:458 #, 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." +"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 "" #: website/public/examples/dino-lab/index.html:6 @@ -3064,67 +3201,68 @@ msgstr "" #: 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." +"Read the dinosaur game’s speed rule with REA, rebuild it, then change the " +"speed and play." msgstr "" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "" -#: website/public/examples/dino-lab/index.html:255 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" -"Dinosaur mini-game. Use the Jump button or press Space while the game is focused." +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." msgstr "" -#: website/public/examples/dino-lab/index.html:330 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "" -#: website/public/examples/dino-lab/index.html:429 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/examples/dino-lab/index.html:483 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "" -#: website/public/faq/index.html:109 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "" -#: website/public/faq/index.html:202 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "" -#: website/public/faq/index.html:203 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "" -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -3132,7 +3270,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -3140,7 +3278,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:211 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -3148,169 +3286,173 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:212 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "" -#: website/public/faq/index.html:221 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "" -#: website/public/faq/index.html:224 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "" #. {ph0}: Node.js -#: website/public/faq/index.html:225 +#: website/public/faq/index.html:229 #, 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." +"With {ph0} and npm available, run setup, choose your coding agent and review" +" the proposed changes." msgstr "" -#: website/public/faq/index.html:232 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "" -#: website/public/faq/index.html:233 website/public/faq/index.html:274 -#: website/public/faq/index.html:292 website/public/faq/index.html:376 -#: website/public/faq/index.html:423 website/public/faq/index.html:463 -#: website/public/faq/index.html:483 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:244 +#: website/public/faq/index.html:248 #, 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." +"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 "" -#: website/public/faq/index.html:253 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "" -#: website/public/faq/index.html:254 +#: website/public/faq/index.html:258 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:261 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "" -#: website/public/faq/index.html:266 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "" -#: website/public/faq/index.html:267 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" -msgid "REA releases frequently, including bug fixes. If you installed the CLI with npm:" +msgid "" +"REA releases frequently, including bug fixes. If you installed the CLI with " +"npm:" msgstr "" -#: website/public/faq/index.html:273 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "" #. {ph0}: npx -#: website/public/faq/index.html:285 +#: website/public/faq/index.html:289 #, 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:" +"Follow the setup refresh command printed by the update. If you set up your " +"agent through {ph0}, run:" msgstr "" -#: website/public/faq/index.html:291 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "" #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:303 +#: website/public/faq/index.html:307 #, 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." +"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 "" -#: website/public/faq/index.html:311 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:314 +#: website/public/faq/index.html:318 #, 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." +"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 "" -#: website/public/faq/index.html:325 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "" -#: website/public/faq/index.html:328 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "" -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:331 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode and " -"references." +"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode " +"and references." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:336 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source locations." +"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source " +"locations." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:341 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -3318,99 +3460,101 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:346 +#: website/public/faq/index.html:350 #, 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." +"REA also has workflows for managed assemblies, Android APKs, firmware and " +"packaged resources. {ph0}See the case studies{ph1} for worked " +"investigations." msgstr "" -#: website/public/faq/index.html:354 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "" -#: website/public/faq/index.html:355 +#: website/public/faq/index.html:359 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:360 +#: website/public/faq/index.html:364 #, 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}." +"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 "" -#: website/public/faq/index.html:368 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "" -#: website/public/faq/index.html:369 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" -"Yes. The CLI uses the same analysis workflows. For a local JavaScript or Electron app:" +"Yes. The CLI uses the same analysis workflows. For a local JavaScript or " +"Electron app:" msgstr "" -#: website/public/faq/index.html:375 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:388 +#: website/public/faq/index.html:392 #, 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." +"Replace the path with an extracted application folder or ASAR file. {ph0}Use" +" the CLI{ph1} for installation options." msgstr "" -#: website/public/faq/index.html:395 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "" -#: website/public/faq/index.html:396 +#: website/public/faq/index.html:400 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." +"Native analysis returns assembly and pseudocode, with calls, references and " +"relevant constants. JavaScript analysis returns modules, their relationships" +" and source locations." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:401 +#: website/public/faq/index.html:405 #, 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." +"implementation. The {ph0}DX-Ball calculation{ph1} and {ph2}CTF flag " +"checker{ph3} show how that process works." msgstr "" -#: website/public/faq/index.html:412 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "" -#: website/public/faq/index.html:413 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" -"Give it a local target and one behavior to investigate. For a JavaScript or Electron " -"app:" +"Give it a local target and one behavior to investigate. For a JavaScript or " +"Electron app:" msgstr "" #. {ph0}: -#: website/public/faq/index.html:419 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3434,44 +3578,44 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:432 +#: website/public/faq/index.html:436 #, 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}" +"{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}: -#: website/public/faq/index.html:442 +#: website/public/faq/index.html:446 #, 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." +"Replace the path with your target. The {ph0}guides{ph1} provide prompts for " +"native, Electron and browser examples." msgstr "" -#: website/public/faq/index.html:452 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "" -#: website/public/faq/index.html:455 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "" #. {ph0}: doctor -#: website/public/faq/index.html:456 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" -"Restart or reconnect your agent after setup. Check its REA registration with {ph0}; " -"for Codex:" +"Restart or reconnect your agent after setup. Check its REA registration with" +" {ph0}; for Codex:" msgstr "" -#: website/public/faq/index.html:462 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "" @@ -3479,89 +3623,90 @@ msgstr "" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:474 +#: website/public/faq/index.html:478 #, 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:" +"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 "" -#: website/public/faq/index.html:482 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:494 +#: website/public/faq/index.html:498 #, 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}." +"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 "" -#: website/public/faq/index.html:502 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:503 +#: website/public/faq/index.html:507 #, 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}." +"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 "" -#: website/public/faq/index.html:512 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:513 +#: website/public/faq/index.html:517 #, 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." +"{ph0}Update REA{ph1}, restart your agent and retry the same task. A recent " +"release may already fix the problem." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:517 +#: website/public/faq/index.html:521 #, 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." +"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 "" -#: website/public/faq/index.html:531 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "" -#: website/public/faq/index.html:534 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "" -#: website/public/faq/index.html:535 +#: website/public/faq/index.html:539 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." +"REA analyzes targets on your machine. Your agent receives the results, and " +"its model provider's data policy applies to those results." msgstr "" -#: website/public/faq/index.html:542 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "" @@ -3570,23 +3715,24 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:543 +#: website/public/faq/index.html:547 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:555 +#: website/public/faq/index.html:559 #, 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}." +"Bug reports, feature requests, documentation and code improvements are " +"welcome too. You can also discuss an example in the {ph0}community{ph1}." msgstr "" #: website/public/faq/index.html:6 @@ -3597,102 +3743,102 @@ msgstr "" #: 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." +"Answers to common REA questions: installation, updates, analysis tools, " +"coding agents, troubleshooting and sharing examples." msgstr "" -#: website/public/faq/index.html:206 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "" -#: website/public/faq/index.html:215 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "" -#: website/public/faq/index.html:233 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "" -#: website/public/faq/index.html:274 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "" -#: website/public/faq/index.html:292 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "" -#: website/public/faq/index.html:376 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "" -#: website/public/faq/index.html:423 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "" -#: website/public/faq/index.html:463 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "" -#: website/public/faq/index.html:483 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "" -#: website/public/faq/index.html:581 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "" -#: website/public/first-investigation/index.html:109 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:201 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "" #. {ph0}:
-#: website/public/first-investigation/index.html:204 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "" -#: website/public/first-investigation/index.html:205 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" -"Use REA to inspect a small app, follow its Export notes button and check one detail " -"yourself." +"Use REA to inspect a small app, follow its Export notes button and check one" +" detail yourself." msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:209 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -3700,7 +3846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -3708,7 +3854,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -3716,7 +3862,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:221 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -3724,13 +3870,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:222 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "" -#: website/public/first-investigation/index.html:227 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "" @@ -3738,12 +3884,12 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:228 +#: website/public/first-investigation/index.html:232 #, 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}." +"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 "" #. {ph0}: -#: website/public/first-investigation/index.html:236 -#: website/public/first-investigation/index.html:286 -#: website/public/first-investigation/index.html:408 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/first-investigation/index.html:241 -#: website/public/first-investigation/index.html:263 -#: website/public/first-investigation/index.html:291 -#: website/public/first-investigation/index.html:413 -#: website/public/first-investigation/index.html:454 -#: website/public/first-investigation/index.html:471 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "" @@ -3779,88 +3925,93 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:250 +#: website/public/first-investigation/index.html:254 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:260 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "" -#: website/public/first-investigation/index.html:272 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" -"Review the plan, approve the setup, then restart your agent. Already connected? " -"Continue below." +"Review the plan, approve the setup, then restart your agent. Already " +"connected? Continue below." msgstr "" -#: website/public/first-investigation/index.html:278 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:279 +#: website/public/first-investigation/index.html:283 #, 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." +"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 "" #. {ph0}: #. {ph2}: -#. {ph3}: https://rea.tools/examples/notes-example.zip +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip #. {ph4}: notes.csv #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:300 +#: website/public/first-investigation/index.html:304 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:314 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" -"Your agent downloads the files and gives the unpacked folder to REA for inspection." +"Your agent downloads the files and gives the unpacked folder to REA for " +"inspection." msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:318 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:326 +#: website/public/first-investigation/index.html:330 #, 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." +"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 "" -#: website/public/first-investigation/index.html:333 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "" -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -3869,15 +4020,16 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:336 +#: website/public/first-investigation/index.html:340 #, 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}." +"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 "" -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "" @@ -3890,7 +4042,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:346 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -3904,12 +4056,12 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:354 +#: website/public/first-investigation/index.html:358 #, 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}" +"{ph0}Bridge · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}Sends a named message to the " +"main process.{ph7}" msgstr "" #. {ph0}: @@ -3921,58 +4073,58 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:362 +#: website/public/first-investigation/index.html:366 #, 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}" +"{ph0}Handler · {ph1}{ph2}{ph3}Write {ph4}{ph5}{ph6}Calls the formatter in " +"{ph7} and writes the file.{ph8}" msgstr "" -#: website/public/first-investigation/index.html:373 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" -"REA’s static analysis pairs the message with its handler. The destination is read from" -" code." +"REA’s static analysis pairs the message with its handler. The destination is" +" read from code." msgstr "" #. {ph0}: main.js -#: website/public/first-investigation/index.html:380 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" msgstr "" -#: website/public/first-investigation/index.html:381 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "" -#: website/public/first-investigation/index.html:389 +#: website/public/first-investigation/index.html:393 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." +"The file path, formatter and write call are together in this handler. Ask " +"your agent to show these lines if its answer leaves them out." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:394 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "" -#: website/public/first-investigation/index.html:401 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "" -#: website/public/first-investigation/index.html:402 +#: website/public/first-investigation/index.html:406 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?" +"A comma separates CSV columns. What happens when a note title itself " +"contains a comma or quotation marks?" msgstr "" #. {ph0}: #. {ph7}: -#: website/public/first-investigation/index.html:422 +#: website/public/first-investigation/index.html:426 #, 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}" +"{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 "" -#: website/public/first-investigation/index.html:435 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:440 +#: website/public/first-investigation/index.html:444 #, 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}." +"The title stays in one quoted field; each quotation mark is doubled. This " +"checks the formatter directly with {ph0}." msgstr "" -#: website/public/first-investigation/index.html:446 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:447 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "" -#: website/public/first-investigation/index.html:488 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "" -#: website/public/first-investigation/index.html:491 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" -msgid "What happens if the file can’t be written? Follow the error back to the page." +msgid "" +"What happens if the file can’t be written? Follow the error back to the " +"page." msgstr "" -#: website/public/first-investigation/index.html:496 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" -"Or give your agent an app of your own and ask about one button, file or behavior." +"Or give your agent an app of your own and ask about one button, file or " +"behavior." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:501 +#: website/public/first-investigation/index.html:505 #, 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}" +"{ph0}How Notion copies text and HTML{ph1}{ph2}Follow a clipboard feature in " +"a packaged Electron app.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:507 +#: website/public/first-investigation/index.html:511 #, 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}" +"{ph0}How DX-Ball calculates sound panning{ph1}{ph2}Read the original " +"instructions and the reconstruction’s checks.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:515 +#: website/public/first-investigation/index.html:519 #, 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}" +"{ph0}Troubleshoot setup or analysis{ph1}{ph2}Update REA and check the " +"connection if you get stuck.{ph3}" msgstr "" #: website/public/first-investigation/index.html:6 @@ -4084,93 +4239,95 @@ msgstr "" #: 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." +"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 "" -#: website/public/first-investigation/index.html:215 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "" -#: website/public/first-investigation/index.html:241 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/first-investigation/index.html:263 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "" -#: website/public/first-investigation/index.html:291 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/first-investigation/index.html:413 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "" -#: website/public/first-investigation/index.html:454 -#: website/public/first-investigation/index.html:471 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "" -#: website/public/first-investigation/index.html:542 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "" -#: website/public/get-started/index.html:109 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "" -#: website/public/get-started/index.html:202 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "" -#: website/public/get-started/index.html:203 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" -"Set up your computer and coding agent, connect REA, then investigate a small app." +"Set up your computer and coding agent, connect REA, then investigate a small" +" app." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:207 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"New to this? Follow the four steps below. Already have an agent? Go straight to " -"{ph0}Connect REA{ph1}." +"New to this? Follow the four steps below. Already have an agent? Go straight" +" to {ph0}Connect REA{ph1}." msgstr "" -#: website/public/get-started/index.html:214 website/public/get-started/index.html:213 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -4178,7 +4335,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -4186,7 +4343,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -4194,7 +4351,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -4202,7 +4359,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" @@ -4210,7 +4367,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:221 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -4218,25 +4375,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:222 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" msgstr "" -#: website/public/get-started/index.html:227 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "" -#: website/public/get-started/index.html:228 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" -"Use the computer where your target files are stored. A local coding agent can read " -"those files and run tools for you." +"Use the computer where your target files are stored. A local coding agent " +"can read those files and run tools for you." msgstr "" -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "" @@ -4245,11 +4402,12 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:235 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Windows:{ph1} open the Start menu, type {ph2}PowerShell{ph3} and press Enter." +"{ph0}Windows:{ph1} open the Start menu, type {ph2}PowerShell{ph3} and press " +"Enter." msgstr "" #. {ph0}: @@ -4258,10 +4416,11 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:239 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." +msgid "" +"{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter." msgstr "" #. {ph0}: @@ -4269,7 +4428,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:243 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -4282,91 +4441,110 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:248 +#: website/public/get-started/index.html:252 #, 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." +"Paste a command with {ph0} {ph1} (macOS: {ph2} {ph3}; Linux terminals: {ph4}" +" {ph5} {ph6}), then press Enter." msgstr "" -#: website/public/get-started/index.html:253 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" -"Commands go in the terminal. Prompts labeled “Your coding agent” go in the agent's " -"chat." +"Commands go in the terminal. Prompts labeled “Your coding agent” go in the " +"agent's chat." msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:258 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with " -"{ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" #. {ph0}: Node.js -#: website/public/get-started/index.html:264 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" msgstr "" -#: website/public/get-started/index.html:267 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "" -#: website/public/get-started/index.html:270 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "" -#: website/public/get-started/index.html:271 website/public/get-started/index.html:294 -#: website/public/get-started/index.html:324 website/public/get-started/index.html:349 -#: website/public/get-started/index.html:372 website/public/get-started/index.html:387 -#: website/public/get-started/index.html:421 website/public/get-started/index.html:452 -#: website/public/get-started/index.html:466 website/public/get-started/index.html:484 -#: website/public/get-started/index.html:536 website/public/get-started/index.html:550 -#: website/public/get-started/index.html:582 website/public/get-started/index.html:611 -#: website/public/get-started/index.html:746 website/public/get-started/index.html:776 -#: website/public/get-started/index.html:801 website/public/get-started/index.html:816 -#: website/public/get-started/index.html:864 website/public/get-started/index.html:897 -#: website/public/get-started/index.html:1049 website/public/get-started/index.html:1111 -#: website/public/get-started/index.html:1134 website/public/get-started/index.html:1158 -#: website/public/get-started/index.html:1206 website/public/get-started/index.html:1281 -#: website/public/get-started/index.html:1307 website/public/get-started/index.html:1324 -#: website/public/get-started/index.html:1567 website/public/get-started/index.html:1626 -#: website/public/get-started/index.html:1645 website/public/get-started/index.html:1667 -#: website/public/get-started/index.html:1710 website/public/get-started/index.html:1740 -#: website/public/get-started/index.html:1761 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:283 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an older" -" version or \"not recognized\" / \"command not found\", install {ph1} 24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" #. {ph0}: node -v -#: website/public/get-started/index.html:305 +#: website/public/get-started/index.html:309 #, 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}." +"Type Y if asked to accept the terms. Close PowerShell, open it again, then " +"run {ph0}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:309 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -4377,17 +4555,17 @@ msgstr "" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:315 +#: website/public/get-started/index.html:319 #, 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}, use {ph3} instead. For npm, use {ph4}:" +"If PowerShell later says {ph0}\"running scripts is disabled on this " +"system\"{ph1} when you run {ph2}, use {ph3} instead. For npm, use {ph4}:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:338 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -4395,124 +4573,126 @@ msgid "" "(.pkg){ph1}, open it and follow the installer. Then reopen Terminal." msgstr "" -#: website/public/get-started/index.html:345 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:364 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Install curl and unzip first if they are missing. On Debian or Ubuntu, run {ph0}; on " -"other distributions, use your package manager." +"Install curl and unzip first if they are missing. On Debian or Ubuntu, run " +"{ph0}; on other distributions, use your package manager." msgstr "" -#: website/public/get-started/index.html:383 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:400 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Your distribution's own {ph0} package is often older than 22.23.4, so check {ph1} if " -"you use it instead." +"Your distribution's own {ph0} package is often older than 22.23.4, so check " +"{ph1} if you use it instead." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:406 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Prefer a regular installer? Download the LTS version from {ph0}nodejs.org{ph1}." +msgid "" +"Prefer a regular installer? Download the LTS version from " +"{ph0}nodejs.org{ph1}." msgstr "" -#: website/public/get-started/index.html:413 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "" -#: website/public/get-started/index.html:414 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" -#: website/public/get-started/index.html:433 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" -"Keep this terminal open for the next step. If you already have a working folder, open " -"it instead." +"Keep this terminal open for the next step. If you already have a working " +"folder, open it instead." msgstr "" -#: website/public/get-started/index.html:440 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "" -#: website/public/get-started/index.html:441 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" -"Your agent is the AI you talk to. REA supplies the inspection tools it uses. Pick one " -"client below; open its instructions if you haven't used it before." +"Your agent is the AI you talk to. REA supplies the inspection tools it uses." +" Pick one client below; open its instructions if you haven't used it before." msgstr "" -#: website/public/get-started/index.html:447 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "" -#: website/public/get-started/index.html:448 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "" -#: website/public/get-started/index.html:477 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" -"After installation, reopen your terminal and return to the working folder. Then start " -"Codex:" +"After installation, reopen your terminal and return to the working folder. " +"Then start Codex:" msgstr "" -#: website/public/get-started/index.html:495 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" -"Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to the " -"terminal. When the message box appears, continue to step 3." +"Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " +"the terminal. When the message box appears, continue to step 3." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:500 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "" -#: website/public/get-started/index.html:509 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "" -#: website/public/get-started/index.html:512 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "" -#: website/public/get-started/index.html:513 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" -"Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open the agent " -"chat; in VS Code, set up GitHub Copilot first." +"Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " +"the agent chat; in VS Code, set up GitHub Copilot first." msgstr "" #. {ph0}: @@ -4521,61 +4701,62 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:519 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Cursor setup{ph1} · {ph2}Windsurf / Devin Desktop setup{ph3} · {ph4}VS Code and " -"Copilot setup{ph5}" +"{ph0}Cursor setup{ph1} · {ph2}Windsurf / Devin Desktop setup{ph3} · {ph4}VS " +"Code and Copilot setup{ph5}" msgstr "" -#: website/public/get-started/index.html:531 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "" -#: website/public/get-started/index.html:532 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "" #. {ph0}: claude -#: website/public/get-started/index.html:561 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Reopen your terminal, return to your working folder and run {ph0}. Follow the sign-in " -"prompts. Access uses an eligible Claude subscription or a configured API account." +"Reopen your terminal, return to your working folder and run {ph0}. Follow " +"the sign-in prompts. Access uses an eligible Claude subscription or a " +"configured API account." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:566 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "" -#: website/public/get-started/index.html:573 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "" -#: website/public/get-started/index.html:574 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" -"Install Claude Desktop on Windows or macOS and sign in. Quit it completely, then run " -"this command in a terminal you opened outside Claude:" +"Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " +"then run this command in a terminal you opened outside Claude:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:593 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Review and approve the plan, reopen Claude, then {ph0}check the connection in step " -"3{ph1}." +"Review and approve the plan, reopen Claude, then {ph0}check the connection " +"in step 3{ph1}." msgstr "" #. {ph0}: @@ -4583,55 +4764,57 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:597 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection details{ph3}" +msgid "" +"{ph0}Download Claude Desktop{ph1} · {ph2}Claude Desktop connection " +"details{ph3}" msgstr "" -#: website/public/get-started/index.html:607 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:622 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Run {ph0} in your working folder. Use {ph1} in its chat to connect your model account," -" then select a model." +"Run {ph0} in your working folder. Use {ph1} in its chat to connect your " +"model account, then select a model." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:627 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "" -#: website/public/get-started/index.html:634 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "" #. {ph0}: --client -#: website/public/get-started/index.html:635 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"The npm 6.4.0 release supports the clients below. Use the ID with {ph0} when choosing " -"a client explicitly." +"The npm 6.4.0 release supports the clients below. Use the ID with {ph0} when" +" choosing a client explicitly." msgstr "" -#: website/public/get-started/index.html:643 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "" -#: website/public/get-started/index.html:644 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "" @@ -4641,58 +4824,59 @@ msgstr "" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:719 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) and DeepSeek Harness" -" ({ph4}) are available on repository main; use a source build or a release containing " -"those integrations." +"Qoder ({ph0}), Factory Droid ({ph1}), Trae ({ph2}), ZCode ({ph3}) and " +"DeepSeek Harness ({ph4}) are available on repository main; use a source " +"build or a release containing those integrations." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- +#. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:726 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release availability{ph3}" +"{ph0}Client configuration and troubleshooting{ph1} · {ph2}Release " +"availability{ph3}" msgstr "" -#: website/public/get-started/index.html:738 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:739 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"In Grok Bot's chat, ask it to add a custom MCP server named {ph0} using this command " -"on the Bot's computer:" +"In Grok Bot's chat, ask it to add a custom MCP server named {ph0} using this" +" command on the Bot's computer:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:757 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:767 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "" -#: website/public/get-started/index.html:768 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -4705,7 +4889,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:771 +#: website/public/get-started/index.html:775 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4718,56 +4902,58 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:785 +#: website/public/get-started/index.html:789 #, 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}" +"{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 "" -#: website/public/get-started/index.html:797 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "" -#: website/public/get-started/index.html:812 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "" #. {ph0}: y -#: website/public/get-started/index.html:827 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If npm asks to download the package, type {ph0} and press Enter. In REA's client list," -" use the arrow keys to move, Space to select your client and Enter to continue." +"If npm asks to download the package, type {ph0} and press Enter. In REA's " +"client list, use the arrow keys to move, Space to select your client and " +"Enter to continue." msgstr "" -#: website/public/get-started/index.html:833 +#: website/public/get-started/index.html:837 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." +"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 "" -#: website/public/get-started/index.html:838 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" -"MCP is the connection that lets your agent call REA. The skill gives it a workflow for" -" investigating software." +"MCP is the connection that lets your agent call REA. The skill gives it a " +"workflow for investigating software." msgstr "" -#: website/public/get-started/index.html:842 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" -"For the first exercise, you can skip the optional Hopper installation. Restart your " -"client when setup finishes." +"For the first exercise, you can skip the optional Hopper installation. " +"Restart your client when setup finishes." msgstr "" -#: website/public/get-started/index.html:847 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "" @@ -4776,56 +4962,58 @@ msgstr "" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:848 +#: website/public/get-started/index.html:852 #, 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." +"{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}: -#: website/public/get-started/index.html:855 +#: website/public/get-started/index.html:859 #, 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." +"{ph0}Terminal agents{ph1} (Claude Code, Codex, Gemini CLI): exit the session" +" and start it again." msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:875 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Replace {ph0} with your client's setup ID. A successful check reports {ph1}. Then ask " -"your agent:" +"Replace {ph0} with your client's setup ID. A successful check reports {ph1}." +" Then ask your agent:" msgstr "" -#: website/public/get-started/index.html:881 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" -#: website/public/get-started/index.html:888 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:889 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/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." +"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 "" -#: website/public/get-started/index.html:896 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "" @@ -4833,21 +5021,23 @@ msgstr "" #. {ph0}: #. {ph2}: -#. {ph3}: https://rea.tools/examples/notes-example.zip +#. {ph3}: https://rea.tools/examples/notes- +#. example.zip #. {ph4}: notes.csv #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:906 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/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}" +"{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 "" -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "" @@ -4856,55 +5046,56 @@ msgstr "" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:922 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/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}." +"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}: #. {ph1}: -#: website/public/get-started/index.html:929 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "" -#: website/public/get-started/index.html:935 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:938 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" #. {ph0}: notes-example -#: website/public/get-started/index.html:946 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/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." +"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}: /absolute/path/to/app -#: website/public/get-started/index.html:952 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Use REA to inspect the app at {ph0}. Find how it exports data and show the relevant " -"files and lines." +"Use REA to inspect the app at {ph0}. Find how it exports data and show the " +"relevant files and lines." msgstr "" -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "" @@ -4913,170 +5104,175 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:961 +#: website/public/get-started/index.html:965 #, 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." +"{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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:966 +#: website/public/get-started/index.html:970 #, 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}." +"{ph0}macOS:{ph1} in Finder, right-click the folder, hold Option and choose " +"{ph2}Copy \"…\" as Pathname{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:970 +#: website/public/get-started/index.html:974 #, 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." +"{ph0}Any system:{ph1} drag the folder into a terminal window and its path " +"appears." msgstr "" -#: website/public/get-started/index.html:975 website/public/get-started/index.html:1733 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:982 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "" -#: website/public/get-started/index.html:983 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" -"Choose the section for your target. A provider is the local analysis tool REA uses for" -" that kind of software." +"Choose the section for your target. A provider is the local analysis tool " +"REA uses for that kind of software." msgstr "" -#: website/public/get-started/index.html:988 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "" -#: website/public/get-started/index.html:991 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" -"Install one analysis tool on the computer running REA. The host is your operating " -"system; the target is the program you want to inspect." +"Install one analysis tool on the computer running REA. The host is your " +"operating system; the target is the program you want to inspect." msgstr "" -#: website/public/get-started/index.html:1000 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "" -#: website/public/get-started/index.html:1011 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "" -#: website/public/get-started/index.html:1015 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "" -#: website/public/get-started/index.html:1022 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "" -#: website/public/get-started/index.html:1023 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "" -#: website/public/get-started/index.html:1029 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "" -#: website/public/get-started/index.html:1030 +#: website/public/get-started/index.html:1034 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." +"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 "" -#: website/public/get-started/index.html:1035 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" -"Choose Hopper in setup and review its separate installation plan. On macOS, choose " -"demo mode or activate your license when Hopper first opens. On Linux, setup prepares " -"the supported demo and its private display." +"Choose Hopper in setup and review its separate installation plan. On macOS, " +"choose demo mode or activate your license when Hopper first opens. On Linux," +" setup prepares the supported demo and its private display." msgstr "" -#: website/public/get-started/index.html:1041 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" -"Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or Omarchy. " -"Hopper is commercial software; its demo has vendor-defined limits." +"Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " +"Omarchy. Hopper is commercial software; its demo has vendor-defined limits." msgstr "" -#: website/public/get-started/index.html:1060 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" -"If macOS asks for Automation permission, allow the app that starts REA in System " -"Settings → Privacy & Security → Automation, then retry." +"If macOS asks for Automation permission, allow the app that starts REA in " +"System Settings → Privacy & Security → Automation, then retry." msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1065 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "" -#: website/public/get-started/index.html:1073 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "" -#: website/public/get-started/index.html:1077 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" -"Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the package " -"matching your computer's architecture." +"Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " +"package matching your computer's architecture." msgstr "" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1082 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Download Ghidra 12.1.4 from the release's Assets list and extract the {ph0} archive. " -"Choose the release archive, not “Source code”." +"Download Ghidra 12.1.4 from the release's Assets list and extract the {ph0} " +"archive. Choose the release archive, not “Source code”." msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1087 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Find the extracted folder containing {ph0} or {ph1}. Use that folder for {ph2}." +msgid "" +"Find the extracted folder containing {ph0} or {ph1}. Use that folder for " +"{ph2}." msgstr "" #. {ph0}: @@ -5085,7 +5281,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1093 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -5093,70 +5289,73 @@ msgstr "" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1103 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Check Java. The first command prints {ph0}; use that folder for {ph1}. The second " -"confirms the compiler is installed:" +"Check Java. The first command prints {ph0}; use that folder for {ph1}. The " +"second confirms the compiler is installed:" msgstr "" -#: website/public/get-started/index.html:1124 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "" -#: website/public/get-started/index.html:1125 +#: website/public/get-started/index.html:1129 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:" +"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 "" -#: website/public/get-started/index.html:1148 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" -msgid "Replace the two paths with your installations, then review setup's plan." +msgid "" +"Replace the two paths with your installations, then review setup's plan." msgstr "" -#: website/public/get-started/index.html:1154 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "" -#: website/public/get-started/index.html:1170 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" -"Replace both paths with your existing installations. For a fresh macOS or Linux arm64 " -"installation, build the native decompiler for your computer before continuing." +"Replace both paths with your existing installations. For a fresh macOS or " +"Linux arm64 installation, build the native decompiler for your computer " +"before continuing." msgstr "" -#: website/public/get-started/index.html:1176 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "" -#: website/public/get-started/index.html:1177 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" -"On macOS, the build needs Xcode Command Line Tools, make and bison. Use the guide for " -"your computer:" +"On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " +"guide for your computer:" msgstr "" #. {ph0}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- +#. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1182 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" msgstr "" -#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1188 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -5166,335 +5365,354 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1194 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "" -#: website/public/get-started/index.html:1202 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "" -#: website/public/get-started/index.html:1219 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" -"Keep these commands in the same terminal session. Rerun setup after setting the paths," -" approve the updated client configuration, then restart your agent." +"Keep these commands in the same terminal session. Rerun setup after setting " +"the paths, approve the updated client configuration, then restart your " +"agent." msgstr "" -#. {ph0}: #. {ph1}: -#. {ph2}: +#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1224 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra guide{ph3}" +"{ph0}Ghidra setup and architecture requirements{ph1} · {ph2}Windows Ghidra " +"guide{ph3}" msgstr "" -#: website/public/get-started/index.html:1237 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "" -#: website/public/get-started/index.html:1238 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" -"Use the IDA provider guide to prepare an upstream MCP registration. Choose an attached" -" GUI with the original binary open, or a headless supervisor that opens a private " -"database." +"Use the IDA provider guide to prepare an upstream MCP registration. Choose " +"an attached GUI with the original binary open, or a headless supervisor that" +" opens a private database." msgstr "" -#: website/public/get-started/index.html:1243 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" -"Verified profiles include the Windows legacy GUI and headless supervisor, plus a macOS" -" arm64 headless supervisor with IDA Professional 9.1. The optional native GUI bridge " -"has its own version and platform requirements." +"Verified profiles include the Windows legacy GUI and headless supervisor, " +"plus a macOS arm64 headless supervisor with IDA Professional 9.1. The " +"optional native GUI bridge has its own version and platform requirements." msgstr "" -#. {ph0}: #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1249 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"The macOS headless profile and native GUI bridge require a {ph0}REA source build{ph1} " -"or a release containing those changes. npm {ph2} does not include them." +"The macOS headless profile and native GUI bridge require a {ph0}REA source " +"build{ph1} or a release containing those changes. npm {ph2} does not include" +" them." msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1258 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands below." +"From the built checkout, run {ph0} and {ph1} instead of the {ph2} commands " +"below." msgstr "" -#: website/public/get-started/index.html:1265 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1266 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Install and configure the upstream server using the IDA guide below. Then save its " -"working registration as {ph0} in a text editor. On Windows, choose “All files” when " -"saving in Notepad so it doesn't add {ph1}." +"Install and configure the upstream server using the IDA guide below. Then " +"save its working registration as {ph0} in a text editor. On Windows, choose " +"“All files” when saving in Notepad so it doesn't add {ph1}." msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1273 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"For a headless supervisor providing {ph0}, {ph1} and {ph2}, the file can look like " -"this:" +"For a headless supervisor providing {ph0}, {ph1} and {ph2}, the file can " +"look like this:" msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1296 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"For an attached legacy 1.4.0 GUI server, copy its working {ph0}, {ph1} and optional " -"{ph2} into the file. Open the original binary in IDA and start its upstream plugin " -"before asking REA to inspect it." +"For an attached legacy 1.4.0 GUI server, copy its working {ph0}, {ph1} and " +"optional {ph2} into the file. Open the original binary in IDA and start its " +"upstream plugin before asking REA to inspect it." msgstr "" -#: website/public/get-started/index.html:1338 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" -"Use the JSON registration file you prepared with the provider guide, then rerun setup " -"and restart your agent." +"Use the JSON registration file you prepared with the provider guide, then " +"rerun setup and restart your agent." msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1342 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "" -#: website/public/get-started/index.html:1350 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" -"Once connected, give your agent the original executable's full path and name your " -"provider:" +"Once connected, give your agent the original executable's full path and name" +" your provider:" msgstr "" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1355 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Use REA with my configured provider to inspect {ph0}. List its functions and strings, " -"then explain the part that handles user input with references to the code." +"Use REA with my configured provider to inspect {ph0}. List its functions and" +" strings, then explain the part that handles user input with references to " +"the code." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1362 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "" -#: website/public/get-started/index.html:1367 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "" -#: website/public/get-started/index.html:1370 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" -"Open the guide for the target you have. Each guide gives the additional tools, " -"supported hosts and first command." +"Open the guide for the target you have. Each guide gives the additional " +"tools, supported hosts and first command." msgstr "" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "" -#: website/public/get-started/index.html:1379 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "" -#: website/public/get-started/index.html:1380 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "" -#: website/public/get-started/index.html:1385 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1387 website/public/get-started/index.html:1392 -#: website/public/get-started/index.html:1397 website/public/get-started/index.html:1407 -#: website/public/get-started/index.html:1417 website/public/get-started/index.html:1427 -#: website/public/get-started/index.html:1437 website/public/get-started/index.html:1447 -#: website/public/get-started/index.html:1457 website/public/get-started/index.html:1467 -#: website/public/get-started/index.html:1477 website/public/get-started/index.html:1487 -#: website/public/get-started/index.html:1497 website/public/get-started/index.html:1507 -#: website/public/get-started/index.html:1517 website/public/get-started/index.html:1527 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "" -#: website/public/get-started/index.html:1390 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "" -#: website/public/get-started/index.html:1395 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr "" -#: website/public/get-started/index.html:1405 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "" -#: website/public/get-started/index.html:1415 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "" -#: website/public/get-started/index.html:1425 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "" -#: website/public/get-started/index.html:1435 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "" -#: website/public/get-started/index.html:1445 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "" -#: website/public/get-started/index.html:1455 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "" -#: website/public/get-started/index.html:1465 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "" -#: website/public/get-started/index.html:1475 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "" -#: website/public/get-started/index.html:1485 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "" -#: website/public/get-started/index.html:1495 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "" -#: website/public/get-started/index.html:1505 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "" -#: website/public/get-started/index.html:1515 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "" -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: -#. {ph2}: +#. {ph2}: #. {ph3}: -#. {ph4}: +#. {ph4}: #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1537 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}Flutter guide{ph1} · {ph2}Packages and resources{ph3} · {ph4}EVM bytecode{ph5} · " -"{ph6}All investigation guides{ph7}" +"{ph0}Flutter guide{ph1} · {ph2}Packages and resources{ph3} · {ph4}EVM " +"bytecode{ph5} · {ph6}All investigation guides{ph7}" msgstr "" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "" -#: website/public/get-started/index.html:1559 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "" -#: website/public/get-started/index.html:1560 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" -"Analyze a JavaScript or Electron application folder or ASAR archive without running " -"the app:" +"Analyze a JavaScript or Electron application folder or ASAR archive without " +"running the app:" msgstr "" -#: website/public/get-started/index.html:1566 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1578 +#: website/public/get-started/index.html:1582 #, 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." +"Replace the path with your extracted app directory or {ph0} file. On " +"Windows, a path such as {ph1} works here." msgstr "" -#: website/public/get-started/index.html:1584 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "" #. {ph0}: resources -#: website/public/get-started/index.html:1585 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -5503,8 +5721,9 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1590 +#. >C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -5512,10 +5731,11 @@ msgstr "" #. {ph0}: #. {ph1}: -#. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar +#. {ph2}: /Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1596 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -5526,168 +5746,173 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1604 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "" #. {ph0}: app.asar -#: website/public/get-started/index.html:1609 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" -#: website/public/get-started/index.html:1614 +#: website/public/get-started/index.html:1618 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." +"The result identifies the app, shows connections between modules and gives " +"their source locations. Connections REA cannot resolve are marked in the " +"result." msgstr "" #. {ph0}: rea -#: website/public/get-started/index.html:1619 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "" -#: website/public/get-started/index.html:1625 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1637 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "" #. {ph0}: main -#: website/public/get-started/index.html:1656 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"Replace {ph0} with a function name or address from the target's function list. Ghidra " -"must be configured first." +"Replace {ph0} with a function name or address from the target's function " +"list. Ghidra must be configured first." msgstr "" -#: website/public/get-started/index.html:1660 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" -msgid "On macOS or Linux, you can also use the curl installer after preparing Node.js:" +msgid "" +"On macOS or Linux, you can also use the curl installer after preparing " +"Node.js:" msgstr "" #. {ph0}: rea setup -#: website/public/get-started/index.html:1678 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "Follow the setup prompts to connect your agent. If they don't appear, run {ph0}." +msgid "" +"Follow the setup prompts to connect your agent. If they don't appear, run " +"{ph0}." msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1682 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If your shell can't find {ph0}, use the executable path printed by the installer. On " -"Linux, the default setup command is {ph1}." +"If your shell can't find {ph0}, use the executable path printed by the " +"installer. On Linux, the default setup command is {ph1}." msgstr "" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "" -#: website/public/get-started/index.html:1693 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "" #. {ph0}: doctor -#: website/public/get-started/index.html:1694 +#: website/public/get-started/index.html:1698 #, 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:" +"Restart or reconnect the client after setup. Check its REA connection with " +"{ph0}; for Codex:" msgstr "" -#: website/public/get-started/index.html:1698 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" -"Use the client check in step 3 with your setup ID. In editor clients, enable REA in " -"MCP settings and allow its tools in the agent chat." +"Use the client check in step 3 with your setup ID. In editor clients, enable" +" REA in MCP settings and allow its tools in the agent chat." msgstr "" -#: website/public/get-started/index.html:1705 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "" -#: website/public/get-started/index.html:1706 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "" -#: website/public/get-started/index.html:1709 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "" -#: website/public/get-started/index.html:1721 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "" -#: website/public/get-started/index.html:1726 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "" -#: website/public/get-started/index.html:1727 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" -"Use Windows PowerShell for Windows clients and analysis tools. If your agent runs " -"inside WSL, install Node.js and REA inside that Linux environment and use Linux paths " -"there. Headless providers run on the same host as REA." +"Use Windows PowerShell for Windows clients and analysis tools. If your agent" +" runs inside WSL, install Node.js and REA inside that Linux environment and " +"use Linux paths there. Headless providers run on the same host as REA." msgstr "" -#: website/public/get-started/index.html:1736 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "" -#: website/public/get-started/index.html:1753 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "" -#: website/public/get-started/index.html:1754 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" -"To refresh your agent connection, run the latest setup command again, review its plan " -"and restart your client." +"To refresh your agent connection, run the latest setup command again, review" +" its plan and restart your client." msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1772 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If you installed the global CLI, update it with {ph0}. Use {ph1} to remove REA's " -"client configuration and skill." +"If you installed the global CLI, update it with {ph0}. Use {ph1} to remove " +"REA's client configuration and skill." msgstr "" #. {ph0}: +#. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- +#. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1778 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" @@ -5697,43 +5922,47 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1786 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}" +msgid "" +"{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1790 +#: website/public/get-started/index.html:1794 #, 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}" +"{ph0}Choose an investigation guide{ph1}{ph2}Worked examples for a binary, an" +" Electron app and a browser.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1797 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"{ph0}GitHub issues{ph1}{ph2}Report a problem with the command and diagnostics.{ph3}" +"{ph0}GitHub issues{ph1}{ph2}Report a problem with the command and " +"diagnostics.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1801 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" -msgid "{ph0}REA community{ph1}{ph2}Questions, investigations and work in progress.{ph3}" +msgid "" +"{ph0}REA community{ph1}{ph2}Questions, investigations and work in " +"progress.{ph3}" msgstr "" #: website/public/get-started/index.html:6 @@ -5744,92 +5973,104 @@ msgstr "" #: 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." +"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 "" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "" -#: website/public/get-started/index.html:271 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "" -#: website/public/get-started/index.html:294 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "" -#: website/public/get-started/index.html:324 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "" -#: website/public/get-started/index.html:349 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "" -#: website/public/get-started/index.html:372 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "" -#: website/public/get-started/index.html:387 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "" -#: website/public/get-started/index.html:421 website/public/get-started/index.html:452 -#: website/public/get-started/index.html:466 website/public/get-started/index.html:484 -#: website/public/get-started/index.html:536 website/public/get-started/index.html:550 -#: website/public/get-started/index.html:582 website/public/get-started/index.html:611 -#: website/public/get-started/index.html:746 website/public/get-started/index.html:801 -#: website/public/get-started/index.html:816 website/public/get-started/index.html:864 -#: website/public/get-started/index.html:1049 website/public/get-started/index.html:1111 -#: website/public/get-started/index.html:1134 website/public/get-started/index.html:1158 -#: website/public/get-started/index.html:1206 website/public/get-started/index.html:1281 -#: website/public/get-started/index.html:1307 website/public/get-started/index.html:1324 -#: website/public/get-started/index.html:1645 website/public/get-started/index.html:1667 -#: website/public/get-started/index.html:1740 website/public/get-started/index.html:1761 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "" -#: website/public/get-started/index.html:776 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/get-started/index.html:897 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "" -#: website/public/get-started/index.html:1567 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "" -#: website/public/get-started/index.html:1626 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "" -#: website/public/get-started/index.html:1710 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "" -#: website/public/get-started/index.html:1825 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/browser/index.html:109 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "" @@ -5838,34 +6079,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:201 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "" #. {ph0}:
-#: website/public/guides/browser/index.html:205 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "" -#: website/public/guides/browser/index.html:206 +#: website/public/guides/browser/index.html:210 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." +"Use a small browser app to connect an action, its network request and the " +"JavaScript that builds a download." msgstr "" -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -5873,7 +6114,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -5881,7 +6122,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5889,7 +6130,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:218 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -5897,13 +6138,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:219 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "" -#: website/public/guides/browser/index.html:224 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "" @@ -5913,15 +6154,16 @@ msgstr "" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:225 +#: website/public/guides/browser/index.html:229 #, 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." +"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 "" -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "" @@ -5932,12 +6174,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:235 +#: website/public/guides/browser/index.html:239 #, 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}" +"{ph0}01 · You{ph1}{ph2}Click Export notes{ph3}{ph4}Perform the action in " +"your browser while the capture is running.{ph5}" msgstr "" #. {ph0}: @@ -5946,12 +6188,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:243 +#: website/public/guides/browser/index.html:247 #, 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}" +"{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}: @@ -5962,60 +6204,60 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:251 +#: website/public/guides/browser/index.html:255 #, 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}" +"{ph0}03 · Your agent{ph1}{ph2}Read the export code{ph3}{ph4}Connect the " +"observed request to {ph5} in {ph6}.{ph7}" msgstr "" -#: website/public/guides/browser/index.html:264 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "" -#: website/public/guides/browser/index.html:270 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "" -#: website/public/guides/browser/index.html:271 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" -"Open the hosted Notes example with a separate browser profile and a local debugging " -"port. On Linux:" +"Open the hosted Notes example with a separate browser profile and a local " +"debugging port. On Linux:" msgstr "" -#: website/public/guides/browser/index.html:277 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "" -#: website/public/guides/browser/index.html:278 -#: website/public/guides/browser/index.html:310 -#: website/public/guides/browser/index.html:344 -#: website/public/guides/browser/index.html:363 -#: website/public/guides/browser/index.html:428 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "" -#: website/public/guides/browser/index.html:292 +#: website/public/guides/browser/index.html:296 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." +"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 "" -#: website/public/guides/browser/index.html:297 +#: website/public/guides/browser/index.html:301 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." +"REA connects to this existing browser. You keep control of the page, perform" +" the action, and close the browser when finished." msgstr "" -#: website/public/guides/browser/index.html:303 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "" @@ -6028,7 +6270,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:306 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -6040,119 +6282,121 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:319 +#: website/public/guides/browser/index.html:323 #, 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}" +"{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}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:327 +#: website/public/guides/browser/index.html:331 #, 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." +"Example prompt. Give your agent the debugging endpoint, {ph0}, and the page " +"URL. Let it start the capture before you click." msgstr "" -#: website/public/guides/browser/index.html:332 +#: website/public/guides/browser/index.html:336 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." +"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:339 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "" -#: website/public/guides/browser/index.html:340 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "" -#: website/public/guides/browser/index.html:343 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:356 +#: website/public/guides/browser/index.html:360 #, 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:" +"Choose the target with the Notes example URL. Replace {ph0} below with its " +"ID, then run:" msgstr "" -#: website/public/guides/browser/index.html:362 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:378 +#: website/public/guides/browser/index.html:382 #, 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." +"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 "" -#: website/public/guides/browser/index.html:383 +#: website/public/guides/browser/index.html:387 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." +"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 "" -#: website/public/guides/browser/index.html:390 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "" -#: website/public/guides/browser/index.html:393 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "" -#: website/public/guides/browser/index.html:398 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "" -#: website/public/guides/browser/index.html:399 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "" -#: website/public/guides/browser/index.html:404 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "" -#: website/public/guides/browser/index.html:408 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "" -#: website/public/guides/browser/index.html:412 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:413 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "" -#: website/public/guides/browser/index.html:416 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "" @@ -6160,41 +6404,41 @@ msgstr "" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:417 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "" -#: website/public/guides/browser/index.html:427 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:441 +#: website/public/guides/browser/index.html:445 #, 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:" +"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 "" #. {ph0}: export.js -#: website/public/guides/browser/index.html:448 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:461 +#: website/public/guides/browser/index.html:465 #, 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}." +"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 "" #. {ph0}: @@ -6205,41 +6449,44 @@ msgstr "" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:466 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" -msgid "{ph0}Open the example{ph1} · {ph2}Download {ph3}{ph4} · {ph5}Download {ph6}{ph7}" +msgid "" +"{ph0}Open the example{ph1} · {ph2}Download {ph3}{ph4} · {ph5}Download " +"{ph6}{ph7}" msgstr "" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:477 +#: website/public/guides/browser/index.html:481 #, 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?" +"Find the script that requests {ph0}. How does it escape titles containing " +"commas or quotation marks?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:482 +#: website/public/guides/browser/index.html:486 #, 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." +"For an installed JavaScript or Electron app, continue with the " +"{ph0}application workflow{ph1} to follow files and process boundaries." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:487 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" -"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ captures, MCP " -"and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA capture Evidence, or " -"connect Everywhere's MCP server to inspect captured traffic with your agent." +"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ " +"captures, MCP and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA " +"capture Evidence, or connect Everywhere's MCP server to inspect captured " +"traffic with your agent." msgstr "" #: website/public/guides/browser/index.html:6 @@ -6250,220 +6497,220 @@ msgstr "" #: 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." +"Observe a Notes export with REA: select a browser page, capture a click, " +"inspect the request and follow the export script." msgstr "" -#: website/public/guides/browser/index.html:212 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "" -#: website/public/guides/browser/index.html:278 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "" -#: website/public/guides/browser/index.html:310 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/browser/index.html:344 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "" -#: website/public/guides/browser/index.html:363 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "" -#: website/public/guides/browser/index.html:428 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "" -#: website/public/guides/browser/index.html:515 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/index.html:109 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "" -#: website/public/guides/index.html:202 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "" -#: website/public/guides/index.html:203 +#: website/public/guides/index.html:207 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." +"Analyze a native function, an Electron export or a browser request. Each " +"guide includes a prompt, code and results." msgstr "" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "" -#: website/public/guides/index.html:213 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "" -#: website/public/guides/index.html:214 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "" -#: website/public/guides/index.html:220 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "" -#: website/public/guides/index.html:221 +#: website/public/guides/index.html:225 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." +"Start with a Windows game executable. Inspect instructions, follow a caller," +" read numeric constants and check the recovered C." msgstr "" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "" -#: website/public/guides/index.html:228 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "" -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "" -#: website/public/guides/index.html:231 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/index.html:237 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "" -#: website/public/guides/index.html:238 +#: website/public/guides/index.html:242 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." +"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 "" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "" -#: website/public/guides/index.html:245 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "" -#: website/public/guides/index.html:248 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:251 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." msgstr "" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "" -#: website/public/guides/index.html:260 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "" -#: website/public/guides/index.html:261 +#: website/public/guides/index.html:265 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." +"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:266 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "" -#: website/public/guides/index.html:267 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "" -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "" -#: website/public/guides/index.html:270 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "" @@ -6476,16 +6723,16 @@ msgstr "" #: 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." +"Learn REA through short worked examples: a native calculation, an Electron " +"CSV export and a browser request." msgstr "" -#: website/public/guides/index.html:290 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/javascript/index.html:109 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "" @@ -6494,33 +6741,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:201 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "" #. {ph0}:
-#: website/public/guides/javascript/index.html:205 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "" -#: website/public/guides/javascript/index.html:206 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" -"Follow a button click from the page API, through Electron IPC, to the CSV file writer." +"Follow a button click from the page API, through Electron IPC, to the CSV " +"file writer." msgstr "" -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -6528,7 +6776,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6536,7 +6784,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -6544,7 +6792,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:218 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -6552,29 +6800,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:219 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:224 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:225 +#: website/public/guides/javascript/index.html:229 #, 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." +"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 "" -#: website/public/guides/javascript/index.html:232 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "" @@ -6588,12 +6836,12 @@ msgstr "" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:236 +#: website/public/guides/javascript/index.html:240 #, 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}" +"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} calls the API exposed " +"by {ph7}.{ph8}" msgstr "" #. {ph0}: @@ -6603,12 +6851,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:244 +#: website/public/guides/javascript/index.html:248 #, 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}" +"{ph0}Between processes{ph1}{ph2}{ph3}{ph4}{ph5}The preload invokes an IPC " +"channel: a named message to the main process.{ph6}" msgstr "" #. {ph0}: @@ -6618,41 +6866,44 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:252 +#: website/public/guides/javascript/index.html:256 #, 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}" +"{ph0}Main process{ph1}{ph2}An export handler{ph3}{ph4}{ph5} handles that " +"channel and calls the CSV writer.{ph6}" msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:261 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "" -#: website/public/guides/javascript/index.html:265 +#: website/public/guides/javascript/index.html:269 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." +"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 "" -#: website/public/guides/javascript/index.html:273 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:274 +#: website/public/guides/javascript/index.html:278 #, 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:" +msgid "" +"{ph0}Connect your agent to REA{ph1} and give it the app directory or ASAR " +"file:" msgstr "" #. {ph0}: -#: website/public/guides/javascript/index.html:280 +#: website/public/guides/javascript/index.html:284 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/javascript/index.html:284 -#: website/public/guides/javascript/index.html:433 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "" @@ -6681,194 +6932,198 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:293 +#: website/public/guides/javascript/index.html:297 #, 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}" +"{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}: app.asar -#: website/public/guides/javascript/index.html:301 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" -msgid "Example prompt. Include the absolute path to the application folder or {ph0}." +msgid "" +"Example prompt. Include the absolute path to the application folder or " +"{ph0}." msgstr "" -#: website/public/guides/javascript/index.html:305 +#: website/public/guides/javascript/index.html:309 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." +"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 "" -#: website/public/guides/javascript/index.html:312 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "" -#: website/public/guides/javascript/index.html:313 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:316 -#: website/public/guides/javascript/index.html:332 -#: website/public/guides/javascript/index.html:347 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" msgstr "" -#: website/public/guides/javascript/index.html:326 +#: website/public/guides/javascript/index.html:330 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." +"The page knows the method name. The implementation lives in the preload, " +"which exposes it to the renderer." msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:340 +#: website/public/guides/javascript/index.html:344 #, 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." +"REA records {ph0} and the literal channel {ph1}. It pairs that invocation " +"with the single matching handler in the main process." msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:357 +#: website/public/guides/javascript/index.html:361 #, 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." +"Reading the handler answers the original question: {ph0} formats the notes, " +"and the main process writes {ph1} into the user's Downloads folder." msgstr "" -#: website/public/guides/javascript/index.html:364 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "" -#: website/public/guides/javascript/index.html:374 +#: website/public/guides/javascript/index.html:378 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." +"Recorded by REA 4.1.0 on the downloadable example below. Source locations " +"accompany the API, channel and handler findings." msgstr "" -#: website/public/guides/javascript/index.html:380 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:381 +#: website/public/guides/javascript/index.html:385 #, 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." +"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}: +#. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:387 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "" -#: website/public/guides/javascript/index.html:396 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "" -#: website/public/guides/javascript/index.html:432 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:445 +#: website/public/guides/javascript/index.html:449 #, 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}." +"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 "" -#: website/public/guides/javascript/index.html:451 +#: website/public/guides/javascript/index.html:455 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." +"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 "" -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:460 +#: website/public/guides/javascript/index.html:464 #, 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?" +"Follow {ph0} to its handler. Which inputs reach the CSV writer, and what " +"happens if writing the file fails?" msgstr "" -#: website/public/guides/javascript/index.html:466 +#: website/public/guides/javascript/index.html:470 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." +"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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:472 +#: website/public/guides/javascript/index.html:476 #, 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}" +"{ph0}Follow Notion's clipboard bridge{ph1} {ph2}Apply the same approach to a" +" packaged Electron app.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:478 +#: website/public/guides/javascript/index.html:482 #, 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}" +"{ph0}Observe a browser export{ph1}{ph2}Capture a real click and see which " +"request it makes.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:484 +#: website/public/guides/javascript/index.html:488 #, 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}" +"{ph0}Follow a native function{ph1}{ph2}Continue into a binary when a feature" +" depends on native code.{ph3}" msgstr "" #: website/public/guides/javascript/index.html:6 @@ -6879,36 +7134,37 @@ msgstr "" #: 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." +"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 "" -#: website/public/guides/javascript/index.html:212 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/guides/javascript/index.html:284 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/javascript/index.html:433 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "" -#: website/public/guides/javascript/index.html:511 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "" -#: website/public/guides/native/index.html:109 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "" @@ -6917,34 +7173,34 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:201 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "" #. {ph0}:
-#: website/public/guides/native/index.html:204 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "" -#: website/public/guides/native/index.html:205 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" -"Inspect the original instructions, identify the input and constants, then check the " -"recovered C." +"Inspect the original instructions, identify the input and constants, then " +"check the recovered C." msgstr "" -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -6952,7 +7208,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6960,7 +7216,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -6968,7 +7224,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:217 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -6976,36 +7232,36 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:218 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "" -#: website/public/guides/native/index.html:223 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "" -#: website/public/guides/native/index.html:224 +#: website/public/guides/native/index.html:228 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." +"In DX-Ball, a brick hit supplies a horizontal screen position. The sound " +"code turns it into a left/right panning value." msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:228 +#: website/public/guides/native/index.html:232 #, 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." +"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 "" -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "" @@ -7014,54 +7270,56 @@ msgstr "" #. {ph1}:
#. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:237 +#: website/public/guides/native/index.html:241 #, 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}." +"{ph0}Instructions:{ph1} the steps the processor runs, shown in readable form" +" such as {ph2} or {ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:242 +#: website/public/guides/native/index.html:246 #, 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." +"{ph0}Decompiler result / pseudocode:{ph1} an analysis tool's attempt to turn" +" instructions back into C-like code. It can miss parts, as in this example." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:247 +#: website/public/guides/native/index.html:251 #, 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." +"{ph0}Caller:{ph1} a function that calls this one. It shows which values are " +"passed in." msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:251 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" -"{ph0}Address:{ph1} a location in the program, written in hexadecimal, such as {ph2}." +"{ph0}Address:{ph1} a location in the program, written in hexadecimal, such " +"as {ph2}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:255 +#: website/public/guides/native/index.html:259 #, 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." +"{ph0}Constants:{ph1} fixed numbers stored in the program, read as raw bytes " +"and decoded." msgstr "" -#: website/public/guides/native/index.html:262 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "" @@ -7072,12 +7330,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:266 +#: website/public/guides/native/index.html:270 #, 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}" +"{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}: @@ -7087,12 +7345,12 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:274 +#: website/public/guides/native/index.html:278 #, 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}" +"{ph0}02 · Caller{ph1}{ph2}A screen coordinate{ph3}{ph4}The brick-hit caller " +"passes {ph5}.{ph6}" msgstr "" #. {ph0}: @@ -7103,22 +7361,22 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:282 +#: website/public/guides/native/index.html:286 #, 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}" +"{ph0}03 · Data bytes{ph1}{ph2}The numeric constants{ph3}{ph4}Referenced " +"bytes decode to {ph5}, {ph6} and a scale value.{ph7}" msgstr "" -#: website/public/guides/native/index.html:294 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" -"REA supplies the instructions, call relationship and bytes. The agent interprets them " -"together." +"REA supplies the instructions, call relationship and bytes. The agent " +"interprets them together." msgstr "" -#: website/public/guides/native/index.html:301 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "" @@ -7127,56 +7385,57 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:302 +#: website/public/guides/native/index.html:306 #, 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:" +"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 "" -#: website/public/guides/native/index.html:313 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "" -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:316 +#: website/public/guides/native/index.html:320 #, 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." +"{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}: #. {ph1}: -#: website/public/guides/native/index.html:322 +#: website/public/guides/native/index.html:326 #, 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." +"{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}: #. {ph1}: -#: website/public/guides/native/index.html:327 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" -msgid "{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." +msgid "" +"{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:332 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -7190,14 +7449,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:340 +#: website/public/guides/native/index.html:344 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/guides/native/index.html:344 -#: website/public/guides/native/index.html:475 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "" @@ -7208,23 +7467,23 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:353 +#: website/public/guides/native/index.html:357 #, 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}" +"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. " +"Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/guides/native/index.html:361 +#: website/public/guides/native/index.html:365 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." +"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 "" -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "" @@ -7233,169 +7492,173 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:370 +#: website/public/guides/native/index.html:374 #, 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." +"{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}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:375 +#: website/public/guides/native/index.html:379 #, 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}." +"{ph0}macOS:{ph1} in Finder, right-click the file, hold Option and choose " +"{ph2}Copy \"…\" as Pathname{ph3}." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:379 +#: website/public/guides/native/index.html:383 #, 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." +msgid "" +"{ph0}Any system:{ph1} drag the file into a terminal window and its path " +"appears." msgstr "" -#: website/public/guides/native/index.html:387 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "" -#: website/public/guides/native/index.html:388 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "" -#: website/public/guides/native/index.html:391 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "" -#: website/public/guides/native/index.html:397 +#: website/public/guides/native/index.html:401 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:402 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "" -#: website/public/guides/native/index.html:405 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:411 +#: website/public/guides/native/index.html:415 #, 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." +"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 "" -#: website/public/guides/native/index.html:416 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "" -#: website/public/guides/native/index.html:419 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "" -#: website/public/guides/native/index.html:427 +#: website/public/guides/native/index.html:431 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." +"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:434 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "" -#: website/public/guides/native/index.html:436 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "" -#: website/public/guides/native/index.html:443 +#: website/public/guides/native/index.html:447 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." +"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 "" -#: website/public/guides/native/index.html:448 +#: website/public/guides/native/index.html:452 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:453 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "" -#: website/public/guides/native/index.html:460 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:461 +#: website/public/guides/native/index.html:465 #, 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?”" +"{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 "" -#: website/public/guides/native/index.html:468 +#: website/public/guides/native/index.html:472 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:" +"If you already know a function name or address, you can query it from the " +"terminal. For a configured Ghidra installation:" msgstr "" -#: website/public/guides/native/index.html:474 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "" #. {ph0}: main -#: website/public/guides/native/index.html:487 +#: website/public/guides/native/index.html:491 #, 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." +"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 "" -#: website/public/guides/native/index.html:493 +#: website/public/guides/native/index.html:497 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." +"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 @@ -7406,54 +7669,54 @@ msgstr "" #: 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." +"Recover a native calculation with REA: inspect instructions, follow a " +"caller, read constants and check reconstructed C." msgstr "" -#: website/public/guides/native/index.html:211 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "" -#: website/public/guides/native/index.html:344 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/guides/native/index.html:475 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "" -#: website/public/guides/native/index.html:517 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "" -#: website/public/index.html:111 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "" -#: website/public/index.html:203 website/public/index.html:213 -#: website/public/index.html:211 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "" -#: website/public/index.html:204 website/public/index.html:252 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -7461,7 +7724,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" @@ -7469,7 +7732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -7477,7 +7740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -7485,7 +7748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" @@ -7493,7 +7756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:220 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -7501,44 +7764,44 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:221 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "" -#: website/public/index.html:230 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "" #. {ph0}:
-#: website/public/index.html:231 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "" -#: website/public/index.html:232 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" -"Ask your coding agent about an app, a game or a website. REA gives it the tools to " -"inspect the code behind the answer." +"Ask your coding agent about an app, a game or a website. REA gives it the " +"tools to inspect the code behind the answer." msgstr "" -#: website/public/index.html:237 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "" -#: website/public/index.html:238 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:241 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -7546,13 +7809,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:245 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "" -#: website/public/index.html:253 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "" @@ -7565,16 +7828,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:256 +#: website/public/index.html:260 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/index.html:261 website/public/index.html:285 -#: website/public/index.html:521 website/public/index.html:602 -#: website/public/index.html:826 website/public/index.html:1138 -#: website/public/index.html:1166 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "" @@ -7586,25 +7849,26 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:270 +#: website/public/index.html:274 #, 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}" +"{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 "" -#: website/public/index.html:282 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "" -#: website/public/index.html:294 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "" -#: website/public/index.html:298 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "" @@ -7612,7 +7876,7 @@ msgstr "" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:309 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" @@ -7621,77 +7885,77 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:315 +#: website/public/index.html:319 #, 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}" +"First time, or missing {ph0} or a coding agent? {ph1}Follow the step-by-step" +" setup guide →{ph2}" msgstr "" -#: website/public/index.html:328 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "" -#: website/public/index.html:330 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" -"Reverse engineering means learning how software works by inspecting the program " -"itself. With REA, your agent can follow the code, explain a feature and help you " -"rebuild it." +"Reverse engineering means learning how software works by inspecting the " +"program itself. With REA, your agent can follow the code, explain a feature " +"and help you rebuild it." msgstr "" -#: website/public/index.html:337 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "" -#: website/public/index.html:338 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "" -#: website/public/index.html:341 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "" -#: website/public/index.html:342 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "" -#: website/public/index.html:345 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "" -#: website/public/index.html:346 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "" -#: website/public/index.html:352 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "" #. {ph0}: 200 + 10% -#: website/public/index.html:353 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" msgstr "" -#: website/public/index.html:362 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:370 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -7699,7 +7963,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:378 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -7707,7 +7971,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:386 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -7717,92 +7981,95 @@ msgstr "" #. {ph1}: #. {ph2}: -#: website/public/index.html:397 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "" -#: website/public/index.html:439 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:440 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" -msgid "“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are these?”" +msgid "" +"“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are " +"these?”" msgstr "" -#: website/public/index.html:444 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "" -#: website/public/index.html:450 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "" -#: website/public/index.html:454 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "" -#: website/public/index.html:459 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:460 +#: website/public/index.html:464 #, 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}”" +"“100 is clear. The calls are just addresses. {ph0}Which one divides? Which " +"value goes in?{ph1}”" msgstr "" -#: website/public/index.html:466 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "" -#: website/public/index.html:476 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "" -#: website/public/index.html:481 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:482 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" -"“This path multiplies by the other input. So {ph0}10% means 10% of 200{ph1} after +.”" +"“This path multiplies by the other input. So {ph0}10% means 10% of 200{ph1} " +"after +.”" msgstr "" -#: website/public/index.html:486 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "" -#: website/public/index.html:502 website/public/index.html:429 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:505 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7810,7 +8077,7 @@ msgid "" "calculation.{ph1}" msgstr "" -#: website/public/index.html:513 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "" @@ -7823,7 +8090,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:516 +#: website/public/index.html:520 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator" @@ -7836,7 +8103,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:530 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -7844,73 +8111,75 @@ msgid "" "220?{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:538 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:541 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" -msgid "After +, the % button takes {ph0}a percentage of the first number.{ph1}" +msgid "" +"After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "" -#: website/public/index.html:554 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "" -#: website/public/index.html:555 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "" -#: website/public/index.html:560 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "" -#: website/public/index.html:561 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:568 +#: website/public/index.html:572 #, 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}" +"Selected assembly from the installed Calculator DLL. The thoughts and reply " +"illustrate the findings. {ph0}Continue with the Calculator example ↓{ph1}" msgstr "" -#: website/public/index.html:580 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" -"Let’s try two examples: change a game’s speed, then rebuild Calculator’s % button." +"Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " +"button." msgstr "" -#: website/public/index.html:585 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "" -#: website/public/index.html:586 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "" -#: website/public/index.html:588 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" -"The game gets faster as you run. To rebuild it with a speed control, we first need to " -"find out how the speed changes." +"The game gets faster as you run. To rebuild it with a speed control, we " +"first need to find out how the speed changes." msgstr "" -#: website/public/index.html:594 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "" @@ -7923,10 +8192,11 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:597 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" +msgid "" +"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "" #. {ph0}: #. {ph4}: -#: website/public/index.html:611 +#: website/public/index.html:615 #, 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}" +"{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 "" -#: website/public/index.html:620 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "" -#: website/public/index.html:621 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" -"REA lets the agent read the game’s running code. The speed starts at 6 and increases a" -" little each update while it is below 13." +"REA lets the agent read the game’s running code. The speed starts at 6 and " +"increases a little each update while it is below 13." msgstr "" -#: website/public/index.html:628 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "" -#: website/public/index.html:629 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" -"We rebuilt that rule in the mini-game below and added a speed slider. Press Play, then" -" choose your own speed." +"We rebuilt that rule in the mini-game below and added a speed slider. Press " +"Play, then choose your own speed." msgstr "" -#: website/public/index.html:665 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "" -#: website/public/index.html:668 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "" -#: website/public/index.html:669 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "" -#: website/public/index.html:672 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "" -#: website/public/index.html:682 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "" -#: website/public/index.html:686 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "" -#: website/public/index.html:689 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" -#: website/public/index.html:694 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" -"Enable JavaScript to play. You can still read the rule and open the source code below." +"Enable JavaScript to play. You can still read the rule and open the source " +"code below." msgstr "" -#: website/public/index.html:700 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "" -#: website/public/index.html:706 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:709 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "" #. {ph0}: index.js -#: website/public/index.html:717 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" msgstr "" -#: website/public/index.html:726 +#: website/public/index.html:730 msgctxt "page:index.html" -msgid "Start at 6. Add 0.001 each update without a collision, while speed is below 13." +msgid "" +"Start at 6. Add 0.001 each update without a collision, while speed is below " +"13." msgstr "" -#: website/public/index.html:731 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "" @@ -8049,12 +8323,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:733 +#: website/public/index.html:737 #, 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}" +"{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}: @@ -8063,12 +8337,12 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:740 +#: website/public/index.html:744 #, 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}" +"{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}: @@ -8077,7 +8351,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:748 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -8086,49 +8360,49 @@ msgid "" msgstr "" #. {ph0}: index.js -#: website/public/index.html:758 +#: website/public/index.html:762 #, 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." +"REA inspected the HTTP browser edition through a local debugging connection " +"and returned the loaded {ph0}, including its source and digest." msgstr "" -#: website/public/index.html:765 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "" -#: website/public/index.html:771 +#: website/public/index.html:775 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/index.html:777 +#: website/public/index.html:781 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/index.html:783 +#: website/public/index.html:787 #, 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." +"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}: #. {ph2}: #. {ph3}: -#: website/public/index.html:792 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" +msgid "" +"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "" -#: website/public/index.html:809 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "" -#: website/public/index.html:810 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "" -#: website/public/index.html:812 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" -"The % button does different things after + and ×. Let’s find both rules and try them " -"in a small calculator." +"The % button does different things after + and ×. Let’s find both rules and " +"try them in a small calculator." msgstr "" -#: website/public/index.html:818 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "" @@ -8172,7 +8447,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:821 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" @@ -8184,26 +8459,28 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:835 +#: website/public/index.html:839 #, 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}" +"{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 "" -#: website/public/index.html:844 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "" -#: website/public/index.html:845 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" -"REA helps the agent read the code behind the % button. It applies two different rules:" +"REA helps the agent read the code behind the % button. It applies two " +"different rules:" msgstr "" -#: website/public/index.html:851 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "" @@ -8211,13 +8488,13 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:852 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "" -#: website/public/index.html:858 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "" @@ -8225,56 +8502,56 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:859 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "" -#: website/public/index.html:866 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "" -#: website/public/index.html:867 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" -#: website/public/index.html:915 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "" -#: website/public/index.html:923 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "" -#: website/public/index.html:926 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "" -#: website/public/index.html:933 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:934 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." msgstr "" -#: website/public/index.html:940 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "" -#: website/public/index.html:949 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "" @@ -8287,12 +8564,13 @@ msgstr "" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:953 +#: website/public/index.html:957 #, 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}" +"{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}: @@ -8302,12 +8580,13 @@ msgstr "" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:962 +#: website/public/index.html:966 #, 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}" +"{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}: @@ -8316,30 +8595,31 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:970 +#: website/public/index.html:974 #, 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}" +"rules{ph3}{ph4}Crosscheck the branch with Microsoft’s source, then try + and" +" × above.{ph5}" msgstr "" -#: website/public/index.html:984 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/index.html:995 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "" -#: website/public/index.html:1005 +#: website/public/index.html:1009 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." +"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 "" #. {ph0}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1010 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" -"{ph0}Percentage implementation{ph1} · {ph2}Microsoft’s test cases{ph3} · {ph4}Native " -"setup guide{ph5}" +"{ph0}Percentage implementation{ph1} · {ph2}Microsoft’s test cases{ph3} · " +"{ph4}Native setup guide{ph5}" msgstr "" -#: website/public/index.html:1030 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "" -#: website/public/index.html:1031 +#: website/public/index.html:1035 msgctxt "page:index.html" -msgid "Explore a feature in a released app or game, with code and checked results." +msgid "" +"Explore a feature in a released app or game, with code and checked results." msgstr "" -#: website/public/index.html:1036 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "" -#: website/public/index.html:1040 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/index.html:1041 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/index.html:1042 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" -"Trace Aegis's six-digit login code through its released APK, then move a demo clock to" -" see why it changes every 30 seconds." +"Trace Aegis's six-digit login code through its released APK, then move a " +"demo clock to see why it changes every 30 seconds." msgstr "" -#: website/public/index.html:1046 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "" -#: website/public/index.html:1051 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/index.html:1052 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/index.html:1053 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" -"Follow Notion's packaged JavaScript to the system clipboard and see how a copy " -"preserves rich block data." +"Follow Notion's packaged JavaScript to the system clipboard and see how a " +"copy preserves rich block data." msgstr "" -#: website/public/index.html:1057 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/index.html:1062 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/index.html:1063 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/index.html:1064 +#: website/public/index.html:1068 msgctxt "page:index.html" -msgid "Recover how a ball's position becomes left/right sound in a 1996 Windows game." +msgid "" +"Recover how a ball's position becomes left/right sound in a 1996 Windows " +"game." msgstr "" -#: website/public/index.html:1068 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/index.html:1079 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "" -#: website/public/index.html:1080 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "" -#: website/public/index.html:1081 +#: website/public/index.html:1085 msgctxt "page:index.html" -msgid "Download our Notes example, trace its CSV export, and check one changed input." +msgid "" +"Download our Notes example, trace its CSV export, and check one changed " +"input." msgstr "" -#: website/public/index.html:1086 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "" -#: website/public/index.html:1095 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "" -#: website/public/index.html:1096 +#: website/public/index.html:1100 msgctxt "page:index.html" -msgid "These guides cover setup and a first investigation for each kind of software." +msgid "" +"These guides cover setup and a first investigation for each kind of " +"software." msgstr "" -#: website/public/index.html:1103 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "" -#: website/public/index.html:1104 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" -"Inspect functions, strings, references and call relationships in executables and " -"libraries." +"Inspect functions, strings, references and call relationships in executables" +" and libraries." msgstr "" -#: website/public/index.html:1108 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "" -#: website/public/index.html:1111 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "" -#: website/public/index.html:1112 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" -"Map modules, routes, IPC and native dependencies from an application folder or ASAR " -"archive." +"Map modules, routes, IPC and native dependencies from an application folder " +"or ASAR archive." msgstr "" -#: website/public/index.html:1116 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "" -#: website/public/index.html:1119 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "" -#: website/public/index.html:1120 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" -"Capture selected browser or process activity, then compare the results across runs." +"Capture selected browser or process activity, then compare the results " +"across runs." msgstr "" -#: website/public/index.html:1124 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "" -#: website/public/index.html:1128 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "" @@ -8532,7 +8820,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1133 +#: website/public/index.html:1137 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website" @@ -8545,14 +8833,15 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:1147 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" -"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Clone this website for me.{ph4}{ph5}{ph6}" +"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Clone this website for " +"me.{ph4}{ph5}{ph6}" msgstr "" -#: website/public/index.html:1156 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "" @@ -8565,10 +8854,11 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1161 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" -msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction" +msgid "" +"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction" msgstr "" #. {ph0}: #. {ph4}: -#: website/public/index.html:1175 +#: website/public/index.html:1179 #, 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}" +"{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}: -#: website/public/index.html:1184 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "" -#: website/public/index.html:1195 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1197 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -8608,7 +8899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1200 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -8616,7 +8907,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1204 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." @@ -8630,72 +8921,73 @@ msgstr "" #: 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." +"Reverse engineer apps, binaries and browser behavior with your coding agent." +" Follow clear guides and try interactive examples with REA." msgstr "" -#: website/public/index.html:261 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "" -#: website/public/index.html:285 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "" -#: website/public/index.html:297 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "" -#: website/public/index.html:365 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "" -#: website/public/index.html:521 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "" -#: website/public/index.html:602 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "" -#: website/public/index.html:655 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" -"Dinosaur mini-game. Use the Jump button or press Space while the game is focused." +"Dinosaur mini-game. Use the Jump button or press Space while the game is " +"focused." msgstr "" -#: website/public/index.html:826 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "" -#: website/public/index.html:872 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "" -#: website/public/index.html:1138 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "" -#: website/public/index.html:1166 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "" -#: website/public/index.html:1230 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/aegis/index.html:110 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "" @@ -8704,42 +8996,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:202 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "" #. {ph0}:
-#: website/public/showcase/aegis/index.html:206 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "" -#: website/public/showcase/aegis/index.html:207 +#: website/public/showcase/aegis/index.html:211 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." +"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 "" -#: website/public/showcase/aegis/index.html:212 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "" -#: website/public/showcase/aegis/index.html:215 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "" -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "" @@ -8750,12 +9042,13 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:223 +#: website/public/showcase/aegis/index.html:227 #, 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}" +"{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}: @@ -8764,12 +9057,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:232 +#: website/public/showcase/aegis/index.html:236 #, 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}" +"{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}: @@ -8778,22 +9072,23 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:240 +#: website/public/showcase/aegis/index.html:244 #, 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}" +"{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 "" -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -8801,7 +9096,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -8809,7 +9104,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -8817,7 +9112,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -8825,7 +9120,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:259 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -8833,25 +9128,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:260 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:265 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:266 +#: website/public/showcase/aegis/index.html:270 #, 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." +"The app shows a changing login code. We want to find {ph0}what makes it " +"change{ph1} and reproduce that behavior." msgstr "" #. {ph0}: -#: website/public/showcase/aegis/index.html:272 +#: website/public/showcase/aegis/index.html:276 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/aegis/index.html:276 -#: website/public/showcase/aegis/index.html:739 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "" @@ -8881,67 +9176,68 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:285 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" -"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-digit login " -"code, explain why it changes every 30 seconds, and rebuild a small demo where I can " -"change the time.{ph4}{ph5}{ph6}" +"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-" +"digit login code, explain why it changes every 30 seconds, and rebuild a " +"small demo where I can change the time.{ph4}{ph5}{ph6}" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:296 +#: website/public/showcase/aegis/index.html:300 #, 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}" +"An example prompt for the downloaded APK, with REA's Android analysis " +"configured. {ph0}Get the APK and analysis setup ↓{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:304 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:305 +#: website/public/showcase/aegis/index.html:309 #, 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." +"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 "" -#: website/public/showcase/aegis/index.html:312 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "" -#: website/public/showcase/aegis/index.html:317 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "" -#: website/public/showcase/aegis/index.html:318 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "" -#: website/public/showcase/aegis/index.html:321 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "" -#: website/public/showcase/aegis/index.html:323 -#: website/public/showcase/aegis/index.html:650 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "" @@ -8950,35 +9246,35 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:324 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:332 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "" -#: website/public/showcase/aegis/index.html:340 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "" -#: website/public/showcase/aegis/index.html:346 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "" -#: website/public/showcase/aegis/index.html:361 -#: website/public/showcase/aegis/index.html:661 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:368 -#: website/public/showcase/aegis/index.html:666 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "" @@ -8987,107 +9283,109 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:377 +#: website/public/showcase/aegis/index.html:381 #, 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." +"At 59 seconds: {ph0}287082.{ph1} At 60 seconds: {ph2}359152.{ph3} Moving " +"within one block leaves the code unchanged." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:384 +#: website/public/showcase/aegis/index.html:388 #, 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." +"The key is fixed, public {ph0}RFC 6238 test data{ph1}. The demo implements " +"the calculation recovered from the APK." msgstr "" -#: website/public/showcase/aegis/index.html:391 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" -"The diagram shows the result at 59 seconds. Enable JavaScript to change the clock." +"The diagram shows the result at 59 seconds. Enable JavaScript to change the " +"clock." msgstr "" -#: website/public/showcase/aegis/index.html:400 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "" -#: website/public/showcase/aegis/index.html:403 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "" -#: website/public/showcase/aegis/index.html:406 -#: website/public/showcase/aegis/index.html:438 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/aegis/index.html:416 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:428 +#: website/public/showcase/aegis/index.html:432 #, 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." +"{ph0} is the calculation candidate; the other two concern the progress bar " +"and imported accounts. TOTP means a time-based one-time password." msgstr "" -#: website/public/showcase/aegis/index.html:435 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "" -#: website/public/showcase/aegis/index.html:452 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:463 +#: website/public/showcase/aegis/index.html:467 #, 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}." +"REA identifies the timestamp overload and finds the base method's callers. " +"Inspecting {ph0} then shows the display calling {ph1}." msgstr "" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:471 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" -"Requests show a shortened input path. Result class names omit the common {ph0} prefix." +"Requests show a shortened input path. Result class names omit the common " +"{ph0} prefix." msgstr "" -#: website/public/showcase/aegis/index.html:478 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:479 +#: website/public/showcase/aegis/index.html:483 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:494 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -9095,7 +9393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:502 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -9103,65 +9401,66 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:510 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" msgstr "" -#: website/public/showcase/aegis/index.html:522 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "" -#: website/public/showcase/aegis/index.html:552 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:569 +#: website/public/showcase/aegis/index.html:573 #, 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." +"{ph0}Time chooses the block.{ph1} Seconds 30 through 59 all give block 1. At" +" 60 seconds, the block becomes 2." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:575 +#: website/public/showcase/aegis/index.html:579 #, 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." +"{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}: -#: website/public/showcase/aegis/index.html:582 +#: website/public/showcase/aegis/index.html:586 #, 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." +"{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}: -#: website/public/showcase/aegis/index.html:589 +#: website/public/showcase/aegis/index.html:593 #, 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}" +"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 "" -#: website/public/showcase/aegis/index.html:598 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "" @@ -9170,177 +9469,179 @@ msgstr "" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:599 +#: website/public/showcase/aegis/index.html:603 #, 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}." +"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 "" -#: website/public/showcase/aegis/index.html:607 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "" -#: website/public/showcase/aegis/index.html:621 +#: website/public/showcase/aegis/index.html:625 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:628 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "" -#: website/public/showcase/aegis/index.html:638 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:639 +#: website/public/showcase/aegis/index.html:643 #, 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." +"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 "" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "" -#: website/public/showcase/aegis/index.html:651 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "" -#: website/public/showcase/aegis/index.html:656 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "" -#: website/public/showcase/aegis/index.html:671 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:678 +#: website/public/showcase/aegis/index.html:682 #, 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:" +"The generator also matches the six published SHA-1 reference cases in " +"{ph0}RFC 6238{ph1}. Check the browser implementation against them:" msgstr "" -#: website/public/showcase/aegis/index.html:686 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "" -#: website/public/showcase/aegis/index.html:693 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "" -#: website/public/showcase/aegis/index.html:697 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" -"The reference cases use eight digits. The check also verifies their six-digit results." +"The reference cases use eight digits. The check also verifies their six-" +"digit results." msgstr "" -#: website/public/showcase/aegis/index.html:706 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" -"Verification runs extracted Java methods and the new demo. The Android APK was " -"inspected statically." +"Verification runs extracted Java methods and the new demo. The Android APK " +"was inspected statically." msgstr "" -#: website/public/showcase/aegis/index.html:713 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:714 +#: website/public/showcase/aegis/index.html:718 #, 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." +"{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}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:719 +#: website/public/showcase/aegis/index.html:723 #, 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." +"Android analysis needs a full JDK 17 or later. Select it with {ph0} or " +"{ph1}. This case used JDK 21." msgstr "" -#: website/public/showcase/aegis/index.html:725 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "" -#: website/public/showcase/aegis/index.html:729 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "" -#: website/public/showcase/aegis/index.html:735 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "" -#: website/public/showcase/aegis/index.html:738 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:752 +#: website/public/showcase/aegis/index.html:756 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:757 +#: website/public/showcase/aegis/index.html:761 #, 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}" +"A next question: {ph0}what happens when an account uses eight digits or a " +"different time interval?{ph1}" msgstr "" -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "" -#. {ph0}: +#. {ph0}: #. {ph1}: #. {ph2}: #. {ph5}: -#: website/public/showcase/aegis/index.html:769 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -9362,17 +9663,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:785 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "" -#: website/public/showcase/aegis/index.html:792 +#: website/public/showcase/aegis/index.html:796 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." +"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 "" #: website/public/showcase/aegis/index.html:6 @@ -9383,41 +9685,41 @@ msgstr "" #: 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." +"Inspect the Aegis Android APK with REA, recover its six-digit login-code " +"calculation and try a reconstruction with an adjustable clock." msgstr "" -#: website/public/showcase/aegis/index.html:252 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "" -#: website/public/showcase/aegis/index.html:276 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "" -#: website/public/showcase/aegis/index.html:489 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "" -#: website/public/showcase/aegis/index.html:739 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "" -#: website/public/showcase/aegis/index.html:816 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/ctf/index.html:109 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "" @@ -9426,44 +9728,44 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:201 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "" -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "" #. {ph0}:
-#: website/public/showcase/ctf/index.html:205 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:206 +#: website/public/showcase/ctf/index.html:210 #, 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}." +"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 "" -#: website/public/showcase/ctf/index.html:211 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "" -#: website/public/showcase/ctf/index.html:214 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "" @@ -9474,12 +9776,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:224 +#: website/public/showcase/ctf/index.html:228 #, 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}" +"{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}: @@ -9488,12 +9791,13 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:232 +#: website/public/showcase/ctf/index.html:236 #, 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}" +"{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}: @@ -9502,27 +9806,29 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:240 +#: website/public/showcase/ctf/index.html:244 #, 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}" +"{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 "" -#: website/public/showcase/ctf/index.html:249 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" -msgid "The challenge is by joseph, published in DownUnderCTF's official repository." +msgid "" +"The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "" -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -9530,7 +9836,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -9538,7 +9844,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -9546,7 +9852,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -9554,7 +9860,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:263 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -9562,25 +9868,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:264 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "" -#: website/public/showcase/ctf/index.html:269 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:270 +#: website/public/showcase/ctf/index.html:274 #, 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." +"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 "" #. {ph0}: -#: website/public/showcase/ctf/index.html:277 +#: website/public/showcase/ctf/index.html:281 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/ctf/index.html:282 website/public/showcase/ctf/index.html:501 -#: website/public/showcase/ctf/index.html:525 website/public/showcase/ctf/index.html:595 -#: website/public/showcase/ctf/index.html:742 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "" @@ -9610,103 +9918,105 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:291 +#: website/public/showcase/ctf/index.html:295 #, 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}" +"{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 "" -#: website/public/showcase/ctf/index.html:300 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" -"An example prompt, with the downloaded challenge available locally and a native " -"analysis provider connected." +"An example prompt, with the downloaded challenge available locally and a " +"native analysis provider connected." msgstr "" -#: website/public/showcase/ctf/index.html:306 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "" -#: website/public/showcase/ctf/index.html:309 website/public/showcase/ctf/index.html:345 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/ctf/index.html:325 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "" -#: website/public/showcase/ctf/index.html:335 +#: website/public/showcase/ctf/index.html:339 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." +"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:342 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "" -#: website/public/showcase/ctf/index.html:357 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:370 +#: website/public/showcase/ctf/index.html:374 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:378 +#: website/public/showcase/ctf/index.html:382 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." +"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 "" -#: website/public/showcase/ctf/index.html:386 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "" -#: website/public/showcase/ctf/index.html:387 +#: website/public/showcase/ctf/index.html:391 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:407 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "" -#: website/public/showcase/ctf/index.html:414 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "" -#: website/public/showcase/ctf/index.html:420 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "" -#: website/public/showcase/ctf/index.html:427 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "" @@ -9715,29 +10025,30 @@ msgstr "" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:436 +#: website/public/showcase/ctf/index.html:440 #, 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}." +"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 "" -#: website/public/showcase/ctf/index.html:445 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "" -#: website/public/showcase/ctf/index.html:446 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" -"Select a step to connect the summing helper and its caller to the same rule in C." +"Select a step to connect the summing helper and its caller to the same rule " +"in C." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:456 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -9745,7 +10056,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:464 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -9753,7 +10064,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:472 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -9761,7 +10072,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:480 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -9769,18 +10080,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:488 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "" -#: website/public/showcase/ctf/index.html:500 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "" -#: website/public/showcase/ctf/index.html:524 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "" @@ -9788,7 +10099,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:553 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -9796,172 +10107,174 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:557 +#: website/public/showcase/ctf/index.html:561 #, 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." +"{ph0}02 · Check the mask cell.{ph1} A zero value skips the character; a " +"nonzero value includes it." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:561 +#: website/public/showcase/ctf/index.html:565 #, 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." +"{ph0}03 · Add a character code.{ph1} The input's integer at the same offset " +"is added to the sum." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:565 +#: website/public/showcase/ctf/index.html:569 #, 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." +"{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}: #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:570 +#: website/public/showcase/ctf/index.html:574 #, 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}." +"{ph0}05 · Compare with the stored target.{ph1} The caller receives the sum " +"in {ph2}. A mismatch jumps to {ph3}." msgstr "" -#: website/public/showcase/ctf/index.html:577 +#: website/public/showcase/ctf/index.html:581 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." +"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 "" -#: website/public/showcase/ctf/index.html:585 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "" -#: website/public/showcase/ctf/index.html:586 +#: website/public/showcase/ctf/index.html:590 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." +"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 "" -#: website/public/showcase/ctf/index.html:594 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:622 +#: website/public/showcase/ctf/index.html:626 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:628 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "" -#: website/public/showcase/ctf/index.html:634 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:635 +#: website/public/showcase/ctf/index.html:639 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "" -#: website/public/showcase/ctf/index.html:646 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "" -#: website/public/showcase/ctf/index.html:647 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "" -#: website/public/showcase/ctf/index.html:652 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "" -#: website/public/showcase/ctf/index.html:657 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "" -#: website/public/showcase/ctf/index.html:665 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "" -#: website/public/showcase/ctf/index.html:668 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "" -#: website/public/showcase/ctf/index.html:669 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "" -#: website/public/showcase/ctf/index.html:681 +#: website/public/showcase/ctf/index.html:685 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." +"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:687 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "" -#: website/public/showcase/ctf/index.html:688 +#: website/public/showcase/ctf/index.html:692 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." +"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 "" -#: website/public/showcase/ctf/index.html:695 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "" -#: website/public/showcase/ctf/index.html:699 +#: website/public/showcase/ctf/index.html:703 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." +"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 "" #. {ph0}: #. {ph3}: -#. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:704 +#: website/public/showcase/ctf/index.html:708 #, 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}" +"{ph0}Compare with the organizers' source{ph1} · {ph2}Challenge metadata and " +"flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "" -#: website/public/showcase/ctf/index.html:724 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "" -#: website/public/showcase/ctf/index.html:725 +#: website/public/showcase/ctf/index.html:729 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." +"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:731 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "" -#: website/public/showcase/ctf/index.html:735 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "" -#: website/public/showcase/ctf/index.html:741 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:758 +#: website/public/showcase/ctf/index.html:762 #, 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." +"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 "" -#: website/public/showcase/ctf/index.html:763 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "" @@ -10032,74 +10347,75 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/ctf/index.html:256 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "" -#: website/public/showcase/ctf/index.html:282 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "" -#: website/public/showcase/ctf/index.html:393 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/ctf/index.html:399 +#: website/public/showcase/ctf/index.html:403 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." +"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 "" -#: website/public/showcase/ctf/index.html:451 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:501 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "" -#: website/public/showcase/ctf/index.html:525 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "" -#: website/public/showcase/ctf/index.html:595 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "" -#: website/public/showcase/ctf/index.html:669 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "" -#: website/public/showcase/ctf/index.html:742 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "" -#: website/public/showcase/ctf/index.html:785 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/dx-ball/index.html:109 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "" @@ -10108,55 +10424,55 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:201 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "" -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:205 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "" -#: website/public/showcase/dx-ball/index.html:206 +#: website/public/showcase/dx-ball/index.html:210 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:210 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:227 +#: website/public/showcase/dx-ball/index.html:231 #, 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}" +"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 "" -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -10164,7 +10480,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -10172,7 +10488,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:242 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -10180,23 +10496,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:243 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:251 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "" -#: website/public/showcase/dx-ball/index.html:255 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "" -#: website/public/showcase/dx-ball/index.html:259 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "" @@ -10207,7 +10523,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:262 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -10215,31 +10531,32 @@ msgid "" "coverage{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:274 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "" -#: website/public/showcase/dx-ball/index.html:275 +#: website/public/showcase/dx-ball/index.html:279 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:285 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:286 +#: website/public/showcase/dx-ball/index.html:290 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." +"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}: -#: website/public/showcase/dx-ball/index.html:293 +#: website/public/showcase/dx-ball/index.html:297 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/dx-ball/index.html:297 -#: website/public/showcase/dx-ball/index.html:488 -#: website/public/showcase/dx-ball/index.html:509 -#: website/public/showcase/dx-ball/index.html:580 -#: website/public/showcase/dx-ball/index.html:734 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "" @@ -10271,149 +10588,151 @@ msgstr "" #. {ph3}:
#. {ph4}: -#: website/public/showcase/dx-ball/index.html:306 +#: website/public/showcase/dx-ball/index.html:310 #, 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}" +"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. " +"Explain the calculation and show the code.{ph3}{ph4}{ph5}" msgstr "" -#: website/public/showcase/dx-ball/index.html:314 +#: website/public/showcase/dx-ball/index.html:318 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:319 +#: website/public/showcase/dx-ball/index.html:323 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." +"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 "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:325 +#: website/public/showcase/dx-ball/index.html:329 #, 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:333 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "" -#: website/public/showcase/dx-ball/index.html:336 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:346 +#: website/public/showcase/dx-ball/index.html:350 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." +"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:352 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "" -#: website/public/showcase/dx-ball/index.html:355 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:359 -#: website/public/showcase/dx-ball/index.html:383 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/dx-ball/index.html:365 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:372 +#: website/public/showcase/dx-ball/index.html:376 #, 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." +"The function result includes instructions alongside pseudocode and callers. " +"Here, {ph0} exposes the integer input missing from the decompiler view." msgstr "" -#: website/public/showcase/dx-ball/index.html:379 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "" -#: website/public/showcase/dx-ball/index.html:389 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:396 +#: website/public/showcase/dx-ball/index.html:400 #, 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}." +"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 "" -#: website/public/showcase/dx-ball/index.html:403 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:407 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "" -#: website/public/showcase/dx-ball/index.html:417 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:424 +#: website/public/showcase/dx-ball/index.html:428 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." +"The returned bytes establish the two arithmetic constants and initial pan " +"scale. The agent now has the values needed for the C expression." msgstr "" -#: website/public/showcase/dx-ball/index.html:432 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "" -#: website/public/showcase/dx-ball/index.html:433 +#: website/public/showcase/dx-ball/index.html:437 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." +"Follow the five steps below. Each selection highlights the original " +"instructions and the C lines they informed." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:443 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -10421,7 +10740,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:451 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -10429,7 +10748,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:459 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -10437,7 +10756,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:467 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -10445,18 +10764,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:475 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "" -#: website/public/showcase/dx-ball/index.html:487 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:508 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "" @@ -10466,13 +10785,14 @@ msgstr "" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:535 +#: website/public/showcase/dx-ball/index.html:539 #, 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}." +"{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}: @@ -10481,12 +10801,12 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:542 +#: website/public/showcase/dx-ball/index.html:546 #, 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." +"{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}: @@ -10495,12 +10815,13 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:548 +#: website/public/showcase/dx-ball/index.html:552 #, 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}." +"{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}: @@ -10509,13 +10830,13 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:554 +#: website/public/showcase/dx-ball/index.html:558 #, 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}." +"{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}: @@ -10523,94 +10844,95 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:561 +#: website/public/showcase/dx-ball/index.html:565 #, 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." +"{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 "" -#: website/public/showcase/dx-ball/index.html:570 +#: website/public/showcase/dx-ball/index.html:574 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." +"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:576 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "" -#: website/public/showcase/dx-ball/index.html:579 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "" -#: website/public/showcase/dx-ball/index.html:613 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:614 +#: website/public/showcase/dx-ball/index.html:618 #, 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:" +"The brick-hit function at {ph0} scales its tile coordinate by 30, adds 20, " +"then pushes it before the call:" msgstr "" -#: website/public/showcase/dx-ball/index.html:628 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "" -#: website/public/showcase/dx-ball/index.html:631 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "" -#: website/public/showcase/dx-ball/index.html:637 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "" -#: website/public/showcase/dx-ball/index.html:638 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "" -#: website/public/showcase/dx-ball/index.html:645 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "" -#: website/public/showcase/dx-ball/index.html:650 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:654 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "" -#: website/public/showcase/dx-ball/index.html:655 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "" -#: website/public/showcase/dx-ball/index.html:660 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -10621,91 +10943,94 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/src/gameplay.c#L41" > #. {ph1}: #. {ph2}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" +#. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:665 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" -"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence references{ph3}" +"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence " +"references{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:679 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "" -#: website/public/showcase/dx-ball/index.html:680 +#: website/public/showcase/dx-ball/index.html:684 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." +"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:686 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "" -#: website/public/showcase/dx-ball/index.html:687 +#: website/public/showcase/dx-ball/index.html:691 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:695 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "" -#: website/public/showcase/dx-ball/index.html:696 +#: website/public/showcase/dx-ball/index.html:700 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:704 +#: website/public/showcase/dx-ball/index.html:708 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." +"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 "" #. {ph0}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" +#. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:710 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "" -#: website/public/showcase/dx-ball/index.html:719 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "" -#: website/public/showcase/dx-ball/index.html:720 +#: website/public/showcase/dx-ball/index.html:724 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." +"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:726 +#: website/public/showcase/dx-ball/index.html:730 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:" +"To inspect the sound-pan function yourself, follow the DX-Ball project's " +"setup instructions and supply its matching original target. Then run:" msgstr "" -#: website/public/showcase/dx-ball/index.html:733 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "" @@ -10714,38 +11039,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:747 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" -msgid "{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local setup.{ph3}" +msgid "" +"{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local " +"setup.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:752 +#: website/public/showcase/dx-ball/index.html:756 #, 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}" +"{ph0}REA analysis workflow{ph1}{ph2}Follow the calculation, then use the " +"same approach with your own binary.{ph3}" msgstr "" #. {ph0}: +#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ENTITIES_OWNER.md" +#. > #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:759 +#: website/public/showcase/dx-ball/index.html:763 #, 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}" +"{ph0}Particles and bonus production{ph1}{ph2}A larger investigation into " +"state, queues and pixel writes.{ph3}" msgstr "" -#: website/public/showcase/dx-ball/index.html:770 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "" @@ -10758,319 +11086,324 @@ msgstr "" #: 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." +"Follow a DX-Ball reconstruction from binary analysis through REA to " +"maintained C, original-x86 tests and matching compiled function bytes." msgstr "" -#: website/public/showcase/dx-ball/index.html:213 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" -msgid "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" +msgid "" +"DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/dx-ball/index.html:219 +#: website/public/showcase/dx-ball/index.html:223 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." +"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 "" -#: website/public/showcase/dx-ball/index.html:237 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/dx-ball/index.html:246 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "" -#: website/public/showcase/dx-ball/index.html:297 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "" -#: website/public/showcase/dx-ball/index.html:438 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "" -#: website/public/showcase/dx-ball/index.html:488 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "" -#: website/public/showcase/dx-ball/index.html:509 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "" -#: website/public/showcase/dx-ball/index.html:580 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "" -#: website/public/showcase/dx-ball/index.html:734 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "" -#: website/public/showcase/dx-ball/index.html:793 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/index.html:109 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "" -#: website/public/showcase/index.html:202 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "" -#: website/public/showcase/index.html:203 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" -"Android, games, Electron and a CTF challenge, with code, figures and checked results." +"Android, games, Electron and a CTF challenge, with code, figures and checked" +" results." msgstr "" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "" -#: website/public/showcase/index.html:212 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "" -#: website/public/showcase/index.html:213 +#: website/public/showcase/index.html:217 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." +"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 "" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "" -#: website/public/showcase/index.html:221 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "" -#: website/public/showcase/index.html:224 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "" -#: website/public/showcase/index.html:230 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "" -#: website/public/showcase/index.html:231 +#: website/public/showcase/index.html:235 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." +"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 "" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "" -#: website/public/showcase/index.html:239 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "" -#: website/public/showcase/index.html:242 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "" -#: website/public/showcase/index.html:248 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "" -#: website/public/showcase/index.html:249 +#: website/public/showcase/index.html:253 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." +"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 "" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "" -#: website/public/showcase/index.html:258 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "" -#: website/public/showcase/index.html:261 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "" -#: website/public/showcase/index.html:267 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "" -#: website/public/showcase/index.html:268 +#: website/public/showcase/index.html:272 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." +"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 "" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "" -#: website/public/showcase/index.html:276 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "" -#: website/public/showcase/index.html:279 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "" -#: website/public/showcase/index.html:285 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "" -#: website/public/showcase/index.html:286 +#: website/public/showcase/index.html:290 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." +"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 "" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "" -#: website/public/showcase/index.html:294 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "" -#: website/public/showcase/index.html:297 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "" -#: website/public/showcase/index.html:302 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "" -#: website/public/showcase/index.html:303 +#: website/public/showcase/index.html:307 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." +"The guides walk through a native calculation, an Electron export and a " +"browser request. Each starts with a prompt and a concrete target." msgstr "" -#: website/public/showcase/index.html:307 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "" @@ -11083,16 +11416,16 @@ msgstr "" #: 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." +"Follow REA investigations through code, figures and demos: an Android " +"authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." msgstr "" -#: website/public/showcase/index.html:325 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/notion/index.html:109 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "" @@ -11101,37 +11434,37 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:201 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "" -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "" #. {ph0}:
-#: website/public/showcase/notion/index.html:205 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:206 +#: website/public/showcase/notion/index.html:210 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." +"Trace a clipboard call from Notion's page API, through the preload and main " +"process, to Electron's clipboard writer." msgstr "" -#: website/public/showcase/notion/index.html:210 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "" -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "" @@ -11143,12 +11476,12 @@ msgstr "" #. {ph4}:
#. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:216 +#: website/public/showcase/notion/index.html:220 #, 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}" +"{ph0}01 · Page-facing API{ph1} {ph2}{ph3}{ph4} {ph5}The preload exposes a " +"callable method.{ph6}" msgstr "" #. {ph0}: @@ -11158,12 +11491,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:223 +#: website/public/showcase/notion/index.html:227 #, 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}" +"{ph0}02 · Preload wrapper{ph1} {ph2}{ph3}{ph4} {ph5}The wrapper sends the " +"channel and arguments.{ph6}" msgstr "" #. {ph0}: @@ -11173,12 +11506,12 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:230 +#: website/public/showcase/notion/index.html:234 #, 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}" +"{ph0}03 · Main-process handler{ph1} {ph2}{ph3}{ph4} {ph5}The receiver checks" +" which page sent it.{ph6}" msgstr "" #. {ph0}: @@ -11188,36 +11521,36 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:237 +#: website/public/showcase/notion/index.html:241 #, 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}" +"{ph0}04 · System clipboard{ph1} {ph2}{ph3}{ph4} {ph5}Electron writes the " +"supplied text and HTML.{ph6}" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:245 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "" -#: website/public/showcase/notion/index.html:249 +#: website/public/showcase/notion/index.html:253 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." +"The packaged code uses the same channel in the preload and main process. " +"Resolving the wrappers reveals the Electron calls behind those names." msgstr "" -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -11225,7 +11558,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:261 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -11233,24 +11566,25 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:262 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "" -#: website/public/showcase/notion/index.html:267 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:268 +#: website/public/showcase/notion/index.html:272 #, 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." +"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}: -#: website/public/showcase/notion/index.html:275 +#: website/public/showcase/notion/index.html:279 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/notion/index.html:279 -#: website/public/showcase/notion/index.html:352 -#: website/public/showcase/notion/index.html:381 -#: website/public/showcase/notion/index.html:412 -#: website/public/showcase/notion/index.html:440 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "" @@ -11282,130 +11616,132 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:288 +#: website/public/showcase/notion/index.html:292 #, 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}" +"{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 "" -#: website/public/showcase/notion/index.html:296 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" -"An example prompt with Notion's local application package available to your coding " -"agent." +"An example prompt with Notion's local application package available to your " +"coding agent." msgstr "" -#: website/public/showcase/notion/index.html:301 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "" -#: website/public/showcase/notion/index.html:302 +#: website/public/showcase/notion/index.html:306 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:" +"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 "" -#: website/public/showcase/notion/index.html:308 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "" -#: website/public/showcase/notion/index.html:311 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "" -#: website/public/showcase/notion/index.html:317 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:323 +#: website/public/showcase/notion/index.html:327 #, 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." +"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}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:330 +#: website/public/showcase/notion/index.html:334 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:339 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "" -#: website/public/showcase/notion/index.html:340 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" -"Simplified from the packaged JavaScript, with readable variable names. Unrelated " -"members are omitted." +"Simplified from the packaged JavaScript, with readable variable names. " +"Unrelated members are omitted." msgstr "" -#: website/public/showcase/notion/index.html:346 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:349 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:368 +#: website/public/showcase/notion/index.html:372 #, 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." +"This member supplies the channel name. The implementation of {ph0} tells us " +"how the request leaves the page's process." msgstr "" -#: website/public/showcase/notion/index.html:375 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:378 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:398 +#: website/public/showcase/notion/index.html:402 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:406 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:409 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" @@ -11413,158 +11749,160 @@ msgstr "" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:427 +#: website/public/showcase/notion/index.html:431 #, 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." +"The main process uses another wrapper. Its {ph0} method registers an {ph1} " +"receiver for that channel." msgstr "" -#: website/public/showcase/notion/index.html:434 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:437 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" msgstr "" -#: website/public/showcase/notion/index.html:457 +#: website/public/showcase/notion/index.html:461 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." +"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 "" -#: website/public/showcase/notion/index.html:468 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:469 +#: website/public/showcase/notion/index.html:473 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:475 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "" -#: website/public/showcase/notion/index.html:479 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "" -#: website/public/showcase/notion/index.html:487 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "" -#: website/public/showcase/notion/index.html:500 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "" -#: website/public/showcase/notion/index.html:503 +#: website/public/showcase/notion/index.html:507 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." +"Illustrative text and ID. The recorded module test restores the block data " +"when IDs match; a stale entry returns only text and HTML." msgstr "" -#: website/public/showcase/notion/index.html:509 +#: website/public/showcase/notion/index.html:513 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." +"On paste, Notion looks for the HTML ID and checks it against the saved copy." +" Matching IDs restore the block data." msgstr "" -#: website/public/showcase/notion/index.html:513 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "" -#: website/public/showcase/notion/index.html:521 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "" -#: website/public/showcase/notion/index.html:522 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" -"Notion parses Markdown into block data. This example shows how a table becomes header " -"and data rows." +"Notion parses Markdown into block data. This example shows how a table " +"becomes header and data rows." msgstr "" -#: website/public/showcase/notion/index.html:527 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "" -#: website/public/showcase/notion/index.html:532 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "" -#: website/public/showcase/notion/index.html:539 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "" -#: website/public/showcase/notion/index.html:548 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" -"Recorded output from an extracted Markdown parser. The table becomes rows and cells." +"Recorded output from an extracted Markdown parser. The table becomes rows " +"and cells." msgstr "" -#: website/public/showcase/notion/index.html:555 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:556 +#: website/public/showcase/notion/index.html:560 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:562 +#: website/public/showcase/notion/index.html:566 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." +"Following this handoff explains where the database work runs, and why " +"tracing only the initial IPC request misses the later conversation." msgstr "" -#: website/public/showcase/notion/index.html:569 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "" @@ -11572,73 +11910,76 @@ msgstr "" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:570 +#: website/public/showcase/notion/index.html:574 #, 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." +"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 "" #. {ph0}: 747001 #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:578 +#: website/public/showcase/notion/index.html:582 #, 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." +"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 "" -#: website/public/showcase/notion/index.html:586 +#: website/public/showcase/notion/index.html:590 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." +"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 "" #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:593 +#: website/public/showcase/notion/index.html:597 #, 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." +"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 "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:601 +#: website/public/showcase/notion/index.html:605 #, 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}" +"{ph0}JavaScript application guide{ph1}{ph2}Follow a small Electron " +"application's export feature.{ph3}" msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:608 +#: website/public/showcase/notion/index.html:612 #, 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}" +"{ph0}DX-Ball reconstruction{ph1}{ph2}Follow native instructions to a checked" +" C function.{ph3}" msgstr "" -#: website/public/showcase/notion/index.html:616 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "" @@ -11651,56 +11992,57 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/notion/index.html:257 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "" -#: website/public/showcase/notion/index.html:279 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "" -#: website/public/showcase/notion/index.html:352 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "" -#: website/public/showcase/notion/index.html:381 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:412 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "" -#: website/public/showcase/notion/index.html:440 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "" -#: website/public/showcase/notion/index.html:495 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "" -#: website/public/showcase/notion/index.html:639 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "" -#: website/public/showcase/th04/index.html:109 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "" @@ -11709,42 +12051,42 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:201 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "" -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "" #. {ph0}:
-#: website/public/showcase/th04/index.html:205 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "" -#: website/public/showcase/th04/index.html:206 +#: website/public/showcase/th04/index.html:210 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++." +"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 "" -#: website/public/showcase/th04/index.html:211 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "" -#: website/public/showcase/th04/index.html:212 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "" @@ -11755,12 +12097,12 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:220 +#: website/public/showcase/th04/index.html:224 #, 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}" +"{ph0}01 · Original game{ph1}{ph2}MAIN.EXE{ph3}{ph4}The PC-98 executable and " +"its bullet-angle helper.{ph5}" msgstr "" #. {ph0}: @@ -11769,12 +12111,13 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:227 +#: website/public/showcase/th04/index.html:231 #, 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}" +"{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}: @@ -11783,12 +12126,12 @@ msgstr "" #. {ph3}:
#. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:235 +#: website/public/showcase/th04/index.html:239 #, 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}" +"{ph0}03 · Read the C++{ph1}{ph2}Space → aim → rotate{ph3}{ph4}Connect each " +"operation to the maintained reconstruction.{ph5}" msgstr "" #. {ph0}: @@ -11797,29 +12140,30 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:242 +#: website/public/showcase/th04/index.html:246 #, 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}" +"{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 "" -#: website/public/showcase/th04/index.html:251 +#: website/public/showcase/th04/index.html:255 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." +"REA returns the original code and its analysis evidence. The TH04 project " +"supplies the maintained source and compiler checks." msgstr "" -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -11827,7 +12171,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -11835,7 +12179,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -11843,7 +12187,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:264 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -11851,23 +12195,23 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:265 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:270 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "" -#: website/public/showcase/th04/index.html:271 +#: website/public/showcase/th04/index.html:275 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." +"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 "" #. {ph0}: -#: website/public/showcase/th04/index.html:278 +#: website/public/showcase/th04/index.html:282 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" msgstr "" -#: website/public/showcase/th04/index.html:283 -#: website/public/showcase/th04/index.html:339 -#: website/public/showcase/th04/index.html:516 -#: website/public/showcase/th04/index.html:550 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "" @@ -11898,46 +12242,47 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:292 +#: website/public/showcase/th04/index.html:296 #, 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}" +"{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 "" -#: website/public/showcase/th04/index.html:301 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" -"An example prompt, with the original executable and reconstruction checkout available " -"locally." +"An example prompt, with the original executable and reconstruction checkout " +"available locally." msgstr "" #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:305 +#: website/public/showcase/th04/index.html:309 #, 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:325 +#: website/public/showcase/th04/index.html:329 #, 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}" +"An illustration of the recovered angle math for count 16, player direction " +"40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "" -#: website/public/showcase/th04/index.html:333 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "" -#: website/public/showcase/th04/index.html:338 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "" @@ -11946,64 +12291,64 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:353 +#: website/public/showcase/th04/index.html:357 #, 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}." +"These lines select the pattern before difficulty and performance tuning. " +"{ph0}Read the attack's source{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:364 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:365 +#: website/public/showcase/th04/index.html:369 #, 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." +"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 "" -#: website/public/showcase/th04/index.html:373 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "" -#: website/public/showcase/th04/index.html:376 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "" -#: website/public/showcase/th04/index.html:385 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "" -#: website/public/showcase/th04/index.html:394 +#: website/public/showcase/th04/index.html:398 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." +"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:400 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:404 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "" -#: website/public/showcase/th04/index.html:410 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "" @@ -12011,54 +12356,55 @@ msgstr "" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:418 +#: website/public/showcase/th04/index.html:422 #, 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." +"{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 "" -#: website/public/showcase/th04/index.html:427 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "" -#: website/public/showcase/th04/index.html:431 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "" -#: website/public/showcase/th04/index.html:440 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "" -#: website/public/showcase/th04/index.html:448 +#: website/public/showcase/th04/index.html:452 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." +"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 "" -#: website/public/showcase/th04/index.html:459 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "" -#: website/public/showcase/th04/index.html:460 +#: website/public/showcase/th04/index.html:464 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." +"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}: #. {ph1}: -#: website/public/showcase/th04/index.html:471 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -12066,7 +12412,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:479 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -12074,7 +12420,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:487 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -12082,7 +12428,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:495 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -12090,18 +12436,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:503 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "" -#: website/public/showcase/th04/index.html:515 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "" -#: website/public/showcase/th04/index.html:549 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "" @@ -12109,82 +12455,83 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:578 +#: website/public/showcase/th04/index.html:582 #, 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." +"{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}: #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:583 +#: website/public/showcase/th04/index.html:587 #, 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." +"{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}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:590 +#: website/public/showcase/th04/index.html:594 #, 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." +"{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}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:596 +#: website/public/showcase/th04/index.html:600 #, 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." +"{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}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:602 +#: website/public/showcase/th04/index.html:606 #, 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." +"{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 "" -#: website/public/showcase/th04/index.html:611 +#: website/public/showcase/th04/index.html:615 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." +"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 "" -#: website/public/showcase/th04/index.html:617 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "" -#: website/public/showcase/th04/index.html:620 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "" -#: website/public/showcase/th04/index.html:630 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "" @@ -12201,7 +12548,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:646 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -12209,156 +12556,158 @@ msgid "" "representation{ph5}" msgstr "" -#: website/public/showcase/th04/index.html:666 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "" -#: website/public/showcase/th04/index.html:667 +#: website/public/showcase/th04/index.html:671 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." +"The TH04 project's recorded checks compile the bullet-generation code, " +"including this helper, with its pinned Turbo C++ 4.0J toolchain." msgstr "" -#: website/public/showcase/th04/index.html:674 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "" -#: website/public/showcase/th04/index.html:675 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" -"The compiled bullet-generation code matches a 2,139-byte section of the original " -"executable." +"The compiled bullet-generation code matches a 2,139-byte section of the " +"original executable." msgstr "" -#: website/public/showcase/th04/index.html:681 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "" -#: website/public/showcase/th04/index.html:682 +#: website/public/showcase/th04/index.html:686 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." +"Two separate builds produce the same matching bytes. The recorded input " +"hashes match the maintained source shown here." msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:688 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" -#: website/public/showcase/th04/index.html:696 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "" -#: website/public/showcase/th04/index.html:701 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:702 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "" -#: website/public/showcase/th04/index.html:705 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:706 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "" -#: website/public/showcase/th04/index.html:709 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:710 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "" -#: website/public/showcase/th04/index.html:716 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "" -#: website/public/showcase/th04/index.html:717 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "" -#: website/public/showcase/th04/index.html:722 +#: website/public/showcase/th04/index.html:726 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." +"Compiler checks cover the complete bullet-add code section, including this " +"helper. They also compare its MAP contribution and overlapping relocation." msgstr "" #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:727 +#: website/public/showcase/th04/index.html:731 #, 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." +"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 "" #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:734 +#: website/public/showcase/th04/index.html:738 #, 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." +"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 "" -#: website/public/showcase/th04/index.html:742 +#: website/public/showcase/th04/index.html:746 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." +"The figure illustrates the angle calculation. Full-game controls, timing and" +" PC-98 hardware behavior have separate runtime checks in the reconstruction " +"project." msgstr "" -#: website/public/showcase/th04/index.html:751 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "" -#: website/public/showcase/th04/index.html:752 +#: website/public/showcase/th04/index.html:756 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." +"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 "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:758 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -12370,12 +12719,12 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:764 +#: website/public/showcase/th04/index.html:768 #, 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}" +"{ph0}Bullet-generation source{ph1}{ph2}The complete helper, other pattern " +"types and template tuning.{ph3}" msgstr "" #. {ph0}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:773 +#: website/public/showcase/th04/index.html:777 #, 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}" +"{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}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:782 +#: website/public/showcase/th04/index.html:786 #, 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}" +"{ph0}Current project state{ph1}{ph2}DOS verification and the separate native" +" x64 port.{ph3}" msgstr "" #: website/public/showcase/th04/index.html:6 @@ -12414,60 +12763,62 @@ msgstr "" #: 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." +"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 "" -#: website/public/showcase/th04/index.html:258 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "" -#: website/public/showcase/th04/index.html:283 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "" -#: website/public/showcase/th04/index.html:311 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" -msgid "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" +msgid "" +"TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "" -#: website/public/showcase/th04/index.html:317 +#: website/public/showcase/th04/index.html:321 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." +"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 "" -#: website/public/showcase/th04/index.html:339 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "" -#: website/public/showcase/th04/index.html:466 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:516 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "" -#: website/public/showcase/th04/index.html:550 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "" -#: website/public/showcase/th04/index.html:808 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "" @@ -12492,8 +12843,8 @@ msgstr "" #: 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." +"Interactive calculation is unavailable in this browser. The example shows " +"the code at 59 seconds." msgstr "" #: website/public/assets/aegis-demo.js:62 @@ -12504,7 +12855,9 @@ 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)." +msgid "" +"{passed} / {total} checks passed (six reference cases, at six and eight " +"digits)." msgstr "" #: website/public/assets/aegis-demo.js:81 @@ -12539,7 +12892,8 @@ msgctxt "runtime" msgid "Play again" msgstr "" -#: website/public/assets/dino-demo.js:97 website/public/assets/dino-demo.js:111 +#: website/public/assets/dino-demo.js:97 +#: website/public/assets/dino-demo.js:111 msgctxt "runtime" msgid "Play" msgstr "" @@ -12564,7 +12918,8 @@ msgctxt "runtime" msgid "Running. Space or Jump clears a cactus." msgstr "" -#: website/public/assets/dino-demo.js:183 website/public/assets/dino-demo.js:219 +#: website/public/assets/dino-demo.js:183 +#: website/public/assets/dino-demo.js:219 #: website/public/assets/dino-demo.js:224 msgctxt "runtime" msgid "Paused. Press Play to continue." @@ -12596,15 +12951,15 @@ msgstr "" #: website/public/assets/dino-demo.js:249 msgctxt "runtime" msgid "" -"Replayed the recovered rule. All four values match the controlled original-game check " -"when rounded to three decimals." +"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:252 msgctxt "runtime" msgid "" -"The replay differs from the recorded original-game values. Compare the speed rule and " -"settings above." +"The replay differs from the recorded original-game values. Compare the speed" +" rule and settings above." msgstr "" #: website/public/assets/home.js:29 @@ -12672,9 +13027,9 @@ 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." +"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 "" #: website/public/assets/figures/ctf-mask-equation.svg:25 @@ -12726,10 +13081,10 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:39 @@ -12807,9 +13162,9 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/rea-investigation-flow.svg:31 @@ -12890,10 +13245,10 @@ msgstr "" #: 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." +"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 "" #: website/public/assets/figures/th04-bullet-ring.svg:24 diff --git a/website/locales/vi/messages.po b/website/locales/vi/messages.po index 3a7ac7165ae..70fedc236fd 100644 --- a/website/locales/vi/messages.po +++ b/website/locales/vi/messages.po @@ -8,42 +8,42 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}Nhà{ph1} / Blog" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "Blog." -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "Suy nghĩ về kỹ thuật đảo ngược." #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "Tái thiết trò chơi{ph0}Bài luận" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "Cuộc cách mạng công nghiệp trong kỹ thuật đảo ngược" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 msgctxt "page:blog/index.html" msgid "" "What manual RE and reconstructing TH08, TH095 and TH04 taught me about " @@ -52,36 +52,36 @@ msgstr "" "NHỮNG gì HƯỚNG DẪN SỬ DỤNG LẠI VÀ tái TẠO TH08, TH095 và TH04 đã dạy tôi về " "các agent, xác minh và kiến thức mà các hợp chất trong các dự án." -#: website/public/blog/index.html:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "Đọc bài viết" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Bởi N0zoM1z0 * 10 tháng mười 2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -101,38 +101,38 @@ msgstr "" "Suy nghĩ về kỹ thuật đảo ngược, dựa trên kinh nghiệm thực tế VỚI CÁC agent " "REA và AI." -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " @@ -141,122 +141,122 @@ msgstr "" "REA-Tìm hiểu cách thức hoạt động của phần mềm. Kỹ thuật đảo ngược với agent " "mã hóa của bạn." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "Trang chủ REA" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "Điều hướng chính" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "REA TRÊN GitHub" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "Tham gia Discord của REA" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "Theo DÕI REA Trên X" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -265,35 +265,35 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction" msgstr "{ph0}Nhà{ph1} / {ph2}Blog{ph3} / Tái thiết Touhou" -#: website/public/blog/touhou-reconstruction/index.html:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "Tiểu luận * Tái Thiết Touhou" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "Cuộc cách mạng công nghiệp trong kỹ thuật đảo ngược." -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "Bởi N0zoM1z0 * 10 tháng mười 2026" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "Điểm chính" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -306,7 +306,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -320,7 +320,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -333,7 +333,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -346,7 +346,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -357,65 +357,65 @@ msgstr "" " RE.{ph1} Các phương pháp vẫn đang hình thành. Còn rất nhiều thứ để khám " "phá." -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "Làm thế nào kinh nghiệm hợp chất" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria" msgstr "{ph0}Hướng của con người{ph1} * Tiêu chí mục tiêu và chấp nhận" -#: website/public/blog/touhou-reconstruction/index.html:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "Quyền tự chủ" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "Trợ lý AI" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Choose an experiment.{ph0}Propose a hypothesis." msgstr "Chọn một thử nghiệm.{ph0}Đề xuất một giả thuyết." -#: website/public/blog/touhou-reconstruction/index.html:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "Kiểm chứng" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "Chuẩn kiểm chứng" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Test against a{ph0}concrete reference." msgstr "Kiểm tra chống lại một{ph0}tham chiếu cụ thể." -#: website/public/blog/touhou-reconstruction/index.html:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "Kho mã" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "Bộ nhớ làm việc" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -424,7 +424,7 @@ msgstr "Mã, bằng chứng,{ph0}kiểm tra và bài học." #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -433,26 +433,26 @@ msgstr "Không phù hợp{ph0}{ph1}Sửa đổi giả thuyết{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "A better{ph0}{ph1}starting point{ph2}" msgstr "Một tốt hơn{ph0}{ph1}điểm bắt đầu{ph2}" -#: website/public/blog/touhou-reconstruction/index.html:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "Tái sử dụng" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Pass{ph1} · Keep the result and its evidence" msgstr "{ph0}Vượt qua{ph1} * Giữ kết quả và bằng chứng của nó" -#: website/public/blog/touhou-reconstruction/index.html:363 +#: website/public/blog/touhou-reconstruction/index.html:369 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Each project leaves the next with a better starting point. That includes " @@ -461,14 +461,14 @@ msgstr "" "Mỗi dự án để lại tiếp theo với một điểm khởi đầu tốt hơn. Điều đó bao gồm " "sửa chữa các kiểm tra khi chúng tôi phát hiện ra một khoảng cách." -#: website/public/blog/touhou-reconstruction/index.html:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "Trong bài viết này" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -476,7 +476,7 @@ msgstr "{ph0}Mai 2026{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -484,7 +484,7 @@ msgstr "{ph0} TH08 : sự tiếp tục{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -492,7 +492,7 @@ msgstr "{ph0}Hai cách tiếp cận{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -500,7 +500,7 @@ msgstr "{ph0} TH095 : hợp chất{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -508,7 +508,7 @@ msgstr "{ph0} TH04: trên các kiến trúc{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -516,7 +516,7 @@ msgstr "{ph0}Từ chính xác đến có thể đọc được{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -524,18 +524,18 @@ msgstr "{ph0}Sự thay đổi công nghiệp{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}What becomes possible{ph1}" msgstr "{ph0}Điều gì trở nên khả thi{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "Điều gì đã thay đổi vào tháng 8 năm 2026" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -550,7 +550,7 @@ msgstr "" "là dành nhiều thời gian hơn cho chức năng tiếp theo. Nó cũng có nghĩa là giữ" " một bức tranh ngày càng lớn trong đầu tôi." -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -564,7 +564,7 @@ msgstr "" "có thể hữu ích ở nơi khác, nhưng mỗi trường cần thiết lập những gì nó có thể" " kiểm tra đối với một tham chiếu đáng tin cậy." -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -577,7 +577,7 @@ msgstr "" " và các công cụ phát triển thông thường. Touhou tái thiết đã cho tôi một dự " "án đáng kể trong đó để tìm hiểu." -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -594,7 +594,7 @@ msgstr "" "tạo ra sự khác biệt: tôi có thể dành nhiều sự chú ý hơn cho hướng của dự án " "và về việc kiểm tra của nó có đáng tin cậy hay không." -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -605,7 +605,7 @@ msgstr "" " gì sẽ tồn tại ngoài dự án hiện tại. Liệu trò chơi tiếp theo có được hưởng " "lợi từ mọi thứ chúng ta vừa học được không?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08: xây dựng trên công việc của con người" @@ -614,7 +614,7 @@ msgstr "TH08: xây dựng trên công việc của con người" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -628,7 +628,7 @@ msgstr "" " đáng kể. Nó đi kèm với kiến thức về việc xây dựng và lịch sử đóng góp mà " "tôi đã lưu giữ trong phần tiếp theo." -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -639,7 +639,7 @@ msgstr "" "tiếp tục độc lập của tôi bắt đầu vào ngày 13 tháng tám. Đến ngày 19 tháng 8," " sổ cái đã ghi lại nguồn cho tất cả 1.107 chức năng trò chơi được xác định." -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -650,7 +650,7 @@ msgstr "" "8, khoảng mười một ngày sau khi bắt đầu tiếp tục. Một phiên Bản Web theo " "sau. BẢN PHÁT HÀNH Linux 64-bit gốc đã đến vào ngày 30 tháng 8." -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -666,7 +666,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -685,12 +685,12 @@ msgstr "" " một lời giải thích và kiểm tra nó; một sự không phù hợp mang lại cho nó một" " cái gì đó cụ thể để điều tra." -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "Một kết hợp chính xác với hằng số sai" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -702,7 +702,7 @@ msgstr "" #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -714,7 +714,7 @@ msgstr "" "trở lại mục tự động thu thập. Nguồn tái tạo kiểm tra sức mạnh của người chơi" " chống lại {ph0}. Bản gốc được sử dụng {ph1}, ngưỡng công suất tối đa." -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -729,13 +729,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}" msgstr "{ph0}Tuy nhiên, chức năng đã vượt qua so sánh chính xác.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -750,7 +750,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -766,7 +766,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -781,7 +781,7 @@ msgstr "" "thấy mười hai tài liệu tham khảo không chính xác khác trên năm chức năng " "được chấp nhận." -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -794,7 +794,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -804,7 +804,7 @@ msgstr "" "{ph0}Tài liệu tham khảo xác minh (oracle) cũng cần được xây dựng lại.{ph1} " "Sửa chữa nó là một phần của việc sửa chữa trò chơi." -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -822,7 +822,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -838,7 +838,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -848,7 +848,7 @@ msgstr "" "{ph0}Một lô thành công đã cho chúng tôi cả mã được khôi phục và môi trường " "tốt hơn cho lô tiếp theo.{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "Hai ý tưởng tái thiết khác nhau" @@ -857,7 +857,7 @@ msgstr "Hai ý tưởng tái thiết khác nhau" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -869,7 +869,7 @@ msgstr "" "loại công việc này rõ ràng. Thông báo thông báo rằng việc phát triển thêm sẽ" " diễn ra riêng tư cho đến khi hoàn thành. Một đoạn văn đọc:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" @@ -879,7 +879,7 @@ msgstr "" " tác phẩm của chúng tôi vẽ nên một hình ảnh xấu cho những nỗ lực dịch ngược " "trong tương lai…" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -896,7 +896,7 @@ msgstr "" "muốn thảo luận là về việc tái thiết nên tiến hành như thế nào và đóng góp " "nên được đánh giá như thế nào." -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -909,7 +909,7 @@ msgstr "" "rất nhiều vào chuyên môn của người đó. Niềm tin vào người đóng góp quan " "trọng vì rất nhiều lý do đã xảy ra trong khi họ làm việc." -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -920,7 +920,7 @@ msgstr "" "công cụ. Điều thay đổi đối với tôi là một agent có thể sử dụng kiến thức đó " "để tự mình theo đuổi cuộc điều tra tiếp theo." -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -935,7 +935,7 @@ msgstr "" "có thể kiểm tra lý do tại sao chúng tôi chọn một triển khai, ngay cả khi một" " agent đã làm hầu hết công việc." -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -948,7 +948,7 @@ msgstr "" "đó đặt ra câu hỏi thực sự về tín dụng. Nó cũng thay đổi những gì các nhà bảo" " trì cần biết trước khi chấp nhận đóng góp." -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -963,7 +963,7 @@ msgstr "" "ra khi nào đầu ra của nó sai. Các cộng đồng khác nhau có thể chọn mức độ " "thay đổi mà họ muốn thực hiện." -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -988,7 +988,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1001,14 +1001,14 @@ msgstr "" "trích rút gọn. TH08 ' s {ph4}tín dụng và xuất xứ{ph5} ghi lại ranh giới " "tiếp tục." -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095: kinh nghiệm bắt đầu ghép" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1023,7 +1023,7 @@ msgstr "" "chơi. Nhưng chúng tôi đã biết nhiều hơn về cách bắt đầu tái thiết và cách " "giữ cho nó di chuyển." -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -1037,7 +1037,7 @@ msgstr "" "i386 được đánh dấu có thể chơi được vào ngày 10 tháng 9, khoảng mười hai " "ngày sau khi khởi tạo." -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -1048,7 +1048,7 @@ msgstr "" "thể được hưởng lợi từ công việc được thực hiện trên một trò chơi khác. Kinh " "nghiệm đã có mặt trong các công cụ và trong cách dự án được tổ chức." -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -1063,7 +1063,7 @@ msgstr "" "việc cùng nhau. Bài học đó đã giúp định hình cách chúng tôi tiếp cận BẢN " "dựng toàn bộ CHƯƠNG trình CỦA TH095." -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -1076,7 +1076,7 @@ msgstr "" "khi tôi đã chuyển sang. Các agent tiếp theo có thể sử dụng kết quả mà không " "cần lặp lại điều tra dẫn đến nó." -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -1091,7 +1091,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1103,7 +1103,7 @@ msgstr "" "tiếp theo.{ph1} Chúng ta có thể dành nhiều nỗ lực của dự án tiếp theo cho " "những gì thực sự mới về mục tiêu của nó." -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -1116,7 +1116,7 @@ msgstr "" "phải xây dựng lại toàn bộ lịch sử của dự án để tìm hiểu lý do tại sao nguồn " "trông giống như cách nó làm." -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04: quy trình làm việc tồn tại trong một kiến trúc khác" @@ -1125,7 +1125,7 @@ msgstr "TH04: quy trình làm việc tồn tại trong một kiến trúc khác" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1141,7 +1141,7 @@ msgstr "" "CHƠI Windows. Hiện có {ph2}ReC98 làm việc{ph3} đã cho chúng tôi kiến thức có" " giá trị và tài liệu nguồn ở đây quá." -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1154,7 +1154,7 @@ msgstr "" "chúng và kiểm tra lưu. Công việc hiện tại là một cổng 64 bit gốc. Thiết lập " "phiên bản dos hoạt động trước tiên cung cấp cho cổng đó một tham chiếu." -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1167,7 +1167,7 @@ msgstr "" "mình. Nhưng tác nhân vẫn có thể làm theo một câu hỏi cho đến một kết quả và " "để kết quả đó hướng dẫn thí nghiệm tiếp theo." -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1182,7 +1182,7 @@ msgstr "" "bằng chứng và kiểm tra có sẵn, một agent có thể làm việc thông qua các câu " "hỏi nhiều như nó đã làm trên một tiêu đề Windows." -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1194,7 +1194,7 @@ msgstr "" "mới. Kiến trúc đã xác định vấn đề; quy trình làm việc vẫn cho chúng ta một " "cách để giải quyết nó." -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1211,7 +1211,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1222,12 +1222,12 @@ msgstr "" "kiểm tra thủ công{ph1} · {ph2}Cổng 64-bit{ph3}. Cảng vẫn đang được phát " "triển." -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "Từ mã chính xác đến mã có thể đọc được" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Once a reconstruction works, I want someone else to be able to understand " @@ -1235,7 +1235,7 @@ msgid "" msgstr "" "Khi một công trình tái thiết hoạt động, tôi muốn người khác có thể hiểu nó." -#: website/public/blog/touhou-reconstruction/index.html:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1250,7 +1250,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1267,7 +1267,7 @@ msgstr "" "với bằng chứng. Chúng tôi giữ lý luận với nguồn để người tiếp theo có thể " "thấy cách giải thích đó đến từ đâu." -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1282,14 +1282,14 @@ msgstr "" "nên sở hữu trạng thái đó. Để di chuyển hành vi một cách an toàn, chúng ta " "cần khôi phục mối quan hệ đằng sau quyền truy cập bộ nhớ cũ." -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "Thứ tự tôi sử dụng bây giờ là:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1305,7 +1305,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1322,7 +1322,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1338,7 +1338,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1353,7 +1353,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1370,7 +1370,7 @@ msgstr "" "trình được xây dựng lại vẫn xây dựng và hoạt động chính xác dọc theo các con" " đường chúng ta tập thể dục." -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1384,7 +1384,7 @@ msgstr "" " sẵn cung cấp cho các agent một thất bại cụ thể để điều tra trước khi thực " "hiện một refactor hơn nữa." -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1402,7 +1402,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1421,7 +1421,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1432,12 +1432,12 @@ msgstr "" "nghĩa làm cho kiến thức phục hồi có thể sử dụng được.{ph1} Một cổng sau đó " "có thể xây dựng trên cả hai." -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "Điều gì làm cho điều này một sự thay đổi công nghiệp" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1450,7 +1450,7 @@ msgstr "" "việc của họ đã trở thành một trong những điều hữu ích nhất mà tôi có thể " "làm. Một công cụ tốt hơn có thể giúp với mọi chức năng sau này cần nó." -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1463,7 +1463,7 @@ msgstr "" " đó bất ngờ. Nếu phải đợi tôi quy định từng bước, phần lớn công việc vẫn gắn" " liền với sự chú ý của tôi." -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1476,7 +1476,7 @@ msgstr "" "thất bại sẽ giúp nó hiểu rõ sai lầm đủ để thử lại. Tôi vẫn phải quyết định " "xem bằng chứng tích lũy có hỗ trợ một cột mốc dự án hay không." -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1491,7 +1491,7 @@ msgstr "" "riêng nó. Tác nhân có thể sử dụng chúng để kiểm tra nguồn mà nó đề xuất và " "xem lời giải thích của nó giữ ở đâu." -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1509,7 +1509,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1530,7 +1530,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1548,7 +1548,7 @@ msgstr "" "quả mà nó bị ảnh hưởng. Dự án tiếp theo sau đó có thể kế thừa một công cụ " "mạnh mẽ hơn." -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1564,7 +1564,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1577,7 +1577,7 @@ msgstr "" "họ về phía trước. Làm việc trên một trò chơi có thể cải thiện các điều kiện " "bắt đầu cho một trò chơi khác." -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1589,12 +1589,12 @@ msgstr "" "dụng. Cải thiện những công cụ thay đổi bao nhiêu người tiếp theo—hoặc các " "agent tiếp theo—có thể được thực hiện." -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "Các dự án bây giờ chúng ta có thể xem xét" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1605,7 +1605,7 @@ msgstr "" " là hấp dẫn để đảo ngược kỹ sư và vẫn đòi hỏi nhiều sự chú ý của riêng tôi " "hơn tôi thực tế có thể cung cấp cho nó. Nhiều dự án sẽ ở lại ý tưởng." -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1622,7 +1622,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1633,7 +1633,7 @@ msgstr "" "và kiến thức tích lũy nào sẽ cho phép một agent làm việc về điều này một " "cách đáng tin cậy?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1644,12 +1644,12 @@ msgstr "" " Mỗi người có thể cải thiện cách chúng ta tiếp cận tiếp theo. Tôi muốn tiếp " "tục khám phá xem điều đó có thể đưa chúng ta đi bao xa." -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "Các cột mốc và nguồn dự án" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1683,7 +1683,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1717,7 +1717,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1735,7 +1735,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1759,7 +1759,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1781,7 +1781,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1797,7 +1797,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1818,7 +1818,7 @@ msgstr "" #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1832,7 +1832,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1852,27 +1852,27 @@ msgstr "" "N0zoM1z0 phản ánh về kỹ thuật đảo ngược thủ công, Tái Thiết Touhou với các " "tác nhân AI và cách các hợp chất kiến thức trên TH08, TH095 và PC-98 TH04 ." -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "Kinh nghiệm thực hiện giữa các dự án" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "Bài luận tái thiết Touhou" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -1881,18 +1881,18 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab" msgstr "{ph0}Nhà{ph1}{ph2}/{ph3}Phòng thí nghiệm tốc độ khủng long" -#: website/public/examples/dino-lab/index.html:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "Kiểm tra → xây dựng lại → thay đổi" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "Xây dựng lại quy tắc tốc độ của khủng long." @@ -1901,7 +1901,7 @@ msgstr "Xây dựng lại quy tắc tốc độ của khủng long." #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1914,15 +1914,15 @@ msgstr "" "sử dụng quy tắc của nó để xây dựng trò chơi nhỏ này với {ph2}tốc độ điều " "chỉnh.{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "Trên trang này" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1930,7 +1930,7 @@ msgstr "{ph0}Chơi và thay đổi tốc độ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1938,7 +1938,7 @@ msgstr "{ph0}Đọc quy tắc đã khôi phục{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1946,18 +1946,18 @@ msgstr "{ph0}Kiểm tra việc tái thiết{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Try the analysis{ph1}" msgstr "{ph0}Hãy thử phân tích{ph1}" -#: website/public/examples/dino-lab/index.html:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "Chơi và thay đổi tốc độ" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1968,49 +1968,49 @@ msgstr "" "thử một trò chơi chậm hơn hoặc nhanh hơn; nó chuyển sang một tốc độ cố định." " Chọn quy tắc đã khôi phục để bắt đầu từ 6 và tăng tốc dần trở lại." -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "Chơi bản dựng lại" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "Chơi" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "Nhảy ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "Chơi lại" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "Tốc độ" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "Sử dụng quy tắc tăng tốc đã khôi phục" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 msgctxt "page:examples/dino-lab/index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Quy tắc ban đầu: bắt đầu từ 6, sau đó tăng lên 13." -#: website/public/examples/dino-lab/index.html:287 +#: website/public/examples/dino-lab/index.html:293 msgctxt "page:examples/dino-lab/index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" "Di chuyển thanh trượt để thiết lập tốc độ của riêng bạn. Không gian Hoặc " "Nhảy xóa một cây xương rồng." -#: website/public/examples/dino-lab/index.html:292 +#: website/public/examples/dino-lab/index.html:298 msgctxt "page:examples/dino-lab/index.html" msgid "" "Enable JavaScript to play the reconstruction. The code and explanation above" @@ -2019,7 +2019,7 @@ msgstr "" "Cho PHÉP JavaScript để chơi tái thiết. Mã và giải thích ở trên vẫn có thể " "đọc được." -#: website/public/examples/dino-lab/index.html:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "Đọc kịch BẢN REA trả về" @@ -2027,7 +2027,7 @@ msgstr "Đọc kịch BẢN REA trả về" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2042,7 +2042,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2052,18 +2052,18 @@ msgstr "" "Các cài đặt là {ph0}, {ph1} và {ph2}. Trò chơi chạy nhánh này trên bản cập " "nhật mà không có va chạm." -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "Sử dụng quy tắc tương tự trong trò chơi mới" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "Sao chép" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -2080,18 +2080,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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}Tải xuống quy tắc tốc độ{ph1} · {ph2}Đọc mã trò chơi{ph3}" -#: website/public/examples/dino-lab/index.html:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "Kiểm tra việc tái thiết" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -2102,27 +2102,27 @@ msgstr "" " và lập lịch tự động bị vô hiệu hóa. So sánh những tốc độ ghi lại với một " "phát lại của quy tắc phục hồi." -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "Cập nhật" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "Trò chơi gốc" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "Quy tắc được xây dựng lại" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "Chạy kiểm tra tốc độ" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 msgctxt "page:examples/dino-lab/index.html" msgid "" "Values rounded to three decimals. The branch checks before adding, so the " @@ -2131,14 +2131,14 @@ msgstr "" "Giá trị làm tròn đến ba số thập phân. Chi nhánh kiểm tra trước khi thêm, vì " "vậy gia số cuối cùng có thể mất tốc độ chỉ trên 13." -#: website/public/examples/dino-lab/index.html:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "Hãy tự mình thử phân tích" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -2147,7 +2147,7 @@ msgstr "{ph0}Thiết LẬP REA {ph1} với agent mã hóa của bạn." #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2156,7 +2156,7 @@ msgstr "" "Theo dõi {ph0}các bước kết nối trình duyệt{ph1}, sử dụng {ph2} như url " "trang." -#: website/public/examples/dino-lab/index.html:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -2173,7 +2173,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2185,7 +2185,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agent mã hóa của bạn" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2199,7 +2199,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2214,7 +2214,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -2240,12 +2240,12 @@ msgstr "" "Đọc quy tắc tốc độ của trò chơi khủng long VỚI REA , xây dựng lại nó, sau đó" " thay đổi tốc độ và chơi." -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "Khủng long tốc độ tái thiết" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 msgctxt "page:examples/dino-lab/index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -2254,52 +2254,52 @@ msgstr "" "Khủng long mini-game. Sử dụng Nút Nhảy hoặc Nhấn Không gian trong khi trò " "chơi được tập trung." -#: website/public/examples/dino-lab/index.html:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "Sao chép quy tắc tốc độ được xây dựng lại" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "Sao chép dấu nhắc phân tích khủng long" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}Nhà{ph1} / HỎI ĐÁP" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA CÂU HỎI THƯỜNG GẶP." -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "Thiết lập, cập nhật, phân tích và khắc phục sự cố." -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "Chủ đề" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2307,7 +2307,7 @@ msgstr "{ph0}Thiết lập và cập nhật{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2315,7 +2315,7 @@ msgstr "{ph0}Phân tích{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2323,31 +2323,31 @@ msgstr "{ph0}Khắc phục sự cố{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}Dữ liệu và chia sẻ{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "Thiết lập và cập nhật" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "Cài đặt REA thế nào?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "Thiết bị đầu cuối · thiết lập agent" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "Sao chép" @@ -2355,7 +2355,7 @@ msgstr "Sao chép" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2369,12 +2369,12 @@ msgstr "" "{ph0}Hướng dẫn thiết lập{ph1} trình bày các yêu cầu và bước phân tích đầu " "tiên." -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "NHỮNG agent mã hóa NÀO có thể sử DỤNG REA ?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2389,18 +2389,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}Kết nối agent mã hóa của bạn{ph1}." -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "Cập nhật REA thế nào?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " @@ -2409,13 +2409,13 @@ msgstr "" "REA phát hành thường xuyên, bao gồm sửa lỗi. Nếu bạn đã cài ĐẶT CLI với npm " ":" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "Thiết bị đầu cuối * CÀI ĐẶT CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2425,14 +2425,14 @@ msgstr "" "Thực hiện theo lệnh làm mới thiết lập được in bởi bản cập nhật. Nếu bạn " "thiết lập agent của bạn thông qua {ph0}, chạy đi:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "Thiết bị đầu cuối · thiết lập agent làm mới" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2444,14 +2444,14 @@ msgstr "" " cụ thể, nên cần chạy lại lệnh thiết lập để agent dùng bản mới. Với lệnh CLI" " chạy một lần, thêm lệnh cần dùng sau {ph0}." -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "Đang cài đặt kỹ năng từ skills.sh đủ chưa?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2463,24 +2463,24 @@ msgstr "" "REA{ph1} để kết nối MÁY chủ MCP và cài đặt kỹ năng phù hợp, sau đó khởi động" " lại agent của bạn để nó có thể gọi các công cụ." -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "Phân tích" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "Tôi có thể phân tích gì VỚI REA ?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "Bắt đầu với loại phần mềm bạn có:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2492,7 +2492,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2504,7 +2504,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2513,7 +2513,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2525,12 +2525,12 @@ msgstr "" "phần sụn và tài nguyên đóng gói. {ph0}Xem các nghiên cứu điển hình{ph1} đối " "với các cuộc điều tra làm việc." -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "TÔI có cần Hopper , Ghidra hoặc IDA không ?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2542,7 +2542,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2555,12 +2555,12 @@ msgstr "" " nào có thể được sử dụng. {ph0}Thiết lập phân tích các chương trình mã " "máy{ph1}." -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "Tôi có thể sử DỤNG REA mà không cần agent mã hóa không?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 msgctxt "page:faq/index.html" msgid "" "Yes. The CLI uses the same analysis workflows. For a local JavaScript or " @@ -2569,14 +2569,14 @@ msgstr "" "Vâng. CLI sử dụng cùng một quy trình phân tích. ĐỐI với ỨNG DỤNG JavaScript " "hoặc Electron cục BỘ:" -#: website/public/faq/index.html:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "Thiết bị đầu cuối · phân tích ứng dụng tĩnh" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2587,13 +2587,13 @@ msgstr "" "{ph0}Sử DỤNG CLI {ph1} đối với các tùy chọn cài đặt." # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 msgctxt "page:faq/index.html" msgid "What code does REA return?" msgstr "REA trả về mã gì?" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2608,7 +2608,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2620,12 +2620,12 @@ msgstr "" " kiểm tra việc thực hiện. Các {ph0} DX-Ball tính TOÁN{ph1} và {ph2}CTF cờ " "checker{ph3} cho thấy quá trình đó hoạt động như thế nào." -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "Tôi nên hỏi trợ lý điều gì?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2642,7 +2642,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2650,7 +2650,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agent mã hóa của bạn" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2660,18 +2660,18 @@ msgstr "" "Thay thế đường dẫn bằng mục tiêu của bạn. Các {ph0}hướng dẫn{ph1} cung cấp " "lời nhắc cho các ví dụ gốc, Electron và trình duyệt." -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "Khắc phục sự cố" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "Tại sao agent của tôi không thể thấy CÁC CÔNG cụ REA?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2681,7 +2681,7 @@ msgstr "" "Khởi động lại hoặc kết nối lại agent của bạn sau khi thiết lập. Kiểm tra " "ĐĂNG ký REA của NÓ với {ph0}; CHO Codex :" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "Thiết bị đầu cuối * kiểm tra một khách hàng" @@ -2689,7 +2689,7 @@ msgstr "Thiết bị đầu cuối * kiểm tra một khách hàng" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2700,14 +2700,14 @@ msgstr "" "Nếu báo cáo hiển thị đăng ký bị thiếu hoặc cũ, hãy chạy thiết lập cho khách " "hàng đó:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "Thiết bị đầu cuối · sửa chữa thiết lập của một khách hàng" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2719,14 +2719,14 @@ msgstr "" "mạnh nhưng các công cụ vẫn vắng mặt, hãy kiểm tra LỖI KẾT nối MCP của khách " "hàng. {ph0}Thêm chẩn đoán thiết lập{ph1}." -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "Tôi có cần khởi ĐỘNG Hopper trước không?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2738,14 +2738,14 @@ msgstr "" " chạy đầu tiên của chế độ demo hoặc kích hoạt giấy phép trước khi phân tích " "không giám sát. {ph0}Xem thiết lập nhà cung cấp gốc{ph1}." -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "Tôi nên làm gì khi gặp lỗi?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2757,7 +2757,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2769,17 +2769,17 @@ msgstr "" "điều hành, loại mục tiêu, các bước để tái tạo và đầu ra lỗi. Bao gồm tên nhà" " cung cấp khi sự cố liên quan đến việc phân tích các chương trình mã máy." -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "Dữ liệu và chia sẻ" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA có tải lên ứng dụng của tôi không?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 msgctxt "page:faq/index.html" msgid "" "REA analyzes targets on your machine. Your agent receives the results, and " @@ -2789,7 +2789,7 @@ msgstr "" "quả và chính sách dữ liệu của nhà cung cấp mô hình áp dụng cho các kết quả " "đó." -#: website/public/faq/index.html:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "Làm thế nào tôi có thể chia sẻ một ví dụ hoặc đóng góp?" @@ -2798,7 +2798,7 @@ msgstr "Làm thế nào tôi có thể chia sẻ một ví dụ hoặc đóng g #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2814,7 +2814,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2838,77 +2838,77 @@ msgstr "" "Câu trả lời cho CÁC CÂU HỎI REA phổ biến: cài đặt, cập nhật, công cụ phân " "tích, agent mã hóa, khắc phục sự cố và chia sẻ ví dụ." -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "CÂU hỏi thường gặp VỀ REA" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "Sao CHÉP lệnh THIẾT LẬP REA" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "Sao CHÉP lệnh cập NHẬT REA" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "Sao chép lệnh làm mới thiết lập tác nhân" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "Sao CHÉP lệnh PHÂN tích REA CLI" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "Sao chép lời nhắc phân tích ví dụ" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "Sao chép lệnh chẩn đoán khách hàng" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "Sao chép lệnh thiết lập phạm vi" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}Nhà{ph1} / Cuộc điều tra đầu tiên của bạn" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Find out where{ph0}exported notes go." msgstr "Tìm ra nơi{ph0}xuất khẩu ghi chú đi." -#: website/public/first-investigation/index.html:203 +#: website/public/first-investigation/index.html:209 msgctxt "page:first-investigation/index.html" msgid "" "Use REA to inspect a small app, follow its Export notes button and check one" @@ -2917,14 +2917,14 @@ msgstr "" "SỬ DỤNG REA để kiểm tra một ứng dụng nhỏ, hãy làm theo Nút Xuất ghi Chú Của " "NÓ và tự kiểm tra một chi tiết." -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "Trong bài tập này" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2932,7 +2932,7 @@ msgstr "{ph0}1. Thiết lập{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2940,7 +2940,7 @@ msgstr "{ph0}2. Hỏi về xuất khẩu{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2948,7 +2948,7 @@ msgstr "{ph0}3. Làm theo câu trả lời{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2956,13 +2956,13 @@ msgstr "{ph0}4. Kiểm tra dự đoán{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}5. Ask another question{ph1}" msgstr "{ph0}5. Hỏi một câu hỏi khác{ph1}" -#: website/public/first-investigation/index.html:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. Kết nối agent CỦA BẠN VỚI REA" @@ -2975,30 +2975,30 @@ msgstr "1. Kết nối agent CỦA BẠN VỚI REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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}Agent mã hóa của bạn" -#: website/public/first-investigation/index.html:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "Sao chép" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "Hoặc chạy lệnh này trong thiết bị đầu cuối của bạn:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 msgctxt "page:first-investigation/index.html" msgid "" "Review the plan, approve the setup, then restart your agent. Already " @@ -3007,14 +3007,14 @@ msgstr "" "Xem lại kế hoạch, phê duyệt thiết lập, sau đó khởi động lại agent của bạn. " "Đã kết nối? Tiếp tục dưới đây." -#: website/public/first-investigation/index.html:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. Hỏi CSV được viết ở đâu" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3026,7 +3026,7 @@ msgstr "" "Agent của bạn có thể kiểm tra mã của nó mà không cần cài đặt hoặc khởi CHẠY " "Electron ." -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -3038,14 +3038,14 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Tải xuống VÍ DỤ ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3055,12 +3055,12 @@ msgstr "" "Nếu agent của bạn không thể tải xuống tệp, hãy tự giải nén kho lưu trữ này. " "Cung cấp cho nó con đường đến {ph0} thư mục và cùng một câu hỏi xuất." -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. Làm theo câu trả lời trở lại mã" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Tìm kiếm một lời giải thích ngắn với các tham chiếu tệp và dòng:" @@ -3069,7 +3069,7 @@ msgstr "Tìm kiếm một lời giải thích ngắn với các tham chiếu t #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3081,12 +3081,12 @@ msgstr "" "CSV và viết {ph1} trong thư mục Tải xuống của người dùng. Các cột là {ph2} " "và {ph3}." -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "Từ nút đến trình ghi tệp" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 msgctxt "page:first-investigation/index.html" msgid "" "REA’s static analysis pairs the message with its handler. The destination is" @@ -3095,7 +3095,7 @@ msgstr "" "PHÂN tích TĨNH CỦA REA ghép nối thông báo với trình xử lý của nó. Điểm đến " "được đọc từ mã." -#: website/public/first-investigation/index.html:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -3107,18 +3107,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}See the full code trace and recorded REA result{ph1}." msgstr "{ph0}Xem dấu vết mã đầy đủ và ghi LẠI KẾT quả REA{ph1}." -#: website/public/first-investigation/index.html:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. Kiểm tra dự đoán" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 msgctxt "page:first-investigation/index.html" msgid "" "A comma separates CSV columns. What happens when a note title itself " @@ -3127,29 +3127,29 @@ msgstr "" "Dấu phẩy phân TÁCH CÁC CỘT CSV. Điều gì xảy ra khi một tiêu đề ghi chú chứa " "dấu phẩy hoặc dấu ngoặc kép?" -#: website/public/first-investigation/index.html:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "Tự chạy kiểm tra" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "Open a terminal in the unpacked {ph0} folder:" msgstr "Mở một thiết bị đầu cuối trong giải nén {ph0} thư mục:" -#: website/public/first-investigation/index.html:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. Hỏi một câu hỏi khác" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "Hãy thử theo dõi trong cùng một cuộc trò chuyện:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 msgctxt "page:first-investigation/index.html" msgid "" "What happens if the file can’t be written? Follow the error back to the " @@ -3158,7 +3158,7 @@ msgstr "" "Điều gì xảy ra nếu tập tin không thể được viết? Thực hiện theo các lỗi trở " "lại trang." -#: website/public/first-investigation/index.html:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -3171,7 +3171,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3185,7 +3185,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3199,7 +3199,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -3223,116 +3223,116 @@ msgstr "" "Hãy thử REA trên Một Ứng dụng Ghi chú nhỏ. Thiết lập agent của bạn, hỏi ghi " "chú đã xuất đi đâu và kiểm tra TRÌNH định dạng CSV với tiêu đề mẫu." -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "CUỘC điều tra REA đầu tiên của bạn" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "Sao CHÉP lời nhắc cài ĐẶT REA" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "Sao chép lệnh thiết lập" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "Sao Chép Ghi chú điều tra nhanh chóng" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "Sao CHÉP CSV kiểm tra dấu nhắc" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "Sao chép lệnh kiểm tra định dạng" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}Nhà{ph1} / Bắt đầu" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "Thiết LẬP REA ." -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "Mở một thiết bị đầu cuối và kiểm tra:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "Thiết bị đầu cuối" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "Sao chép" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3344,19 +3344,19 @@ msgstr "" #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" "Your distribution's own {ph0} package is often older than 22.23.4, so check " "{ph1} if you use it instead." msgstr "" -"Gói {ph0} của bản phân phối thường cũ hơn 22.23.4, nên hãy kiểm tra {ph1} nếu " -"bạn dùng gói đó." +"Gói {ph0} của bản phân phối thường cũ hơn 22.23.4, nên hãy kiểm tra {ph1} " +"nếu bạn dùng gói đó." #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3368,7 +3368,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -3376,7 +3376,7 @@ msgstr "{ph0}Sử DỤNG CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -3390,18 +3390,18 @@ msgstr "{ph0}Nhận trợ giúp{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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}Trợ lý AI lập trình của bạn" -#: website/public/get-started/index.html:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "Hoặc tự chạy thiết lập" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "Làm cách nào để mở một thiết bị đầu cuối?" @@ -3410,7 +3410,7 @@ msgstr "Làm cách nào để mở một thiết bị đầu cuối?" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3426,7 +3426,7 @@ msgstr "" #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3439,7 +3439,7 @@ msgstr "" #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3453,7 +3453,7 @@ msgstr "" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3463,7 +3463,7 @@ msgstr "" "Dán một lệnh với {ph0} {ph1} (macOS : {ph2} {ph3}; THIẾT BỊ ĐẦU CUỐI Linux: " "{ph4} {ph5} {ph6}), sau đó nhấn Enter." -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3474,7 +3474,7 @@ msgstr "" "skill điều tra phù hợp, đồng thời sao lưu cấu hình hiện có. REA hỏi trước " "khi áp dụng thay đổi." -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "Làm sao khởi động lại ứng dụng kết nối?" @@ -3483,7 +3483,7 @@ msgstr "Làm sao khởi động lại ứng dụng kết nối?" #. {ph1}:
#. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3498,7 +3498,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3508,7 +3508,7 @@ msgstr "" "{ph0}Agent thiết bị đầu cuối{ph1} (Claude Code, Codex, Gemini CLI): thoát " "khỏi phiên và bắt đầu lại." -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "Làm cách nào để có được đường dẫn đầy đủ của một thư mục?" @@ -3517,7 +3517,7 @@ msgstr "Làm cách nào để có được đường dẫn đầy đủ của m #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3532,7 +3532,7 @@ msgstr "" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3544,7 +3544,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3554,15 +3554,15 @@ msgstr "" "{ph0}Bất kỳ hệ thống:{ph1} kéo thư mục vào cửa sổ đầu cuối và đường dẫn của " "nó xuất hiện." -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 msgctxt "page:get-started/index.html" msgid "In a terminal, put quotes around a path that contains spaces." msgstr "" "Trong một thiết bị đầu cuối, đặt dấu ngoặc kép xung quanh một đường dẫn có " "chứa khoảng trắng." -#: website/public/get-started/index.html:1558 +#: website/public/get-started/index.html:1564 msgctxt "page:get-started/index.html" msgid "" "Analyze a JavaScript or Electron application folder or ASAR archive without " @@ -3571,14 +3571,14 @@ msgstr "" "Phân tích THƯ mục ỨNG DỤNG JavaScript hoặc Electron hoặc KHO LƯU TRỮ ASAR mà" " không cần chạy ứng dụng:" -#: website/public/get-started/index.html:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "Phân tích ứng dụng tĩnh" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3588,13 +3588,13 @@ msgstr "" "Thay thế đường dẫn bằng thư mục ứng dụng được trích xuất của bạn hoặc {ph0} " "tập tin. TRÊN Windows, một đường dẫn như {ph1} hoạt động ở đây." -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "Tìm tệp .asar của ứng dụng ở đâu?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3605,7 +3605,7 @@ msgstr "Electron ứng dụng thường giữ nó trong một {ph0} thư mục:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3617,7 +3617,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3630,21 +3630,21 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0} Linux :{ph1} thường xuyên {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Some apps install elsewhere. Search the app's folder for {ph0}." msgstr "" "Một số ứng dụng cài đặt ở nơi khác. Tìm kiếm thư mục của ứng dụng cho {ph0}." -#: website/public/get-started/index.html:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3656,36 +3656,36 @@ msgstr "" "kết quả." #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "Nếu bạn muốn một vĩnh viễn {ph0} lệnh trong shell của bạn:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "Cài ĐẶT CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Continue with the JavaScript application guide{ph1}" msgstr "{ph0}Tiếp tục VỚI hướng dẫn ứng DỤNG JavaScript{ph1}" -#: website/public/get-started/index.html:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "Kết nối CÀI ĐẶT Ghidra của bạn" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "Kết NỐI Ghidra TRÊN Windows" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3696,7 +3696,7 @@ msgstr "" " pe gốc trên các ổ đĩa ntfs cục bộ cố định. Sử DỤNG Ghidra 12.1 hiện có.x " "cài đặt VÀ 64-bit JDK 21 hoặc mới hơn:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." @@ -3704,7 +3704,7 @@ msgstr "" "Thay thế hai đường dẫn bằng cài đặt của bạn, sau đó xem lại kế hoạch thiết " "lập." -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 msgctxt "page:get-started/index.html" msgid "" "Connect Hopper on macOS or Linux. Run the setup command above; it detects an" @@ -3713,18 +3713,18 @@ msgstr "" "Kết nối Hopper TRÊN macOS hoặc Linux . Chạy lệnh thiết lập ở trên; nó phát " "hiện cài đặt hiện có hoặc cung cấp kế hoạch cài đặt để bạn phê duyệt." -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "Nhận trợ giúp" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "Nếu agent của bạn không THẤY REA" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3734,22 +3734,22 @@ msgstr "" "Khởi động lại hoặc kết nối lại máy khách sau khi thiết lập. Kiểm tra KẾT nối" " REA của NÓ với {ph0}; CHO Codex :" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "Nếu một nhà cung cấp cần chú ý" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "Kiểm tra nhà cung cấp bạn đang sử dụng. CHO Ghidra :" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "Kiểm tra một nhà cung cấp" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "Báo cáo đưa ra kiểm tra thất bại và một bước tiếp theo được đề xuất." @@ -3758,7 +3758,7 @@ msgstr "Báo cáo đưa ra kiểm tra thất bại và một bước tiếp theo #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3771,7 +3771,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3785,7 +3785,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3798,7 +3798,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3823,68 +3823,68 @@ msgstr "" "Electron cục bộ từ terminal. Hướng dẫn thiết lập, câu hỏi đầu tiên và công " "cụ phân tích mã máy." -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "Sao CHÉP kiểm tra PHIÊN BẢN Node.js" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "Sao CHÉP lệnh cài ĐẶT Node.js CHO Windows" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "Sao CHÉP lệnh cài ĐẶT Homebrew Node.js" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "Sao chép lệnh cài đặt fnm CHO Linux" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "Sao CHÉP Node.js 24 lệnh CHO Linux" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA bắt đầu hướng dẫn" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "Sao CHÉP lời nhắc cài ĐẶT REA" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "Sao CHÉP lệnh PHÂN tích JavaScript" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "Sao CHÉP lệnh cài ĐẶT CLI" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "Sao chép lệnh chẩn đoán nhà cung cấp" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -3893,20 +3893,20 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}Nhà{ph1} / {ph2}Hướng dẫn{ph3} / Quan sát trình duyệt" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "See what happens{ph0}when you click." msgstr "Xem những gì xảy ra{ph0}khi bạn nhấp vào." -#: website/public/guides/browser/index.html:204 +#: website/public/guides/browser/index.html:210 msgctxt "page:guides/browser/index.html" msgid "" "Use a small browser app to connect an action, its network request and the " @@ -3915,14 +3915,14 @@ msgstr "" "Sử dụng một ứng dụng trình duyệt nhỏ để kết nối một hành động, yêu cầu mạng " "của nó và JavaScript xây dựng tải xuống." -#: website/public/guides/browser/index.html:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "Trong hướng dẫn này" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3930,7 +3930,7 @@ msgstr "{ph0}Ví dụ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3938,7 +3938,7 @@ msgstr "{ph0}Mở trình duyệt{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3946,7 +3946,7 @@ msgstr "{ph0}Hỏi agent của bạn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3954,13 +3954,13 @@ msgstr "{ph0}Chụp TỪ CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Read the request and script{ph1}" msgstr "{ph0}Đọc yêu cầu và tập lệnh{ph1}" -#: website/public/guides/browser/index.html:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "Điều gì xảy ra khi bạn nhấp Vào Xuất?" @@ -3970,7 +3970,7 @@ msgstr "Điều gì xảy ra khi bạn nhấp Vào Xuất?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3982,7 +3982,7 @@ msgstr "" "Nhấp vào nó tải {ph4}, định dạng hai ghi chú DƯỚI DẠNG CSV và bắt đầu tải " "xuống." -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "Từ nhấp VÀO TẢI XUỐNG CSV" @@ -3993,7 +3993,7 @@ msgstr "Từ nhấp VÀO TẢI XUỐNG CSV" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4009,7 +4009,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4027,7 +4027,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4037,17 +4037,17 @@ msgstr "" "{ph0}03 * agent của Bạn{ph1}{ph2}Đọc mã xuất{ph3}{ph4}Kết nối yêu cầu quan " "sát được với {ph5} trong {ph6}.{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "Bắt đầu chụp trước khi nhấp Vào xuất ghi chú." -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "MỞ Chrome với gỡ lỗi từ xa" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " @@ -4056,21 +4056,21 @@ msgstr "" "Mở Ví Dụ Ghi chú được lưu trữ với cấu hình trình duyệt riêng biệt và cổng gỡ" " lỗi cục bộ. TRÊN Linux :" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "Khởi động trình duyệt ví dụ" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "Sao chép" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 msgctxt "page:guides/browser/index.html" msgid "" "Use your installed browser's executable path on macOS or Windows. You can " @@ -4080,7 +4080,7 @@ msgstr "" "hoặc Windows . BẠN có thể thay THẾ url trang bằng một trang khác mà bạn muốn" " kiểm tra." -#: website/public/guides/browser/index.html:295 +#: website/public/guides/browser/index.html:301 msgctxt "page:guides/browser/index.html" msgid "" "REA connects to this existing browser. You keep control of the page, perform" @@ -4089,7 +4089,7 @@ msgstr "" "REA kết nối với trình duyệt hiện có này. Bạn giữ quyền kiểm soát trang, thực" " hiện hành động và đóng trình duyệt khi hoàn tất." -#: website/public/guides/browser/index.html:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "Yêu cầu agent của bạn xem một hành động" @@ -4102,7 +4102,7 @@ msgstr "Yêu cầu agent của bạn xem một hành động" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -4114,7 +4114,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Agent mã hóa của bạn" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4126,7 +4126,7 @@ msgstr "" "nào?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4136,7 +4136,7 @@ msgstr "" "Ví dụ nhắc nhở. Cung cấp cho agent của bạn điểm cuối gỡ lỗi, {ph0}, VÀ url " "trang. Hãy để nó bắt đầu chụp trước khi bạn nhấp vào." -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -4147,23 +4147,23 @@ msgstr "" "đọc bằng chứng kết quả. Sau đó, nó có thể kiểm tra tập lệnh đằng sau xuất " "khẩu." -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "Hoặc chụp từ thiết bị đầu cuối" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "Tìm ID mục tiêu của trang:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "Tìm trang" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4173,14 +4173,14 @@ msgstr "" "Chọn mục tiêu với Url Ví dụ Ghi chú. Thay thế {ph0} BÊN dưới VỚI ID của NÓ, " "sau đó chạy:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "Chụp mười giây tiếp theo" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4190,7 +4190,7 @@ msgstr "" "Để lệnh kết nối trong vài giây, sau đó nhấp vào {ph0}Xuất ghi chú{ph1} trong" " trình duyệt đó. Kết quả đến sau khi cửa sổ quan sát kết thúc." -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -4200,49 +4200,49 @@ msgstr "" "Kết quả đã chụp bao gồm trang đã chọn, hoạt động mạng trong cửa sổ đó và " "hình dạng của phản hồi JSON. Yêu cầu trước đó là bên ngoài chụp này." -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "Đọc yêu cầu và xuất tập lệnh" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "Được ghi BẰNG REA 4.1.0 trên Ví Dụ Ghi chú cục Bộ" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "Thực tế bị bắt" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "Giá trị" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "Yêu cầu" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "Phản hồi" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "Yêu cầu người khởi xướng" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} * kịch bản" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "Cấu trúc phản hồi" @@ -4250,19 +4250,19 @@ msgstr "Cấu trúc phản hồi" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} with {ph1} and {ph2} fields" msgstr "{ph0} với {ph1} và {ph2} lĩnh vực" -#: website/public/guides/browser/index.html:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "Đọc các tập lệnh đã tải" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4273,7 +4273,7 @@ msgstr "" "Đọc nguồn tập lệnh đã chụp để xem dữ liệu được sử dụng như thế nào:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4286,7 +4286,7 @@ msgstr "" "cầu {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4298,7 +4298,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -4323,65 +4323,65 @@ msgstr "" "Quan sát Một Ghi chú xuất KHẨU VỚI REA : chọn một trang trình duyệt, chụp " "một nhấp chuột, kiểm tra các yêu cầu và làm theo các kịch bản xuất khẩu." -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "Quan sát trình duyệt" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "Sao chép bắt đầu trình duyệt ví dụ" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "Sao chép ví dụ dấu nhắc" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "Sao chép tìm trang" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "Sao chép chụp mười giây tiếp theo" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "Sao chép đọc các tập lệnh đã tải" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}Nhà{ph1} / Hướng dẫn" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA hướng dẫn." -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 msgctxt "page:guides/index.html" msgid "" "Analyze a native function, an Electron export or a browser request. Each " @@ -4390,37 +4390,37 @@ msgstr "" "Phân tích chức năng gốc, xuất Electron hoặc yêu cầu trình duyệt. Mỗi hướng " "dẫn bao gồm một lời nhắc, mã và kết quả." -#: website/public/guides/index.html:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "Điều tra đầu tiên" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "Thiết LẬP REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "Kết nối agent mã hóa của bạn hoặc SỬ dụng REA từ thiết bị đầu cuối." -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "Bắt đầu VỚI REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "Chương trình mã máy" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "Khôi phục tính toán vị trí âm thanh trái/phải" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 msgctxt "page:guides/index.html" msgid "" "Start with a Windows game executable. Inspect instructions, follow a caller," @@ -4429,22 +4429,22 @@ msgstr "" "Bắt đầu với MỘT TRÒ CHƠI Windows thực thi. Kiểm tra hướng dẫn, theo dõi hàm " "gọi, đọc hằng Số và kiểm Tra C đã khôi Phục." -#: website/public/guides/index.html:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "Phân tích hướng dẫn chương trình mã máy" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "Thực HIỆN theo một CSV xuất KHẨU" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " @@ -4454,14 +4454,14 @@ msgstr "" "trước và quy trình chính. SỬ DỤNG REA để kết nối api, KÊNH IPC và trình ghi " "tệp." -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript & Electron hướng dẫn" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, python-brace-format msgctxt "page:guides/index.html" msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}." @@ -4469,17 +4469,17 @@ msgstr "" "Đối với một ứng dụng đóng gói lớn hơn, hãy làm theo {ph0} Cầu clipboard CỦA " "Notion{ph1}." -#: website/public/guides/index.html:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "Hành vi trình duyệt" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "Quan sát một cú nhấp chuột" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 msgctxt "page:guides/index.html" msgid "" "Open a working Notes example, capture an export request and find the code " @@ -4488,7 +4488,7 @@ msgstr "" "Mở Một Ví Dụ Ghi chú làm việc, chụp yêu cầu xuất và tìm mã biến phản hồi của" " nó thành tải xuống." -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "Hướng dẫn quan sát trình duyệt" @@ -4507,12 +4507,12 @@ msgstr "" "Tìm HIỂU REA thông qua các ví dụ làm việc ngắn: tính toán gốc, xuất Electron" " CSV và yêu cầu trình duyệt." -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -4521,20 +4521,20 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron" msgstr "{ph0}Nhà{ph1} / {ph2}Hướng dẫn{ph3} / JavaScript & Electron" #. {ph0}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "Trace an Electron{ph0}CSV export." msgstr "Theo dõi Electron {ph0} CSV xuất khẩu." -#: website/public/guides/javascript/index.html:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " @@ -4543,14 +4543,14 @@ msgstr "" "Thực hiện theo một nút bấm từ api trang, THÔNG qua Electron IPC, ĐẾN TRÌNH " "ghi tệp CSV." -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "Trong hướng dẫn này" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4558,7 +4558,7 @@ msgstr "{ph0}Ví dụ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4566,7 +4566,7 @@ msgstr "{ph0}Hỏi agent của bạn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4574,7 +4574,7 @@ msgstr "{ph0}Theo dõi mã xuất{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4582,20 +4582,20 @@ msgstr "{ph0}Hãy thử ví dụ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Inspect the CSV writer{ph1}" msgstr "{ph0}Kiểm TRA NHÀ văn CSV{ph1}" -#: website/public/guides/javascript/index.html:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"Xuất ghi chú\" đi đâu?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4607,7 +4607,7 @@ msgstr "" "chú{ph1} gọi MỘT API trong trang, đi vào quy trình chính và VIẾT CSV . Hành " "vi được trải rộng trên một số tệp." -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "XUẤT CSV qua CÁC quy TRÌNH Electron" @@ -4621,7 +4621,7 @@ msgstr "XUẤT CSV qua CÁC quy TRÌNH Electron" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4638,7 +4638,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4655,7 +4655,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4668,13 +4668,13 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} formats the notes → {ph1} writes {ph2}." msgstr "{ph0} định dạng các ghi chú → {ph1} viết {ph2}." -#: website/public/guides/javascript/index.html:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4685,14 +4685,14 @@ msgstr "" "API được hiển thị. Đường dẫn được suy ra từ mã; chụp thời gian chạy có thể " "kiểm tra những gì thực thi." -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "Hỏi VỀ xuất CSV" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4710,14 +4710,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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}Agent mã hóa của bạn" -#: website/public/guides/javascript/index.html:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "Sao chép" @@ -4728,7 +4728,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4739,7 +4739,7 @@ msgstr "" "trong ứng dụng này. CSV được tạo ở đâu?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4748,7 +4748,7 @@ msgid "" msgstr "" "Ví dụ nhắc nhở. Bao gồm đường dẫn tuyệt đối đến thư mục ứng dụng hoặc {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4759,17 +4759,17 @@ msgstr "" "giới quy trình. Agent của bạn sử dụng bản đồ đó để thu hẹp cuộc điều tra về " "tính năng xuất." -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "Theo dõi mã xuất" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "Trang gọi MỘT API nhỏ" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4780,7 +4780,7 @@ msgstr "" #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4792,7 +4792,7 @@ msgstr "" #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4802,7 +4802,7 @@ msgstr "" "Đọc trình xử lý trả lời câu hỏi ban đầu: {ph0} định dạng các ghi chú và quá " "trình chính viết {ph1} vào Thư mục Tải xuống của người dùng." -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 msgctxt "page:guides/javascript/index.html" msgid "" "Recorded by REA 4.1.0 on the downloadable example below. Source locations " @@ -4811,7 +4811,7 @@ msgstr "" "Được GHI LẠI bởi REA 4.1.0 trên ví dụ có thể tải xuống bên dưới. Vị trí " "nguồn đi kèm VỚI CÁC PHÁT hiện API, kênh và trình xử lý." -#: website/public/guides/javascript/index.html:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "Tự phân tích ví dụ" @@ -4819,25 +4819,25 @@ msgstr "Tự phân tích ví dụ" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Tải xuống VÍ DỤ ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "Duyệt qua sáu tệp nguồn" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "Phân tích ứng dụng tĩnh" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4847,7 +4847,7 @@ msgstr "" "Thay thế đường dẫn bằng thư mục bạn đã giải nén. Bạn sẽ tìm thấy một KÊNH " "IPC và một trình xử lý phù hợp trong {ph0}. Vị trí nguồn đang ở {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4858,13 +4858,13 @@ msgstr "" "đường DẪN ASAR của nó. Một tác nhân có thể theo một chuỗi ký tự, TÊN API " "hoặc KÊNH IPC VỚI CÁC CÔNG cụ truy tìm tính năng CỦA REA." -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "Kiểm TRA NHÀ văn CSV" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4874,7 +4874,7 @@ msgstr "" "Theo dõi {ph0} để xử lý của nó. Đầu vào nào đạt đến trình ghi CSV và điều gì" " sẽ xảy ra nếu việc ghi tệp không thành công?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4889,7 +4889,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4903,7 +4903,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4917,7 +4917,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4943,32 +4943,32 @@ msgstr "" "TRÌNH xử lý IPC với REA . Bao gồm các tệp ví dụ có thể tải xuống và kết quả " "phân tích đã được xác minh." -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "Sao chép ví dụ dấu nhắc" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "Sao chép phân tích ứng dụng tĩnh" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -4977,7 +4977,7 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" @@ -4985,13 +4985,13 @@ msgstr "" "{ph0}Nhà{ph1} / {ph2}Hướng dẫn{ph3} / Phân tích các chương trình mã máy" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "Recover DX-Ball's{ph0}sound-pan calculation." msgstr "Khôi PHỤC DX-Ball ' s{ph0}tính toán vị trí âm thanh trái/phải." -#: website/public/guides/native/index.html:203 +#: website/public/guides/native/index.html:209 msgctxt "page:guides/native/index.html" msgid "" "Inspect the original instructions, identify the input and constants, then " @@ -5000,14 +5000,14 @@ msgstr "" "Kiểm Tra các hướng dẫn ban Đầu, xác Định đầu vào và hằng số, sau Đó kiểm Tra" " C đã khôi Phục." -#: website/public/guides/native/index.html:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "Trong hướng dẫn này" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -5015,7 +5015,7 @@ msgstr "{ph0}Ví dụ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5023,7 +5023,7 @@ msgstr "{ph0}Hỏi agent của bạn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -5031,7 +5031,7 @@ msgstr "{ph0}Đọc KẾT QUẢ REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -5039,18 +5039,18 @@ msgstr "{ph0}Phục hồi và kiểm tra{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Use your own binary{ph1}" msgstr "{ph0}Sử dụng nhị phân của riêng bạn{ph1}" -#: website/public/guides/native/index.html:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "Tính toán trái / phải định vị âm thanh stereo" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -5061,7 +5061,7 @@ msgstr "" #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5073,7 +5073,7 @@ msgstr "" "{ph1}. REA cũng trả về các hướng dẫn và hàm gọi của nó, cung cấp cho tác " "nhân một cách để điều tra số học bị thiếu." -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "Mới đối với các điều khoản này?" @@ -5082,7 +5082,7 @@ msgstr "Mới đối với các điều khoản này?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5094,7 +5094,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5107,7 +5107,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5120,7 +5120,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5132,7 +5132,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5142,7 +5142,7 @@ msgstr "" "{ph0}Hằng số:{ph1} số cố định được lưu trữ trong chương trình, đọc như byte " "thô và giải mã." -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "Ba bằng chứng, một phép tính" @@ -5153,7 +5153,7 @@ msgstr "Ba bằng chứng, một phép tính" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5170,7 +5170,7 @@ msgstr "" #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5188,7 +5188,7 @@ msgstr "" #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5198,7 +5198,7 @@ msgstr "" "{ph0}03 * Byte Dữ liệu{ph1}{ph2}Các hằng số số{ph3}{ph4}Tham chiếu byte giải" " mã để {ph5}, {ph6} và một giá trị quy mô.{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 msgctxt "page:guides/native/index.html" msgid "" "REA supplies the instructions, call relationship and bytes. The agent " @@ -5207,7 +5207,7 @@ msgstr "" "REA cung cấp các hướng dẫn, mối quan hệ cuộc gọi chức năng và byte. Các " "agent giải thích chúng cùng nhau." -#: website/public/guides/native/index.html:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "Hỏi về hành vi" @@ -5216,7 +5216,7 @@ msgstr "Hỏi về hành vi" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5226,19 +5226,19 @@ msgstr "" "Sau {ph0}kết NỐI REA với agent của bạn{ph1} và {ph2}thiết lập phân tích công" " cụ chương trình mã máy{ph3}, cung cấp thực thi cục bộ và một câu hỏi:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "Tôi nên sử dụng công cụ phân tích nào?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA cần một trong số này để đọc các chương trình gốc:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5252,7 +5252,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5264,7 +5264,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5274,7 +5274,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -5289,14 +5289,14 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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}Agent mã hóa của bạn" -#: website/public/guides/native/index.html:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "Sao chép" @@ -5307,7 +5307,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5317,7 +5317,7 @@ msgstr "" "{ph0}›{ph1}{ph2}SỬ dụng REA để tìm CÁCH DX-Ball tính toán định vị âm thanh " "nổi. Giải thích tính toán và hiển thị mã.{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -5329,7 +5329,7 @@ msgstr "" "bản sao của riêng bạn hoặc hỏi cùng một loại câu hỏi về một chương trình " "Windows nhỏ khác mà bạn có." -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "Làm cách nào để có được đường dẫn đầy đủ của tệp?" @@ -5338,7 +5338,7 @@ msgstr "Làm cách nào để có được đường dẫn đầy đủ của t #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5353,7 +5353,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5365,7 +5365,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5375,17 +5375,17 @@ msgstr "" "{ph0}Bất kỳ hệ thống:{ph1} kéo tệp vào cửa sổ đầu cuối và đường dẫn của nó " "xuất hiện." -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "Đọc KẾT QUẢ REA" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "Đọc đầu vào" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 msgctxt "page:guides/native/index.html" msgid "" "The instructions load an integer argument and convert it for floating-point " @@ -5394,13 +5394,13 @@ msgstr "" "Các hướng dẫn tải một đối số nguyên và chuyển đổi nó cho số học dấu phẩy " "động. Đây là đầu vào vắng mặt từ chế độ xem mã giả đầu tiên." -#: website/public/guides/native/index.html:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "Theo dõi hàm gọi" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5410,12 +5410,12 @@ msgstr "" "REA xác định hàm gọi gạch-hit. Các hướng dẫn trước đó của nó nhân tọa độ " "gạch với 30; thêm {ph0} (20) cho vị trí màn hình của gạch." -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "Đọc các hằng số được tham chiếu" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 msgctxt "page:guides/native/index.html" msgid "" "The arithmetic references these addresses. Reading the bytes supplies the " @@ -5424,12 +5424,12 @@ msgstr "" "Số học tham chiếu các địa chỉ này. Đọc các byte cung cấp các giá trị thực " "tế; thứ tự hướng dẫn cho tác nhân biết cách chúng được sử dụng." -#: website/public/guides/native/index.html:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "Viết và kiểm tra chức năng đã khôi phục" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -5440,7 +5440,7 @@ msgstr "" " khi chuyển đổi số nguyên. Tính toán đặt trung tâm của màn hình ở trung tâm " "của trường âm thanh nổi." -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -5453,20 +5453,20 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}" msgstr "{ph0}Xem điều tra đầy đủ và so sánh assembly-To-c{ph1}" -#: website/public/guides/native/index.html:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "Hãy thử nó với nhị phân của riêng bạn" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5480,7 +5480,7 @@ msgstr "" " để điều tra. Các câu hỏi bắt đầu hữu ích bao gồm \" tệp này được phân tích " "cú pháp Như thế nào?\"hoặc\" chức năng nào xử lý hành động menu này?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 msgctxt "page:guides/native/index.html" msgid "" "If you already know a function name or address, you can query it from the " @@ -5489,13 +5489,13 @@ msgstr "" "Nếu bạn đã biết tên hoặc địa chỉ chức năng, bạn có thể truy vấn nó từ thiết " "bị đầu cuối. Để CÀI ĐẶT Ghidra được định cấu HÌNH:" -#: website/public/guides/native/index.html:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "Phân tích chức năng" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -5509,7 +5509,7 @@ msgstr "" "phiên của NÓ. Các truy vấn MCP của agent của bạn sử dụng lại nhị phân đã " "nhập trong khi phiên đó đang mở." -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -5533,50 +5533,50 @@ msgstr "" "Khôi phục tính toán gốc VỚI REA : kiểm Tra hướng Dẫn, theo dõi hàm gọi, đọc " "hằng số và kiểm Tra Tái Tạo C." -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "Phân tích các chương trình mã máy" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "Sao chép ví dụ dấu nhắc" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "Sao chép phân tích chức năng" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "Thiết LẬP REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -5584,7 +5584,7 @@ msgstr "{ph0}Thiết LẬP REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5592,7 +5592,7 @@ msgstr "{ph0}Chơi Dinosaur miễn phí{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5600,7 +5600,7 @@ msgstr "{ph0}Máy tính{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5608,25 +5608,25 @@ msgstr "{ph0}Thử REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}Tìm hiểu sâu hơn{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "Kỹ thuật đảo ngược, với agent mã hóa của bạn" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "Tìm hiểu cách{ph0}phần mềm hoạt động." -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "Dán lời nhắc này vào trợ lý lập trình AI của bạn:" @@ -5639,33 +5639,33 @@ msgstr "Dán lời nhắc này vào trợ lý lập trình AI của bạn:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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}Agent mã hóa của bạn" -#: website/public/index.html:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "Sao chép" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "Hoặc chạy lệnh này trong terminal:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "Xem và chấp thuận kế hoạch cài đặt, rồi khởi động lại trợ lý." #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5673,7 +5673,7 @@ msgstr "{ph0}01{ph1} Giải mã chi nhánh" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5681,7 +5681,7 @@ msgstr "{ph0}02{ph1} Theo dõi cuộc gọi" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5691,20 +5691,20 @@ msgstr "{ph0}03{ph1} Khôi phục quy tắc" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}" msgstr "{ph0}Ban đầu x64 * lựa chọn hướng dẫn{ph1} {ph2}{ph3}" -#: website/public/index.html:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 * chi Nhánh Nào?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5714,29 +5714,29 @@ msgstr "" "“{ph0}0x5b? 0x5c?{ph1} Hai bước nhảy đến cùng một nơi. Những nhà khai thác " "này là gì?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "Tra Cứu id lệnh, sau đó gắn nhãn nhánh." -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "Chia ÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "Nhân ×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · Các hàm được gọi làm gì?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5746,24 +5746,24 @@ msgstr "" "\"100 là rõ ràng. Các cuộc gọi chỉ là địa chỉ. {ph0}Cái nào phân chia? Giá " "trị nào đi vào?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "Kiểm tra các chức năng trợ giúp và theo dõi các giá trị được lưu trữ." -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "Chia" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 * quy tắc Là gì?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5773,19 +5773,19 @@ msgstr "" "\"Con đường này nhân với đầu vào khác. Vậy {ph0}10% có nghĩa là 10% của " "200{ph1} sau +.”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "Đặt tên cho các toán hạng và kiểm tra cả hai đường dẫn toán tử." -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "Lý luận chuyên gia minh họa" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5803,87 +5803,87 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}Ví dụ nhắc · Máy tính" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "Câu trả lời ví dụ · dựa trên những phát hiện" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, python-brace-format msgctxt "page:index.html" msgid "" "After +, the % button takes {ph0}a percentage of the first number.{ph1}" msgstr "Sau +, nút % mất {ph0}một tỷ lệ phần trăm của số đầu tiên.{ph1}" -#: website/public/index.html:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA cung cấp" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "Hướng dẫn của trình xử lý, mã dịch ngược và các cuộc gọi." -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "Trợ lý giải thích" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "Chi nhánh nào áp dụng, những gì nó tính toán và cách xây dựng lại nó." -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "Ví dụ 01 * Chrome ' s trò chơi khủng long" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "Vì sao khủng long chạy nhanh dần?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "Chơi" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "Nhảy ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "Chơi lại" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "Tốc độ" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "Sử dụng quy tắc tăng tốc đã khôi phục" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "Quy tắc ban đầu: bắt đầu từ 6, sau đó tăng lên 13." -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "" @@ -5896,7 +5896,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5910,7 +5910,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." @@ -5918,12 +5918,12 @@ msgstr "" "Mục tiêu được kiểm tra: {ph0}PHIÊN bản trình duyệt CÓ NGUỒN GỐC TỪ Chromium " "của wayou{ph1}." -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "Mở phòng thí nghiệm tốc độ →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "Mỗi phần làm gì" @@ -5934,7 +5934,7 @@ msgstr "Mỗi phần làm gì" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5950,7 +5950,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5967,7 +5967,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5977,13 +5977,13 @@ msgstr "" "{ph0}03 * Bạn{ph1}{ph2}Thay đổi tốc độ và chơi{ph3}{ph4}Hãy thử tăng tốc ban" " đầu, sau đó chọn tốc độ của riêng bạn.{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "Xem kịch bản, kiểm tra và cách thử phân tích" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5993,7 +5993,7 @@ msgstr "" "REA đã kiểm tra PHIÊN bản TRÌNH duyệt HTTP thông qua kết nối gỡ lỗi cục bộ " "và trả về đã tải {ph0}, bao gồm cả nguồn và tiêu hóa của nó." -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -6007,7 +6007,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6023,7 +6023,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6041,7 +6041,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6049,34 +6049,34 @@ msgid "" msgstr "" "{ph0}Kiểm tra mã tốc độ{ph1} · {ph2} Tác GIẢ Chromium * giấy phép BSD{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "Ví dụ 02 * Windows Máy Tính" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "Dựng lại nút % của Máy tính." -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "Đặt lại" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "10% của 200 = 20. Sau đó, 200 + 20 = 220." -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "Minh họa tương tác của quy tắc phần trăm được kiểm tra." #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -6088,7 +6088,7 @@ msgstr "Đối với ví dụ này, {ph0} và {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6100,7 +6100,7 @@ msgstr "" "phục các quy tắc sau + và ×, sau đó xây dựng một máy tính nhỏ sử dụng cả " "hai.{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "Với +" @@ -6108,13 +6108,13 @@ msgstr "Với +" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Take 10% of the first number.{ph1}{ph2}" msgstr "{ph0}Lấy 10% số đầu tiên.{ph1}{ph2}" -#: website/public/index.html:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "Với ×" @@ -6122,13 +6122,13 @@ msgstr "Với ×" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}" msgstr "{ph0}Biến 10% thành 0,1.{ph1}{ph2}" -#: website/public/index.html:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "Từ ứng dụng đã cài đặt đến nút % hoạt động" @@ -6140,7 +6140,7 @@ msgstr "Từ ứng dụng đã cài đặt đến nút % hoạt động" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6157,7 +6157,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6169,12 +6169,12 @@ msgstr "" "quy tắc{ph3}{ph4}Kiểm tra chéo nhánh với Nguồn Của Microsoft, sau đó thử + " "và × ở trên.{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "Xem mã thực và câu trả lời đã được kiểm tra như thế nào" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -6195,7 +6195,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -6205,17 +6205,17 @@ msgstr "" "{ph0}Thực hiện tỷ lệ phần trăm{ph1} · {ph2}Trường hợp thử nghiệm của " "Microsoft{ph3} · {ph4}Hướng dẫn thiết lập gốc{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "Cuộc điều tra đầu tiên của bạn" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "Hãy thử REA trên một ứng dụng nhỏ." -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " @@ -6224,17 +6224,17 @@ msgstr "" "Tải Xuống Ví Dụ Ghi Chú của chúng tôi, theo dõi XUẤT CSV của NÓ và kiểm tra " "một đầu vào đã thay đổi." -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "Hãy thử ví dụ hướng dẫn" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "Chương trình mã máy" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" @@ -6243,17 +6243,17 @@ msgstr "" "Kiểm tra các hàm, chuỗi, tham chiếu và mối quan hệ gọi hàm trong tệp thực " "thi và thư viện." -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "Phân tích hướng dẫn chương trình mã máy" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript & Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " @@ -6262,17 +6262,17 @@ msgstr "" "Các mô-đun bản đồ, tuyến ĐƯỜNG, IPC và các phụ thuộc gốc từ thư mục ứng dụng" " hoặc KHO LƯU trữ ASAR." -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "Quy trình làm việc ứng dụng" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "Hoạt động trình duyệt và thời gian chạy" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " @@ -6281,12 +6281,12 @@ msgstr "" "Nắm bắt các trình duyệt được lựa chọn hoặc quá trình hoạt động, sau đó so " "sánh các kết quả trên chạy." -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "Hướng dẫn quan sát trình duyệt" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "Bạn có câu hỏi?" @@ -6305,27 +6305,27 @@ msgstr "" "Ứng dụng kỹ sư đảo ngược, nhị phân và hành vi trình duyệt với tác nhân mã " "hóa của bạn. Làm theo hướng dẫn rõ ràng và thử các ví dụ tương tác VỚI REA ." -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "Sao CHÉP lời nhắc cài ĐẶT REA" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "Sao chép lệnh thiết lập" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "Thực hiện theo phân tích máy tính thủ công" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "Sao chép câu hỏi tỷ lệ phần Trăm máy Tính" -#: website/public/index.html:653 +#: website/public/index.html:659 msgctxt "page:index.html" msgid "" "Dinosaur mini-game. Use the Jump button or press Space while the game is " @@ -6334,27 +6334,27 @@ msgstr "" "Khủng long mini-game. Sử dụng Nút Nhảy hoặc Nhấn Không gian trong khi trò " "chơi được tập trung." -#: website/public/index.html:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "Sao chép dấu nhắc phân tích khủng long" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "Chọn tính toán" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "Sao chép lời nhắc phân tích máy tính" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -6363,25 +6363,25 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android" msgstr "{ph0}Nhà{ph1} / {ph2}Giới thiệu{ph3} / Android" -#: website/public/showcase/aegis/index.html:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "Nghiên cứu trường hợp * Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "Làm thế nào để một authenticator{ph0}tạo mã đăng nhập?" -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " @@ -6391,17 +6391,17 @@ msgstr "" " Trong ANDROID APK , sau đó xây dựng lại nó bằng đồng hồ bạn có thể điều " "khiển." -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 * Android * PHÁT HÀNH CHÍNH THỨC APK * 6.9 MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "Xem Aegis TRÊN GitHub" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "TỪ APK đến mã bạn có thể sao chép" @@ -6412,7 +6412,7 @@ msgstr "TỪ APK đến mã bạn có thể sao chép" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6430,7 +6430,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6448,7 +6448,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6460,14 +6460,14 @@ msgstr "" "mã.{ph3}{ph4}Một bản demo trình duyệt mới tái tạo quy tắc và kiểm tra nó đối" " với các trường hợp tham chiếu công khai.{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "Trong trường hợp này nghiên cứu" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -6475,7 +6475,7 @@ msgstr "{ph0}Hỏi agent của bạn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -6483,7 +6483,7 @@ msgstr "{ph0}Hãy thử trình tạo mã{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -6491,7 +6491,7 @@ msgstr "{ph0}Tìm mã VỚI REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -6499,7 +6499,7 @@ msgstr "{ph0}Đọc tính toán{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -6507,20 +6507,20 @@ msgstr "{ph0}Kiểm tra việc tái thiết{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Inspect the APK yourself{ph1}" msgstr "{ph0}Tự kiểm tra APK{ph1}" -#: website/public/showcase/aegis/index.html:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "Hỏi agent của bạn" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6538,21 +6538,21 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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}Agent mã hóa của bạn" -#: website/public/showcase/aegis/index.html:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "Sao chép" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6563,14 +6563,14 @@ msgstr "" " định cấu hình. {ph0}Nhận APK và thiết lập phân tích nhúng vào trang web " "hoặc blog của bạn ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "Hãy thử trình tạo mã" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6581,33 +6581,33 @@ msgstr "" "Các nhóm ứng dụng thời gian vào {ph0}Khối 30 giây.{ph1} Nó kết hợp số khối " "với khóa tài khoản để tạo mã. Cùng một khóa và khối tạo ra cùng một mã." -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "Di chuyển đồng hồ qua 60 giây" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "Thời gian" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "giây" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "Đồng hồ ví dụ có thể điều chỉnh của chúng tôi" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "Khối 30 giây" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "Khối" @@ -6616,35 +6616,35 @@ msgstr "Khối" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}" msgstr "{ph0}{ph1}{ph2}30-59 giây{ph3}" -#: website/public/showcase/aegis/index.html:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "Mã được tạo" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "Khóa tài khoản + khối → sáu chữ số" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "Thời gian ví dụ, tính bằng giây" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59 giây" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60 giây" @@ -6653,7 +6653,7 @@ msgstr "60 giây" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6665,7 +6665,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6675,25 +6675,25 @@ msgstr "" "Chìa khóa là cố định, công khai {ph0}Dữ liệu thử NGHIỆM rfc 6238{ph1}. Bản " "demo thực hiện tính toán được khôi phục từ APK ." -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 msgctxt "page:showcase/aegis/index.html" msgid "" "The diagram shows the result at 59 seconds. Enable JavaScript to change the " "clock." msgstr "Sơ đồ hiển thị kết quả ở 59 giây. Bật JavaScript để thay đổi đồng hồ." -#: website/public/showcase/aegis/index.html:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "Tìm mã VỚI REA" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "Thu HẸP APK đến ba lớp" #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6704,14 +6704,14 @@ msgstr "" "trình và tài khoản nhập khẩu. TOTP có nghĩa là mật khẩu một lần dựa trên " "thời gian." -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "Kết nối máy phát điện với màn hình của ứng dụng" #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6722,7 +6722,7 @@ msgstr "" "Kiểm tra {ph0} sau đó hiển thị cuộc gọi hiển thị {ph1}." #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6732,14 +6732,14 @@ msgstr "" "Yêu cầu hiển thị một đường dẫn đầu vào rút gọn. Tên lớp kết quả bỏ qua điểm " "chung {ph0} tiền tố." -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "Đọc tính toán" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6753,7 +6753,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6761,7 +6761,7 @@ msgstr "{ph0}01{ph1} Khối thời gian" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6769,7 +6769,7 @@ msgstr "{ph0}02{ph1} Phím + khối" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6777,7 +6777,7 @@ msgstr "{ph0}03{ph1} Sáu chữ số" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6789,7 +6789,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6802,7 +6802,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6816,7 +6816,7 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6827,7 +6827,7 @@ msgstr "" "Bảng điều khiển bên phải là một bản tóm tắt giải thích. {ph0} MÃ Aegis LÀ " "GPL-3.0.{ph1}" -#: website/public/showcase/aegis/index.html:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "Bên trong máy phát điện" @@ -6836,7 +6836,7 @@ msgstr "Bên trong máy phát điện" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6846,7 +6846,7 @@ msgstr "" "APK phát hành đặt {ph0} trong {ph1}. REA thực hiện cuộc gọi từ {ph2} và trả" " về cơ thể này; nguồn gốc gọi người trợ giúp {ph3}." -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6862,20 +6862,20 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Compare with the matching release source{ph1}." msgstr "{ph0}So sánh với nguồn phát hành phù hợp{ph1}." -#: website/public/showcase/aegis/index.html:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "Kiểm tra việc tái thiết" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6888,29 +6888,29 @@ msgstr "" " trên {ph0}133 trường hợp thử nghiệm{ph1}, bao gồm ranh giới khối thời gian " "và mã bắt đầu bằng không." -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "Thời gian ví dụ" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "Mã sáu chữ số" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30 giây" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109 giây" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6920,17 +6920,17 @@ msgstr "" "Trình tạo cũng khớp với sáu trường hợp tham chiếu SHA-1 đã xuất bản trong " "{ph0}RFC 6238{ph1}. Kiểm tra việc triển khai trình duyệt chống lại chúng:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "Chạy kiểm tra tham chiếu" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "Đọc tính toán của bản demo" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 msgctxt "page:showcase/aegis/index.html" msgid "" "The reference cases use eight digits. The check also verifies their six-" @@ -6939,7 +6939,7 @@ msgstr "" "Các trường hợp tham chiếu sử dụng tám chữ số. Kiểm tra cũng xác minh kết quả" " sáu chữ số của họ." -#: website/public/showcase/aegis/index.html:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " @@ -6948,14 +6948,14 @@ msgstr "" "Xác minh chạy các phương thức Java được trích xuất và bản demo mới. Android " "APK đã được kiểm tra tĩnh." -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "Tự kiểm tra APK" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6967,7 +6967,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6977,18 +6977,18 @@ msgstr "" "Phân tích Android cần MỘT jdk 17 đầy đủ hoặc mới hơn. Chọn nó với {ph0} hoặc" " {ph1}. Trường hợp này sử DỤNG JDK 21." -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 msgctxt "page:showcase/aegis/index.html" msgid "Point REA at the provider file and inspect the APK:" msgstr "Điểm REA tại tệp nhà cung cấp và kiểm TRA APK :" -#: website/public/showcase/aegis/index.html:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS / Linux" #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7001,7 +7001,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7011,7 +7011,7 @@ msgstr "" "Một câu hỏi tiếp theo: {ph0}điều gì xảy ra khi một tài khoản sử dụng tám chữ" " số hoặc một khoảng thời gian khác nhau?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "Nguồn" @@ -7027,7 +7027,7 @@ msgstr "Nguồn" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -7041,14 +7041,14 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, 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 trường hợp tham khảo{ph1} · {ph2}Dữ liệu thử nghiệm Demo{ph3}" -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -7073,37 +7073,37 @@ msgstr "" "Kiểm tra Aegis ANDROID APK VỚI REA , khôi phục tính toán mã đăng nhập gồm " "sáu chữ số của NÓ và thử tái tạo với đồng hồ có thể điều chỉnh." -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK trường hợp nghiên cứu" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "Sao CHÉP DẤU nhắc VÍ DỤ Aegis" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "Thực hiện theo tính toán mã đăng nhập" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "Sao CHÉP lệnh kiểm TRA APK" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -7112,26 +7112,26 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF" msgstr "{ph0}Nhà{ph1} / {ph2}Giới thiệu{ph3} / CTF" -#: website/public/showcase/ctf/index.html:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "Nghiên cứu điển hình * DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "Tìm cờ trong{ph0}MỘT NHỊ phân CTF." #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7141,17 +7141,17 @@ msgstr "" "SỬ DỤNG REA để kiểm tra một trình kiểm tra cờ nhỏ, biến các quy tắc của nó " "thành các phương trình và tìm một đầu vào làm cho chương trình gốc in {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "mặt nạ hình vuông cờ checker * Dễ dàng * Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "Xem thử thách ban đầu" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "Từ nhị phân đến câu trả lời đã kiểm tra" @@ -7162,7 +7162,7 @@ msgstr "Từ nhị phân đến câu trả lời đã kiểm tra" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7179,7 +7179,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7197,7 +7197,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7209,7 +7209,7 @@ msgstr "" "bản Python giải quyết các phương trình. REA chụp chương trình ban đầu chấp " "nhận kết quả.{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." @@ -7217,14 +7217,14 @@ msgstr "" "Thử thách là của joseph, được xuất bản trong Kho lưu trữ chính thức Của " "DownUnderCTF." -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "Trong trường hợp này nghiên cứu" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -7232,7 +7232,7 @@ msgstr "{ph0}Tìm mã kiểm tra{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -7240,7 +7240,7 @@ msgstr "{ph0}Đọc một mặt nạ{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -7248,7 +7248,7 @@ msgstr "{ph0}Lắp ráp để mã có thể đọc được{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -7256,7 +7256,7 @@ msgstr "{ph0}Giải các phương trình{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -7264,20 +7264,20 @@ msgstr "{ph0}Kiểm tra câu trả lời{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}Hãy thử nó cho mình{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "Tìm mã kiểm tra" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7295,17 +7295,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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}Agent mã hóa của bạn" -#: website/public/showcase/ctf/index.html:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "Sao chép" @@ -7316,7 +7316,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7328,7 +7328,7 @@ msgstr "" "thích cách kiểm tra hoạt động, sau đó xác minh câu trả lời với chương trình " "gốc.{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 msgctxt "page:showcase/ctf/index.html" msgid "" "An example prompt, with the downloaded challenge available locally and a " @@ -7337,12 +7337,12 @@ msgstr "" "Một lời nhắc ví dụ, với thử thách đã tải xuống có sẵn tại địa phương và phân" " tích nhà cung cấp chương trình mã máy được kết nối." -#: website/public/showcase/ctf/index.html:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "Thực hiện theo lời nhắc đầu vào cho chức năng của nó" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 msgctxt "page:showcase/ctf/index.html" msgid "" "The reference gives the agent a place to investigate, even though the " @@ -7351,14 +7351,14 @@ msgstr "" "Tham chiếu cung cấp cho tác nhân một nơi để điều tra, mặc dù tên hàm ban đầu" " của tệp thực thi đã bị xóa." -#: website/public/showcase/ctf/index.html:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "Đọc trình kiểm tra và hai người trợ giúp của nó" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7370,7 +7370,7 @@ msgstr "" "hợp các mã đã chọn và so sánh kết quả với một số được lưu trữ. Của nó {ph0}-" " byte bước qua {ph1} byte cho 26 mặt nạ." -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 msgctxt "page:showcase/ctf/index.html" msgid "" "These are selected results from a fresh REA analysis. The local target path " @@ -7380,12 +7380,12 @@ msgstr "" "cục bộ được rút ngắn để hiển thị; địa chỉ tham khảo HÌNH ẢNH ĐÃ nhập CỦA " "REA." -#: website/public/showcase/ctf/index.html:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "Một kiểm tra cho thấy một nhân vật" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -7398,13 +7398,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "The seventh check selects just one position. {ph0}Open figure{ph1}." msgstr "Kiểm tra thứ bảy chỉ chọn một vị trí. {ph0}Hình mở{ph1}." -#: website/public/showcase/ctf/index.html:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "Đọc mặt nạ và mục tiêu của nó từ nhị phân" @@ -7413,7 +7413,7 @@ msgstr "Đọc mặt nạ và mục tiêu của nó từ nhị phân" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7426,12 +7426,12 @@ msgstr "" "với nhau, các byte này cho agent biết rằng {ph2}, vì vậy nhân vật đó là " "{ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "Từ hướng dẫn đến kiểm tra có thể đọc được" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -7442,7 +7442,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -7450,7 +7450,7 @@ msgstr "{ph0}01{ph1} Bắt đầu" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -7458,7 +7458,7 @@ msgstr "{ph0}02{ph1} Chọn" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -7466,7 +7466,7 @@ msgstr "{ph0}03{ph1} Thêm" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -7474,18 +7474,18 @@ msgstr "{ph0}04{ph1} Tiến lên" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} So sánh" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA * hướng dẫn ban đầu được chọn" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "Có Thể đọc Được C * tóm tắt một lần kiểm tra" @@ -7493,7 +7493,7 @@ msgstr "Có Thể đọc Được C * tóm tắt một lần kiểm tra" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -7501,7 +7501,7 @@ msgstr "{ph0}01 * Bắt đầu từ số không · {ph1} {ph2} giữ số tiền #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7513,7 +7513,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7525,7 +7525,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7539,7 +7539,7 @@ msgstr "" #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7549,7 +7549,7 @@ msgstr "" "{ph0}05 * So sánh với mục tiêu được lưu trữ.{ph1} Người gọi nhận được số " "tiền trong {ph2}. Một sự không phù hợp nhảy đến {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 msgctxt "page:showcase/ctf/index.html" msgid "" "The instructions come from the summing helper and its caller. The C is an " @@ -7558,12 +7558,12 @@ msgstr "" "Các hướng dẫn đến từ người trợ giúp tổng hợp và hàm gọi của nó. C Là một bản" " tóm tắt giải thích với tên mô tả và một vòng lặp 36 ô phẳng." -#: website/public/showcase/ctf/index.html:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "Giải 26 phương trình" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -7574,13 +7574,13 @@ msgstr "" "và yêu cầu tổng cộng 1441. Các lựa chọn chồng chéo cung cấp các phương trình" " mà một tập Lệnh Python nhỏ có thể giải quyết cùng nhau." -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python * giải đoạn trích" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7594,19 +7594,19 @@ msgstr "" "cái, chữ số, dấu gạch dưới và dấu ngoặc nhọn. Quá trình tải xuống hoàn chỉnh" " bao gồm tất cả 26 mặt nạ và mục tiêu." -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "Tải xuống trình giải hoàn chỉnh" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "Kiểm tra câu trả lời với chương trình gốc" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7618,47 +7618,47 @@ msgstr "" " Thay đổi một ký tự đã chọn từ {ph0} để {ph1} tạo tổng đầu tiên 1440 thay vì" " 1441 và chương trình từ chối nó." -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "Đầu vào" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "Đầu ra quan sát" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "Mã thoát" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "Cờ của người giải" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "Một nhân vật đã thay đổi" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "Hiển thị cờ đã khôi phục và đầu ra đã chụp" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA * đầu ra chương trình gốc" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "Sao chép cờ" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 msgctxt "page:showcase/ctf/index.html" msgid "" "The recovered value also matches the flag in the organizers' published " @@ -7667,12 +7667,12 @@ msgstr "" "Giá trị được khôi phục cũng khớp với cờ trong siêu dữ liệu thử thách đã xuất" " bản của ban tổ chức, được kiểm tra sau khi giải nhị phân." -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "Nguồn, danh tính mục tiêu và chi tiết phân tích" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -7683,7 +7683,7 @@ msgstr "" "REA 4.1.0 với Ghidra 12.1.4 TRÊN Linux x64. Nhị phân là MỘT ELF x86-64 bị " "tước, 15.248 byte." -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -7706,7 +7706,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7716,12 +7716,12 @@ msgstr "" "{ph0}So sánh với nguồn của ban tổ chức{ph1} · {ph2}Thách thức siêu dữ liệu " "và cờ{ph3} · {ph4} REA ghi chú bằng chứng{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "Hãy thử nó cho mình" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 msgctxt "page:showcase/ctf/index.html" msgid "" "Download the original challenge and the solver into one folder. Use the " @@ -7730,13 +7730,13 @@ msgstr "" "Tải xuống thử thách ban đầu và người giải quyết vào một thư mục. Sử dụng lời" " nhắc ở trên để điều tra với agent của bạn hoặc chạy tập lệnh đi kèm." -#: website/public/showcase/ctf/index.html:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "Thiết bị đầu cuối * giải quyết và chạy" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7748,7 +7748,7 @@ msgstr "" "quyết Nhu cầu Python và {ph0}. Chạy các nhu CẦU thực thi BAN ĐẦU Linux " "x86-64." -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "Thiết LẬP REA với agent mã hóa của bạn" @@ -7769,27 +7769,27 @@ msgstr "" "các chức năng kiểm tra, trích xuất mặt nạ và so sánh cờ đã khôi phục với " "chương trình gốc." -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF cờ - kiểm tra trường hợp nghiên cứu" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "Sao CHÉP dấu nhắc VÍ DỤ CTF" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "PHƯƠNG trình mặt NẠ CTF; cuộn theo chiều ngang trên màn hình nhỏ hơn" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7800,42 +7800,42 @@ msgstr "" "đó đóng góp vào tổng. Mã ký tự bắt buộc của nó là 55, có nghĩa là ký tự là " "7." -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "Thực hiện theo kiểm TRA CTF" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "Sao chép ctf hội" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "Sao chép KIỂM tra CTF có thể đọc được" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "Sao CHÉP CTF giải đoạn trích" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "Sao chép cờ phục hồi" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "Sao CHÉP LỆNH CTF solver" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -7844,25 +7844,25 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball" msgstr "{ph0}Nhà{ph1} / {ph2}Giới thiệu{ph3} / DX-Ball" -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "Nghiên cứu trường hợp * DX-Ball 1.07" #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "XÂY DỰNG LẠI DX-Ball {ph0}từ thực thi của nó." -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" @@ -7871,14 +7871,14 @@ msgstr "" "Mục tiêu là một phiên bản C có thể bảo trì của TRÒ chơi Windows NĂM 1996. " "REA giúp các agent kiểm tra bản gốc, một chức năng tại một thời điểm." -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 * C * REA" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7890,14 +7890,14 @@ msgstr "" "gọi và dữ liệu đọc; dự án tái thiết thực hiện và kiểm tra kết quả. {ph0}Hình" " mở{ph1}" -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "Trong trường hợp này nghiên cứu" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7905,7 +7905,7 @@ msgstr "{ph0}Dự án{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7913,7 +7913,7 @@ msgstr "{ph0}Âm thanh pan{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7921,23 +7921,23 @@ msgstr "{ph0}Kiểm tra kết quả{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}Tiếp tục công việc{ph1}" -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "duy Trì Chức Năng C" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "so sánh với mã gốc" -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "các hàm với các byte được biên dịch phù hợp" @@ -7948,7 +7948,7 @@ msgstr "các hàm với các byte được biên dịch phù hợp" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7958,12 +7958,12 @@ msgstr "" "Trạm kiểm soát dự án: 7 tháng 10 năm 2026. {ph0}Sổ cái tiến độ{ph1} · " "{ph2}Bảo hiểm kiểm tra{ph3}" -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "Dự án cho đến nay" -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7978,12 +7978,12 @@ msgstr "" "chơi được tiếp tục với vật lý bóng và mái chèo, xử lý tăng sức mạnh và TÍCH " "hợp Windows." -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "Tìm tính toán vị trí âm thanh trái/phải" -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -8002,17 +8002,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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}Agent mã hóa của bạn" -#: website/public/showcase/dx-ball/index.html:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "Sao chép" @@ -8023,7 +8023,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8033,7 +8033,7 @@ msgstr "" "{ph0}›{ph1}{ph2}SỬ dụng REA để tìm CÁCH DX-Ball tính toán định vị âm thanh " "nổi. Giải thích tính toán và hiển thị mã.{ph3}{ph4}{ph5}" -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -8044,7 +8044,7 @@ msgstr "" "sẵn. Cuộc điều tra dưới đây cho THẤY CÁC truy vấn REA và bằng chứng đằng sau" " câu trả lời." -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -8058,7 +8058,7 @@ msgstr "" #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8072,12 +8072,12 @@ msgstr "" " động dấu phẩy động. Sự khác biệt đó đã cho agent một lý do cụ thể để tiếp " "tục điều tra." -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "Chế độ xem dịch ngược đầu tiên" -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -8086,18 +8086,18 @@ msgstr "" "Đầu ra hiển thị một cuộc gọi chuyển đổi. Đọc các hướng dẫn dưới đây cho thấy" " đầu vào và tính toán cho ăn cuộc gọi đó." -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "Ba câu HỎI được trả lời THÔNG QUA REA" -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "Khôi phục đầu vào bị thiếu" #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8107,14 +8107,14 @@ msgstr "" "Kết quả chức năng bao gồm các hướng dẫn cùng với mã giả và hàm gọi. Đây, " "{ph0} hiển thị đầu vào số nguyên bị thiếu từ chế độ xem trình dịch ngược." -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "Theo dõi hàm gọi để hiểu đầu vào" #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8124,12 +8124,12 @@ msgstr "" "REA đã xác định hàm gọi này trong kết quả đầu tiên. Quy mô hướng dẫn trước " "của nó {ph0} bằng 30; thêm 20 cho tọa độ màn hình của gạch, {ph1}." -#: website/public/showcase/dx-ball/index.html:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "Đọc các giá trị đằng sau địa chỉ bộ nhớ" -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The returned bytes establish the two arithmetic constants and initial pan " @@ -8138,12 +8138,12 @@ msgstr "" "Các byte được trả về thiết lập hai hằng số học và thang đo pan ban đầu. Tác " "nhân bây giờ có các giá trị cần thiết cho biểu Thức C." -#: website/public/showcase/dx-ball/index.html:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "TỪ NHỮNG phát Hiện CỦA REA Đến C" -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -8154,7 +8154,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -8162,7 +8162,7 @@ msgstr "{ph0}01{ph1} Đầu vào" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -8170,7 +8170,7 @@ msgstr "{ph0}02{ph1} Nhân" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -8178,7 +8178,7 @@ msgstr "{ph0}03{ph1} Trừ" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -8186,18 +8186,18 @@ msgstr "{ph0}04{ph1} Quy mô" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} Quay trở lại" -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "Bản gốc x86 * trích đoạn" -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "Tái Tạo C" @@ -8207,7 +8207,7 @@ msgstr "Tái Tạo C" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8226,7 +8226,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8242,7 +8242,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8259,7 +8259,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8276,7 +8276,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8288,7 +8288,7 @@ msgstr "" "định TRONG REA 's callee kết quả. C đúc kết quả để {ph4}; so sánh " "original-x86 kiểm tra giá trị trả về." -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -8299,23 +8299,23 @@ msgstr "" "đầy đủ dưới đây cũng bao gồm các cửa hàng can thiệp và thiết lập chức năng " "và dọn dẹp." -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "Lắp ráp đầy đủ và bằng chứng hỗ trợ" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA kết quả · 0x406400-0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "Những gì hàm gọi cung cấp" #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8325,54 +8325,54 @@ msgstr "" "Chức năng gạch-hit tại {ph0} cân tọa độ gạch của nó thêm 30, thêm 20, sau đó" " đẩy nó trước cuộc gọi:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "Những gì dữ liệu đọc thiết lập" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte reads, decoded as little-endian doubles" msgstr "REA byte đọc, giải mã như đôi endian ít" -#: website/public/showcase/dx-ball/index.html:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "Địa chỉ" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "Giá trị" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "Được sử dụng cho" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "Phép nhân đầu tiên" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "Phép trừ" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} ban đầu" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "Quy mô chảo được lưu trữ" -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -8388,7 +8388,7 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8398,12 +8398,12 @@ msgstr "" "{ph0}Nguồn duy trì{ph1} · {ph2}Ghi chú điều tra và tài liệu tham khảo bằng " "chứng{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "Kiểm tra chức năng phục hồi" -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -8412,12 +8412,12 @@ msgstr "" "Hàm được khôi phục vượt qua hai lần kiểm tra: các giá trị trả về của nó khớp" " với bản gốc và các byte được biên dịch của nó khớp với tệp thực thi." -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3.205 trường hợp hành vi" -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -8428,12 +8428,12 @@ msgstr "" " c. Chúng bao phủ mọi vị trí nguyên từ 0 đến 640 ở năm thang pan: 0, 0,5, 1," " 20 và -1." -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 byte phù hợp" -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -8444,7 +8444,7 @@ msgstr "" "dịch khớp với chức năng hoàn chỉnh sau khi áp dụng các lần di dời đã xem xét" " và kiểm tra các hằng số được tham chiếu." -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -8459,18 +8459,18 @@ msgstr "" #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Read the compiler replay details{ph1}" msgstr "{ph0}Đọc chi tiết phát lại trình biên dịch{ph1}" -#: website/public/showcase/dx-ball/index.html:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "Tiếp tục điều tra" -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -8481,7 +8481,7 @@ msgstr "" " tiền thưởng: kiểm tra các chức năng có liên quan, khôi phục trạng thái và " "phụ thuộc của chúng, sau đó so sánh việc triển khai với bản gốc." -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 msgctxt "page:showcase/dx-ball/index.html" msgid "" "To inspect the sound-pan function yourself, follow the DX-Ball project's " @@ -8490,7 +8490,7 @@ msgstr "" "Để tự kiểm tra chức năng sound-pan, hãy làm theo HƯỚNG dẫn thiết lập CỦA DỰ " "án DX-Ball và cung cấp mục tiêu ban đầu phù hợp. Sau đó chạy:" -#: website/public/showcase/dx-ball/index.html:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "TRONG thanh TOÁN DX-Ball" @@ -8499,7 +8499,7 @@ msgstr "TRONG thanh TOÁN DX-Ball" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8513,7 +8513,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8529,7 +8529,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -8554,14 +8554,14 @@ msgstr "" "duy trì Các bài kiểm tra C, original-x86 và các byte hàm được biên dịch phù " "hợp." -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "" "DX-Ball sound-pan điều tra; di chuyển theo chiều ngang trên màn hình nhỏ hơn" -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -8576,70 +8576,70 @@ msgstr "" "tra độc lập so với x86 ban đầu trong 3.205 trường hợp và bằng cách phát lại " "trình biên dịch vc4.0 khớp với 63 byte." -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "Nghiên cứu trường HỢP tái THIẾT DX-Ball" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "Sao chép ví dụ dấu nhắc" -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "Thực hiện theo các tính toán của trái/phải vị trí âm thanh" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "Sao chép đoạn trích lắp ráp ban đầu" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "Sao chép chức năng sound-pan" -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "Sao chép hoàn chỉnh âm thanh-pan lắp ráp" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "Sao CHÉP lệnh PHÂN tích DX-Ball" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}Nhà{ph1} / Trưng bày" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA nghiên cứu trường hợp." -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 msgctxt "page:showcase/index.html" msgid "" "Android, games, Electron and a CTF challenge, with code, figures and checked" @@ -8648,17 +8648,17 @@ msgstr "" "Android, trò chơi, Electron và MỘT THÁCH thức CTF, với mã, số liệu và kết " "quả kiểm tra." -#: website/public/showcase/index.html:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android * PHÂN tích APK" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "Cách trình xác thực tạo mã đăng nhập" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -8669,22 +8669,22 @@ msgstr "" "phương thức tạo BẰNG REA , sau đó di chuyển đồng hồ demo để xem lý do tại " "sao mã thay đổi sau mỗi 30 giây." -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "Đọc nghiên Cứu điển Hình Android" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF * Phân tích các chương trình mã máy" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "Giải QUYẾT MỘT TRÌNH kiểm tra cờ CTF" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -8695,22 +8695,22 @@ msgstr "" "của nó, biến mặt nạ và tổng thành phương trình, sau đó xác minh cờ đã giải " "với chương trình gốc." -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "Đọc nghiên CỨU trường hợp CTF" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "Bản Địa · Tái Thiết" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball ' s tính toán vị trí âm thanh trái/phải" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -8721,22 +8721,22 @@ msgstr "" " REA ' s hướng dẫn, tham chiếu hàm gọi và hằng số dẫn đến một hàm c nhỏ, " "được kiểm tra đối với hành vi ban đầu và tất cả 63 byte được biên dịch." -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "Đọc nghiên CỨU điển HÌNH DX-Ball" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron * Tính năng truy tìm" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Notion sao chép văn bản và HTML như thế nào" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -8748,22 +8748,22 @@ msgstr "" " xem cách một điểm đánh dấu HTML nhỏ giữ dữ liệu khối phong phú được kết nối" " với một bản sao." -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "Đọc nghiên CỨU điển HÌNH Notion" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS * Tái thiết" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "TH04 nhắm vào một viên đạn như thế nào" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8774,17 +8774,17 @@ msgstr "" "nhân, chia và phối hợp của nó với C++ có thể đọc được, sau đó xem cách chúng" " tạo ra một vòng nhắm vào người chơi." -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "Đọc nghiên CỨU điển HÌNH TH04" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "Hướng dẫn từng bước" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 msgctxt "page:showcase/index.html" msgid "" "The guides walk through a native calculation, an Electron export and a " @@ -8793,7 +8793,7 @@ msgstr "" "Các hướng dẫn đi qua tính toán gốc, xuất Electron và yêu cầu trình duyệt. " "Mỗi bắt đầu với một dấu nhắc và một mục tiêu cụ thể." -#: website/public/showcase/index.html:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "Đọc hướng dẫn" @@ -8812,12 +8812,12 @@ msgstr "" "Theo DÕI CÁC cuộc điều tra REA thông qua mã, số liệu và bản demo: Trình xác " "thực Android, DX-Ball , Notion , TH04 và Trình kiểm tra cờ DownUnderCTF." -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -8826,25 +8826,25 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion" msgstr "{ph0}Nhà{ph1} / {ph2}Giới thiệu{ph3} / Notion" -#: website/public/showcase/notion/index.html:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "Nghiên cứu trường hợp * Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "How Notion copies{ph0}text and HTML." msgstr "Notion sao CHÉP như THẾ NÀO{ph0}văn bản VÀ HTML." -#: website/public/showcase/notion/index.html:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " @@ -8853,12 +8853,12 @@ msgstr "" "Theo dõi cuộc gọi clipboard TỪ API trang CỦA Notion, thông qua quá trình tải" " trước và quy trình chính, ĐẾN TRÌNH ghi clipboard CỦA Electron." -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Máy tính để bàn 7.6.1 * JavaScript * REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Cây cầu BÊN TRONG GÓI máy TÍNH ĐỂ BÀN CỦA Notion" @@ -8870,7 +8870,7 @@ msgstr "Cây cầu BÊN TRONG GÓI máy TÍNH ĐỂ BÀN CỦA Notion" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8887,7 +8887,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8904,7 +8904,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8921,7 +8921,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8932,13 +8932,13 @@ msgstr "" "bản và HTML được cung cấp.{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "Một kênh nối hai bên: {ph0}" -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 msgctxt "page:showcase/notion/index.html" msgid "" "The packaged code uses the same channel in the preload and main process. " @@ -8948,14 +8948,14 @@ msgstr "" "quyết các trình bao bọc cho thấy CÁC cuộc gọi Electron đằng sau những tên " "đó." -#: website/public/showcase/notion/index.html:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "Trong trường hợp này nghiên cứu" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8963,7 +8963,7 @@ msgstr "{ph0}Theo cầu clipboard{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8971,19 +8971,19 @@ msgstr "{ph0}Giữ cấu trúc của một khối{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}More examples and sources{ph1}" msgstr "{ph0}Thêm ví dụ và nguồn{ph1}" -#: website/public/showcase/notion/index.html:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "Thao tác sao chép đi đâu?" #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9003,17 +9003,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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}Agent mã hóa của bạn" -#: website/public/showcase/notion/index.html:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "Sao chép" @@ -9024,7 +9024,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9034,7 +9034,7 @@ msgstr "" "{ph0}›{ph1}{ph2}SỬ DỤNG REA để theo dõi CÁCH Notion sao chép văn bản và HTML" " vào bảng tạm hệ thống. Hiển thị mã ở mỗi bước.{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 msgctxt "page:showcase/notion/index.html" msgid "" "An example prompt with Notion's local application package available to your " @@ -9043,12 +9043,12 @@ msgstr "" "Một lời nhắc ví dụ VỚI GÓI ứng dụng CỤC BỘ CỦA Notion có sẵn cho agent mã " "hóa của bạn." -#: website/public/showcase/notion/index.html:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA tìm nơi bắt đầu đọc" -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -9059,13 +9059,13 @@ msgstr "" "gửi yêu cầu IPC. Cả hai phát hiện đều đi kèm với phạm vi nguồn trong gói thu" " nhỏ:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA phát hiện → hai nơi để mở" #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9079,7 +9079,7 @@ msgstr "" #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9093,12 +9093,12 @@ msgstr "" "cấp cho tác nhân một cái gì đó chính xác để tìm kiếm trong gói chính. Bốn " "đoạn trích dưới đây cho thấy tuyến đường mà nó kết nối." -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "Bốn đoạn mã ngắn" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 msgctxt "page:showcase/notion/index.html" msgid "" "Simplified from the packaged JavaScript, with readable variable names. " @@ -9107,13 +9107,13 @@ msgstr "" "Đơn giản hóa TỪ JavaScript đóng gói , với tên biến có thể đọc được. Các " "thành viên không liên quan bị bỏ qua." -#: website/public/showcase/notion/index.html:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "Bắt đầu TẠI API tiếp xúc với trang" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9123,13 +9123,13 @@ msgstr "" "Thành viên này cung cấp tên kênh. Việc thực hiện {ph0} cho chúng tôi biết " "cách yêu cầu rời khỏi quy trình của trang." -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "Giải quyết trình bao bọc tải trước" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9139,14 +9139,14 @@ msgstr "" "Hàm trả về chuyển tiếp các đối số thông qua IPC YÊU cầu và phản hồi CỦA " "Electron. Bây giờ chúng ta có thể tìm kiếm {ph0} về phía chính-quá trình." -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "Kiểm tra cách người nhận được đăng ký" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9156,12 +9156,12 @@ msgstr "" "Quá trình chính sử dụng một trình bao bọc khác. Của nó {ph0} phương pháp " "đăng ký một {ph1} người nhận cho kênh đó." -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "Tìm ghi và kiểm tra người gửi của nó" -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -9172,13 +9172,13 @@ msgstr "" " cung cấp cho API clipboard CỦA Electron. Kênh và hai trình bao bọc được " "giải quyết kết nối phương thức tiếp xúc với cuộc gọi này." -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "Làm thế nào để một khối được sao chép giữ cấu trúc của nó?" #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9188,27 +9188,27 @@ msgstr "" "Notion ' s web editor gửi văn bản VÀ HTML thông qua {ph0}. Nó giữ dữ liệu " "khối cục bộ và ĐẶT ID vào HTML đã sao chép để kết nối chúng." -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "LIÊN KẾT HTML để lưu dữ liệu khối" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "Đọc ID HTML" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "Tìm CÙNG MỘT ID cục BỘ" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "Khôi phục DỮ LIỆU KHỐI Notion" -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " @@ -9217,7 +9217,7 @@ msgstr "" "Văn BẢN minh họa VÀ ID. Kiểm tra mô-đun được ghi sẽ khôi phục dữ liệu khối " "khi id khớp; một mục cũ chỉ trả về văn bản và HTML." -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." @@ -9226,24 +9226,24 @@ msgstr "" "Khi dán, Notion tìm ID HTML và kiểm tra NÓ với bản sao đã lưu. Id phù hợp " "khôi phục dữ liệu khối." -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "" "Định dạng Clipboard được ghi lại từ tài sản web được lưu trong bộ nhớ cache " "vào ngày 13 tháng 7 năm 2026." -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "Thêm ví dụ và nguồn" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "Một ví dụ khác: Bảng Markdown" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 msgctxt "page:showcase/notion/index.html" msgid "" "Notion parses Markdown into block data. This example shows how a table " @@ -9252,12 +9252,12 @@ msgstr "" "Notion phân Tích Markdown thành dữ liệu khối. Ví dụ này cho thấy cách một " "bảng trở thành tiêu đề và các hàng dữ liệu." -#: website/public/showcase/notion/index.html:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "Một bảng thông QUA TRÌNH phân tích Cú pháp Markdown CỦA Notion" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 msgctxt "page:showcase/notion/index.html" msgid "" "Recorded output from an extracted Markdown parser. The table becomes rows " @@ -9266,13 +9266,13 @@ msgstr "" "Ghi lại đầu ra từ Một Trình phân tích Cú pháp Markdown trích xuất. Bảng trở " "thành hàng và ô." -#: website/public/showcase/notion/index.html:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "Một đường dẫn khác: kết nối sqlite ngoại tuyến" #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9285,7 +9285,7 @@ msgstr "" "kênh tin nhắn và cung cấp một cổng cho trình kết xuất và cổng kia cho quy " "trình tiện ích SQLite. Các lô tuyên bố tiếp theo và kết quả đi qua cổng đó." -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 msgctxt "page:showcase/notion/index.html" msgid "" "Following this handoff explains where the database work runs, and why " @@ -9294,7 +9294,7 @@ msgstr "" "Sau đó, handoff giải thích nơi công việc cơ sở dữ liệu chạy và tại sao chỉ " "truy tìm yêu cầu IPC ban đầu bỏ lỡ cuộc trò chuyện sau này." -#: website/public/showcase/notion/index.html:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "Nguồn và cách đọc các đoạn trích" @@ -9302,7 +9302,7 @@ msgstr "Nguồn và cách đọc các đoạn trích" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9320,7 +9320,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9336,7 +9336,7 @@ msgstr "" "thi các mô-đun được trích xuất và các dây nịt nhỏ; đầu ra của chúng mô tả " "các đầu dò đó thay vì một phiên GIAO diện người dùng máy tính để bàn bị bắt." -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -9350,7 +9350,7 @@ msgstr "" " các triển khai trình bao bọc của chúng trong gói." #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9368,7 +9368,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9382,7 +9382,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -9408,52 +9408,52 @@ msgstr "" "wrappers và quy trình chính, với đoạn trích mã ngắn và xem xét định dạng " "clipboard phong phú của NÓ." -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron trường hợp nghiên cứu" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "Sao CHÉP DẤU NHẮC PHÂN TÍCH Notion" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "Sao CHÉP Notion tải trước đoạn trích" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "Sao CHÉP Notion gọi wrapper đoạn trích" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "Sao CHÉP Notion handler wrapper đoạn trích" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "Sao CHÉP Notion clipboard receiver đoạn trích" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "Khôi phục dữ liệu clipboard phong phú trên dán" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "Về đầu trang" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -9462,25 +9462,25 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04" msgstr "{ph0}Nhà{ph1} / {ph2}Giới thiệu{ph3} / TH04" -#: website/public/showcase/th04/index.html:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "Nghiên cứu điển hình * Touhou 4: Lotus Land Story" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "XÂY DỰNG LẠI TH04 ' s{ph0}mẫu đạn." -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " @@ -9490,17 +9490,17 @@ msgstr "" "chức năng dos ban đầu, sau đó làm theo hướng dẫn của NÓ vào C++có thể đọc " "được." -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 msgctxt "page:showcase/th04/index.html" msgid "PC-98 · 16-bit DOS · C++ and assembly" msgstr "PC-98 * 16-bit DOS * c++ và lắp ráp" -#: website/public/showcase/th04/index.html:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "Xem TÁI THIẾT TH04" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "Từ hướng dẫn ban đầu để kiểm tra nguồn" @@ -9511,7 +9511,7 @@ msgstr "Từ hướng dẫn ban đầu để kiểm tra nguồn" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9527,7 +9527,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9545,7 +9545,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9561,7 +9561,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9572,7 +9572,7 @@ msgstr "" "{ph0}04 * Kiểm tra nguồn{ph1}{ph2}2,139 byte phù hợp{ph3}{ph4}Kiểm tra trình" " biên dịch đã ghi bao gồm mã tạo đạn có chứa trình trợ giúp này.{ph5}" -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 msgctxt "page:showcase/th04/index.html" msgid "" "REA returns the original code and its analysis evidence. The TH04 project " @@ -9581,14 +9581,14 @@ msgstr "" "REA trả về mã gốc và bằng chứng phân tích của nó. DỰ án TH04 cung cấp các " "kiểm tra nguồn và trình biên dịch được duy trì." -#: website/public/showcase/th04/index.html:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "Trong trường hợp này nghiên cứu" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -9596,7 +9596,7 @@ msgstr "{ph0}Vòng đạn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -9604,7 +9604,7 @@ msgstr "{ph0}REA trả về gì{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -9612,7 +9612,7 @@ msgstr "{ph0}Lắp Ráp Để C C{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -9620,18 +9620,18 @@ msgstr "{ph0}Kiểm tra nguồn{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}Dự án đầy đủ{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "Làm thế nào một chiếc nhẫn nhắm vào người chơi" -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -9650,16 +9650,16 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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}Agent mã hóa của bạn" -#: website/public/showcase/th04/index.html:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "Sao chép" @@ -9670,7 +9670,7 @@ msgstr "Sao chép" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9680,7 +9680,7 @@ msgstr "" "{ph0}›{ph1}{ph2}SỬ DỤNG REA để tìm CÁCH TH04 tạo ra một vòng đạn và nhắm vào" " người chơi. Giải thích tính toán và hiển thị mã.{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -9690,7 +9690,7 @@ msgstr "" "địa phương." #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9704,7 +9704,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9714,12 +9714,12 @@ msgstr "" "Một minh họa của toán học góc phục hồi cho đếm 16, hướng máy nghe nhạc 40 và" " mẫu xoay 0. {ph0}Hình mở{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "Mẫu bắn trong nguồn được phục hồi" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly ' s ring attack * đoạn trích nguồn" @@ -9728,7 +9728,7 @@ msgstr "Elly ' s ring attack * đoạn trích nguồn" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9738,13 +9738,13 @@ msgstr "" "Những dòng này chọn mẫu trước khi điều chỉnh độ khó và hiệu suất. {ph0}Đọc " "nguồn của cuộc tấn công{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REA trả về gì" #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9756,12 +9756,12 @@ msgstr "" "REA trả về hướng dẫn, mã giả và tài liệu tham khảo. Ba phần của kết quả đó " "giải thích mô hình." -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "Kiểm tra hình ẢNH DOS trước khi đọc mã của nó" -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 msgctxt "page:showcase/th04/index.html" msgid "" "The check ties the loaded code and relocation records to the supplied " @@ -9770,7 +9770,7 @@ msgstr "" "Việc kiểm tra liên kết mã đã tải và các bản ghi di dời đến tệp thực thi được" " cung cấp. Đường dẫn trên được rút ngắn để hiển thị." -#: website/public/showcase/th04/index.html:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "Đọc nhân và chia của chiếc nhẫn" @@ -9778,7 +9778,7 @@ msgstr "Đọc nhân và chia của chiếc nhẫn" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9790,12 +9790,12 @@ msgstr "" "số đếm đọc từ {ph1}. Tên nguồn duy trì trường đó {ph2}. Trình tự hoàn chỉnh " "xuất hiện bên dưới." -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "Tìm nơi mẫu quay về phía người chơi" -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -9808,12 +9808,12 @@ msgstr "" " cho các địa chỉ đó có thể đọc được; REA cho phép tác nhân kiểm tra các hoạt" " động ban đầu đằng sau chúng." -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "Từ lắp Ráp Đến có Thể đọc Được c C" -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -9826,7 +9826,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -9834,7 +9834,7 @@ msgstr "{ph0}01{ph1} Chỉ số" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9842,7 +9842,7 @@ msgstr "{ph0}02{ph1} Không gian" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9850,7 +9850,7 @@ msgstr "{ph0}03{ph1} Mục tiêu" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9858,18 +9858,18 @@ msgstr "{ph0}04{ph1} Xoay" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} Cửa hàng" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA * hướng dẫn 16-bit gốc" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "Có thể đọc Được C++ * tóm tắt vòng nhắm" @@ -9877,7 +9877,7 @@ msgstr "Có thể đọc Được C++ * tóm tắt vòng nhắm" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9891,7 +9891,7 @@ msgstr "" #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9906,7 +9906,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9921,7 +9921,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9936,7 +9936,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9949,7 +9949,7 @@ msgstr "" "trường góc đẻ trứng. Các giá trị bọc sau 255, giống như cast byte không dấu." " Nguồn xung quanh cũng chuyển đổi góc và tốc độ này thành vận tốc." -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9960,7 +9960,7 @@ msgstr "" " C++ ở trên là một bản tóm tắt có thể đọc được. Kiểm tra trình biên dịch bên" " dưới áp dụng cho nguồn được duy trì trong dự án được liên kết." -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "Đọc vòng duy trì và mục tiêu nguồn" @@ -9977,7 +9977,7 @@ msgstr "Đọc vòng duy trì và mục tiêu nguồn" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9987,12 +9987,12 @@ msgstr "" "{ph0}Vòng macro{ph1} · {ph2}Mục tiêu và vận tốc nguồn{ph3} · {ph4}Biểu diễn " "góc{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "Kiểm tra nguồn duy trì" -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " @@ -10001,12 +10001,12 @@ msgstr "" "CÁC kiểm tra được ghi LẠI CỦA DỰ án TH04 biên dịch mã tạo đạn, bao gồm cả " "trình trợ giúp này, với chuỗi công cụ Turbo C 4 4.0 J được ghim." -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139 byte phù hợp" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " @@ -10014,12 +10014,12 @@ msgid "" msgstr "" "Mã tạo đạn được biên dịch khớp với phần 2.139 byte của tệp thực thi ban đầu." -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "Hai tòa nhà sạch sẽ" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -10032,66 +10032,66 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "" "Thu âm vào ngày 3 tháng 10 năm 2026. {ph0}Đọc kiểm tra trình biên dịch{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "Phạm vi phân tích và nhận dạng mục tiêu" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "Mục tiêu ban đầu" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, 156,258 bytes, DOS MZ" msgstr "{ph0}, 156,258 byte, DOS MZ" -#: website/public/showcase/th04/index.html:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "Mục trợ giúp" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} TRONG HÌNH ẢNH ĐƯỢC tải CỦA REA" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "Tập tin ban đầu bù đắp" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0}, trả lại bởi {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "Kiểm tra mã được ghi lại" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA 4.1.0 * 7 tháng mười 2026" -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -10102,7 +10102,7 @@ msgstr "" "chéo." #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10117,7 +10117,7 @@ msgstr "" "phạm vi được báo cáo đó." #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10133,7 +10133,7 @@ msgstr "" "tính của trò chơi được cung cấp được ghim bởi biểu hiện kho lưu trữ của nó, " "với nguồn gốc tự đổ nguyên sơ độc lập vẫn còn mở." -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -10144,12 +10144,12 @@ msgstr "" "vi PHẦN CỨNG PC-98 có kiểm tra thời gian chạy riêng biệt trong dự án tái " "thiết." -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "VIỆC TÁI THIẾT TH04 đầy đủ" -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -10162,7 +10162,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -10174,7 +10174,7 @@ msgstr "{ph0}Khám PHÁ KHO LƯU TRỮ TH04{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10190,7 +10190,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10206,7 +10206,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -10231,22 +10231,22 @@ msgstr "" "KIỂM tra MÃ DOS 16 bit gốc CỦA TH04 VỚI REA . Thực hiện theo lắp Ráp Và phục" " Hồi C++ để xem cách một vòng đạn được đặt cách nhau và nhắm vào người chơi." -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04 bullet-nghiên cứu trường hợp mẫu" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "Sao CHÉP DẤU nhắc VÍ DỤ TH04" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" @@ -10254,7 +10254,7 @@ msgstr "" "TH04 cố định và nhằm mục đích đạn nhẫn; di chuyển theo chiều ngang trên màn " "hình nhỏ hơn" -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -10267,27 +10267,27 @@ msgstr "" " tiên được đánh dấu về phía người chơi. Cả hai đều giữ khoảng cách 16 đơn vị" " góc hoặc 22,5 độ." -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "Sao CHÉP TH04 bắn mẫu" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "Thực HIỆN THEO CÁC TH04 nhằm mục đích tính vòng" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "Sao CHÉP TH04 lắp ráp đoạn trích" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "Sao chép có thể đọc được nhằm mục đích-tính toán vòng" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "Về đầu trang" @@ -10770,597 +10770,597 @@ msgctxt "figure:th04-bullet-ring.svg" msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°" msgstr "Khoảng cách tương tự: 256 ÷ 16 = 16 đơn vị góc = 22,5°" -#: website/public/blog/index.html:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "Ví dụ thực tế" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "Blog" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "Bắt đầu" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "Hướng dẫn" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "Mã nguồn" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "Giấy phép MIT" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "Tham gia cộng đồng" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "Theo dõi trên X" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA * nguồn tập lệnh đã chọn" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "Mã nguồn" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "Đầu ra định dạng dự kiến" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "Hướng dẫn" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "Người gọi" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "Hằng số" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "Chức năng C" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "Nút" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "TẢI TRƯỚC API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV tập tin" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "Nhấp chuột của bạn" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "Yêu cầu bị bắt" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "Xuất tập lệnh" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "KẾT quả REA · tóm tắt.trích đoạn ipc" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "TRÍCH ĐOẠN HƯỚNG dẫn REA · 0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA hàm gọi trích đoạn * 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "KẾT quả byte REA * được hiểu là đôi endian nhỏ" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "Phục Hồi C · trích Đoạn" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "Giới thiệu →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "Cài đặt đã chọn từ tập lệnh được kiểm tra" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "Tóm tắt có thể đọc được của trình xử lý %" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA * hướng dẫn ban đầu được chọn" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "Id nhà điều Hành * Nguồn Của Microsoft" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA → agent · kết quả đã chọn" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA → agent · phương pháp và hàm gọi" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA * Đã chọn Java dịch ngược" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "Tóm tắt có thể đọc được · giải thích của agent" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA * generateOTP · cơ thể hoàn chỉnh" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "Tải XUỐNG Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "Tải Xuống Nhà cung Cấp Phân Tích Android" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA → agent · kết quả đã chọn" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → agent · hướng dẫn đã chọn" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "Agent → REA * read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → agent · mục thứ bảy" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "Thực thi ban đầu * SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "Tải xuống thử thách ban đầu" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "Tải về người giải quyết" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "KẾT quả REA · đoạn trích mã giả" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agent · trích đoạn hướng dẫn" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA → agent · hàm gọi trích đoạn" #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · two {ph0} requests" msgstr "Agent → REA * hai {ph0} yêu cầu" -#: website/public/showcase/dx-ball/index.html:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA byte kết quả * giải mã như đôi" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "Bắt đầu với mục tiêu của riêng bạn" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "Tạo mã" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "Quy tắc phục hồi" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "Đồng hồ có thể điều chỉnh" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "Nhị phân" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "Kiểm tra mã" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "Phương trình" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "Đúng!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "Thực thi" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "PHÁT HIỆN REA" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "Phục Hồi C" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "Xác nhận" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "Ứng dụng đóng gói" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "Api tiếp xúc" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "GIẤY GÓI IPC" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "Clipboard" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "Mã DOS gốc" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA hướng dẫn" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "Tính toán góc" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "Vòng đạn" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "Api trang tiếp xúc" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "Trình kết XUẤT CUỘC GỌI IPC" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "Gửi đến clipboard hệ thống" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Lưu cục BỘ BỞI Notion" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Đầu vào đánh dấu" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "Đầu ra trình phân tích cú pháp có cấu trúc · đoạn trích" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "Phân tích ứng dụng của riêng bạn" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "Agent → REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA → agent * các trường được chọn" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "Agent → REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA → agent · trích đoạn hướng dẫn" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "Kết quả chức năng tương tự * aim trích đoạn" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "Tương Ứng Duy Trì C C" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "Vòng macro * chi NHÁNH TH04, đoạn trích" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "Góc và vận tốc * trích đoạn nguồn" @@ -11393,7 +11393,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11410,7 +11410,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11431,7 +11431,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11452,7 +11452,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -11471,7 +11471,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11484,14 +11484,14 @@ msgstr "" " quả cài đặt.{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "Tái thiết · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -11502,7 +11502,7 @@ msgstr "" "xét các thay đổi được đề xuất." #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -11511,7 +11511,7 @@ msgstr "Một ví dụ được cung cấp · {ph0} và npm * Agent mã hóa c #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11530,7 +11530,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -11545,7 +11545,7 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11564,7 +11564,7 @@ msgstr "" #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11575,7 +11575,7 @@ msgstr "" " và viết tập tin.{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -11590,7 +11590,7 @@ msgstr "{ph0} * dòng 8-12" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11603,7 +11603,7 @@ msgstr "" " ra thực tế.{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -11615,16 +11615,18 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." msgstr "" -"Bạn sẽ cần {ph0} 22 (22.23.4+), 24 (24.22.1+) hoặc 26+ (>=26.12.1). npm đi kèm với {ph1}." +"Bạn sẽ cần {ph0} 22 (22.23.4+), 24 (24.22.1+) hoặc 26+ (>=26.12.1). npm đi " +"kèm với {ph1}." #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -11632,20 +11634,20 @@ msgstr "Không có {ph0}, hay không chắc chắn?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"Nếu {ph0} hiển thị v22.23.4+, v24.22.1+ hoặc v26.12.1+, bạn đã sẵn sàng. Nếu hiển thị" -" phiên bản cũ hơn hoặc ‘not recognized’ / ‘command not found’, hãy cài {ph1}" -" 24 LTS:" +"Nếu {ph0} hiển thị v22.23.4+, v24.22.1+ hoặc v26.12.1+, bạn đã sẵn sàng. Nếu" +" hiển thị phiên bản cũ hơn hoặc ‘not recognized’ / ‘command not found’, hãy " +"cài {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -11659,7 +11661,7 @@ msgstr "{ph0} * trích đoạn nguồn ví dụ" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11668,9 +11670,9 @@ msgid "" msgstr "{ph0}Mở ví dụ{ph1} · {ph2}Tải về {ph3}{ph4} · {ph5}Tải về {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -11678,7 +11680,7 @@ msgstr "{ph0} * nguồn ví dụ" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -11692,7 +11694,7 @@ msgstr "" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11709,7 +11711,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11720,7 +11722,7 @@ msgstr "" "220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -11734,7 +11736,7 @@ msgstr "REA · đã tải {ph0} * các dòng đã chọn" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -11752,7 +11754,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -11765,28 +11767,28 @@ msgstr "" "phép tôi thay đổi thời gian.{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} * THÀNH VIÊN API" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} * TRỢ GIÚP IPC" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "chính/{ph0} * trình trợ giúp xử lý" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -11805,7 +11807,7 @@ msgstr "Chuyển sang giao diện tối" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -11820,18 +11822,18 @@ msgstr "" "MCP của Everywhere để kiểm tra lưu lượng đã ghi cùng trợ lý của bạn." #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "Mô hình chuyên biệt{ph0}Bài viết" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Kỹ thuật đảo ngược có cần mô hình lớn hơn không?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " @@ -11840,12 +11842,12 @@ msgstr "" "Những suy nghĩ từ việc tái dựng Touhou về mô hình tổng quát, mô hình chuyên " "biệt và cách học từ phản hồi của trình biên dịch." -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Bởi N0zoM1z0 · 13 tháng 10 năm 2026" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" @@ -11854,37 +11856,37 @@ msgstr "Bỏ qua nội dung" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}Home{ph1} / {ph2}Blog{ph3} / Mô hình và kỹ thuật đảo ngược" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "Tiểu luận" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "Kỹ thuật đảo ngược có cần một mô hình lớn hơn không?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "Bởi N0zoM1z0 · 13 tháng 10 năm 2026" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "Điểm chính" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11897,7 +11899,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11910,7 +11912,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11923,7 +11925,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11936,7 +11938,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11947,14 +11949,14 @@ msgstr "" "phí.{ph1} Đó là những gì tôi muốn đo lường cho quy trình làm việc hoàn chỉnh" " của tác nhân AI." -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "Trong bài viết này" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11962,7 +11964,7 @@ msgstr "{ph0}Mô hình mạnh hơn đã thay đổi điều gì?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11970,7 +11972,7 @@ msgstr "{ph0}Tại sao nên chuyên môn hóa?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11978,7 +11980,7 @@ msgstr "{ph0}Kinh nghiệm này nên được lưu trữ ở đâu?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11986,7 +11988,7 @@ msgstr "{ph0}Học thí nghiệm hữu ích tiếp theo{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11994,7 +11996,7 @@ msgstr "{ph0}Học kỹ thuật đảo ngược và tăng cường{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -12002,7 +12004,7 @@ msgstr "{ph0}Khi công cụ xác minh sai{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -12010,18 +12012,18 @@ msgstr "{ph0}Một so sánh đáng chạy{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}Điều này gợi ý loại tác nhân AI nào?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "Mô hình mạnh hơn đã thay đổi điều gì?" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -12036,7 +12038,7 @@ msgstr "" " lại trò chơi, đặc biệt là Touhou. Khi tôi thay đổi mô hình, các kho lưu trữ" " đã lưu giữ một bản ghi về những gì mỗi phiên đã khôi phục được." -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -12050,12 +12052,12 @@ msgstr "" "mà công việc trước bị mắc kẹt, thay đổi trong mã nguồn cho thấy điều gì đã " "giúp tiến triển." -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "Các biến tạm thời cần có thời gian tồn tại chồng chéo" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -12076,7 +12078,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12090,7 +12092,7 @@ msgstr "" " lại vấn đề{ph3}, nó đã đề xuất một giả thuyết hữu ích về thời gian tồn tại " "của các biến tạm thời này." -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -12107,7 +12109,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12122,7 +12124,7 @@ msgstr "" " {ph0}việc biên dịch lại rõ ràng từ nguồn đã xác nhận rằng hàm đầy đủ khớp " "với{ph1}." -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -12134,7 +12136,7 @@ msgstr "" "nhân AI một hướng đi mới. Phản hồi của trình biên dịch đã giúp nó tinh chỉnh" " giả thuyết đó thành một cách sắp xếp mã nguồn phù hợp." -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "Biểu đồ luồng điều khiển khác" @@ -12143,7 +12145,7 @@ msgstr "Biểu đồ luồng điều khiển khác" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12165,7 +12167,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12183,7 +12185,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12198,7 +12200,7 @@ msgstr "" "trong một thời gian dài trước khi tìm ra cách tốt hơn để thể hiện công việc " "xung quanh." -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -12212,7 +12214,7 @@ msgstr "" "tra những khám phá và kiểm tra chúng; một so sánh có kiểm soát sẽ giúp tách " "biệt tác động của mô hình khỏi trải nghiệm mà nó kế thừa." -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -12228,12 +12230,12 @@ msgstr "" "mô hình có thể học được bao nhiêu khi làm việc liên tục với trình biên dịch " "và mã đó?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "Tại sao một mô hình AI chuyên biệt có thể hoạt động tốt?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -12248,7 +12250,7 @@ msgstr "" "đó bằng các ví dụ hữu ích: các vòng lặp liên quan và cách sắp xếp trợ giúp " "đã cung cấp các giả thuyết cho các trò chơi." -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -12268,7 +12270,7 @@ msgstr "" #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12284,7 +12286,7 @@ msgstr "" "tên ảnh hưởng đến sự lựa chọn của trình biên dịch. Điều đó gợi ý một giả " "thuyết hứa hẹn hơn cho việc {ph2}tái tạo {ph3}{ph4}." -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" @@ -12293,7 +12295,7 @@ msgstr "" "Việc sử dụng lại mẫu đó cho biến kích thước tệp sẽ tạo ra bố cục cần thiết " "mà không cần thêm bộ nhớ. Các chức năng đầy đủ sau đó phù hợp." -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -12305,7 +12307,7 @@ msgstr "" "thể xem nhiều trường hợp như vậy và tìm hiểu xem biến thể mã nguồn nào đáng " "để thử nghiệm trước tiên." -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -12324,7 +12326,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12343,14 +12345,14 @@ msgstr "" " định ban đầu; từng mục tiêu cho biết giả định đó có phù hợp không. Mô hình " "chuyên biệt cần học cách phân biệt các bối cảnh này." -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "Kinh nghiệm này nên được lưu trữ ở đâu?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12366,7 +12368,7 @@ msgstr "" "nhớ đó bao gồm các bài học về trình biên dịch, cùng với nguồn và các thử " "nghiệm thất bại khiến chúng trở nên hữu ích." -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -12383,7 +12385,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12401,7 +12403,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12418,7 +12420,7 @@ msgstr "" " hình phải quyết định kết quả có ý nghĩa gì cho lần thử tiếp theo. Biết mẫu " "có liên quan chỉ là bước khởi đầu của quá trình đó." -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -12431,12 +12433,12 @@ msgstr "" "kinh nghiệm sẽ giúp chúng tôi xác định nội dung đào tạo bổ sung: tạo ứng " "viên tốt hơn, đưa ra quyết định tốt hơn sau khi phản hồi hoặc cả hai." -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "Học thí nghiệm hữu ích tiếp theo" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -12450,7 +12452,7 @@ msgstr "" "kết quả có thể thu hẹp các khả năng còn lại và đề xuất thử nghiệm tiếp theo " "hữu ích hơn." -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -12462,43 +12464,43 @@ msgstr "" "sự sắp xếp đã có hiệu quả nhưng đường dẫn đến nguồn đó chứa nhiều thông tin " "hơn. Mỗi thử nghiệm sau đây đã giúp xác định những gì vẫn cần thay đổi." -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "Thử nghiệm" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "Kết quả của nó đã dạy chúng ta điều gì" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "Hãy thử một cách khác để sao chép kết quả" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "Mã sao chép thay đổi nhưng chức năng vẫn khác." -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "Sử dụng trực tiếp các giá trị được trả về" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "Sao chép theo mẫu ban đầu, nhưng lưu trữ tạm thời vẫn khác." -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "Giữ tất cả các biến tạm thời hợp lệ cùng một lúc" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " @@ -12507,18 +12509,18 @@ msgstr "" "Chúng có bộ lưu trữ riêng biệt, nhưng một bộ vẫn chồng lên một giá trị được " "sử dụng sau này để kiểm tra va chạm." -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "Giữ riêng giá trị kiểm tra va chạm" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "" "Việc biên dịch lại rõ ràng từ nguồn xác nhận sự trùng khớp hoàn chỉnh." -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " @@ -12527,7 +12529,7 @@ msgstr "" "Các thử nghiệm được chọn từ quá trình tái cấu trúc chức năng tấn công ở " "trên, được nhóm theo những gì chúng đã dạy chúng ta." -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -12543,7 +12545,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12558,7 +12560,7 @@ msgstr "" "tin, nhân viên sẽ có thể xem lại phần trình bày nguồn hoặc kiểm tra lại bằng" " chứng." -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -12571,12 +12573,12 @@ msgstr "" "khác. Một chuỗi các lần viết lại bắt buộc một cách cứng nhắc sẽ loại bỏ lựa " "chọn đó, cùng với một phần hành vi mà chúng ta muốn mô hình học." -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "Tại sao kỹ thuật đảo ngược lại thú vị cho việc học tăng cường" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -12589,7 +12591,7 @@ msgstr "" "thử nghiệm mã nguồn cho phản hồi nhanh và có thể lặp lại. Tác nhân có thể " "biên dịch mã ứng viên, xem khác biệt rồi chọn bước tiếp theo." -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -12607,7 +12609,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12629,7 +12631,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12646,7 +12648,7 @@ msgstr "" "tính dấu phẩy động{ph1}. Trước khi tác nhân có thể kiểm tra một sự điều " "chỉnh hữu ích, nó phải tìm ra những gì cần đo lường." -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -12658,12 +12660,12 @@ msgstr "" "chúng tôi có thể điều tra xem chính sách tìm kiếm đã học có thể đi được bao " "xa." -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "Khi công cụ xác minh sai" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -12675,7 +12677,7 @@ msgstr "" "đó là oracle. Ngay cả câu trả lời lặp lại được cũng cần được hiểu theo những" " gì nó thực sự xác minh." -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -12698,7 +12700,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12713,7 +12715,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12730,7 +12732,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12746,7 +12748,7 @@ msgstr "" " cần hiểu một bài kiểm tra đạt theo các trường hợp mà nó thực hiện. Tương " "tự, một lệnh khớp phải được hiểu theo byte và dữ liệu mà nó xác minh." -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -12764,7 +12766,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12776,12 +12778,12 @@ msgstr "" "cùng một vấn đề nghiên cứu.{ph1} Mô hình càng giỏi tối ưu phản hồi được cung" " cấp, chúng ta càng cần hiểu chính phản hồi đó." -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "Một so sánh đáng chạy" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -12797,7 +12799,7 @@ msgstr "" "truy xuất. Từ đó, chuyên môn hóa được giám sát và phiên bản được đào tạo RL " "sẽ cho phép chúng tôi kiểm tra nội dung đào tạo bổ sung." -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -12811,7 +12813,7 @@ msgstr "" " thử nghiệm lặp đi lặp lại sẽ giúp phân biệt một chiến lược tìm kiếm đáng " "tin cậy với một giải pháp ứng viên tình cờ thành công." -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -12827,7 +12829,7 @@ msgstr "" "đạt được nhiệm vụ đó. Việc đo lường chúng một cách riêng biệt sẽ tiết lộ sự " "phân chia công việc đó." -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -12842,7 +12844,7 @@ msgstr "" "bộ các nhóm mã nguồn có liên quan và loại bỏ các câu trả lời đã được xác " "minh của chúng khỏi cả dữ liệu huấn luyện và thư viện truy xuất." -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -12856,7 +12858,7 @@ msgstr "" "kiếm. Đo tổng thời gian và chi phí, kể cả biên dịch, cho biết chất lượng đó " "có tạo ra quy trình hiệu quả không. Chi phí huấn luyện cần tính riêng." -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -12874,7 +12876,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12896,7 +12898,7 @@ msgstr "" "theo, nhưng tôi sẽ xác thực bất kỳ phần thưởng nào cho việc \"tiến gần hơn\"" " so với kiểm tra chấp nhận hoàn toàn." -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -12912,12 +12914,12 @@ msgstr "" "Câu trả lời sẽ giúp chúng ta quyết định xem mỗi loại mô hình sẽ hữu ích nhất" " ở đâu." -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "Điều này gợi ý loại tác nhân AI nào?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -12933,7 +12935,7 @@ msgstr "" " kết quả không còn có ý nghĩa nữa, tác nhân rộng hơn có thể quay lại bằng " "chứng mục tiêu hoặc tự điều tra phép đo." -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -12944,7 +12946,7 @@ msgstr "" "thể lựa chọn khi cuộc điều tra phát triển. Người đại diện có quyền tự do " "thay đổi hướng đi để có thể đạt được những đột phá trước đó." -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -12958,7 +12960,7 @@ msgstr "" " quyết định nào cần được đánh giá rộng rãi và quyết định nào được cải thiện " "thông qua kinh nghiệm lặp đi lặp lại với một nghề cụ thể." -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -12975,7 +12977,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12986,12 +12988,12 @@ msgstr "" "hỏi.{ph1} Tôi muốn sử dụng hồ sơ đó để xây dựng sự so sánh và xem những gì " "chúng tôi học được." -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "Bằng chứng và quy kết mô hình" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -13005,7 +13007,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13031,7 +13033,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13056,7 +13058,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13081,7 +13083,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13108,7 +13110,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13120,7 +13122,7 @@ msgstr "" "TH08{ph3}, {ph4}điều tra số học của TH08{ph5} và {ph6}tái dựng chức năng lưu" " replay của TH09{ph7}." -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -13147,22 +13149,22 @@ msgstr "" "chuyên biệt và việc học cách đề xuất các giả thuyết tốt hơn từ phản hồi của " "trình biên dịch." -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "Trên trang này" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "Mô hình và tiểu luận kỹ thuật đảo ngược" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "Các thí nghiệm tái thiết được chọn" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "Về đầu trang" @@ -13171,7 +13173,7 @@ msgstr "Về đầu trang" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -13183,68 +13185,68 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}Ví dụ thực tế{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA nghiên cứu trường hợp." -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android * PHÂN tích APK" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "Cách trình xác thực tạo mã đăng nhập" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "Đọc nghiên Cứu điển Hình Android" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron * Tính năng truy tìm" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Notion sao chép văn bản và HTML như thế nào" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "Đọc nghiên CỨU điển HÌNH Notion" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "Bản Địa · Tái Thiết" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball ' s tính toán vị trí âm thanh trái/phải" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "Đọc nghiên CỨU điển HÌNH DX-Ball" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "Tùy chọn thiết lập" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -13255,7 +13257,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13267,7 +13269,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -13275,7 +13277,7 @@ msgstr "{ph0}1. Chuẩn bị máy tính{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -13283,7 +13285,7 @@ msgstr "{ph0}2. Chọn trợ lý AI{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -13291,7 +13293,7 @@ msgstr "{ph0}3. Kết nối REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -13299,18 +13301,18 @@ msgstr "{ph0}4. Thử một cuộc điều tra{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}Các loại đối tượng và công cụ phân tích khác{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. Chuẩn bị máy tính" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " @@ -13319,7 +13321,7 @@ msgstr "" "Dùng máy tính đang lưu các tệp bạn muốn phân tích. Trợ lý AI lập trình chạy " "cục bộ có thể đọc các tệp đó và chạy công cụ giúp bạn." -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -13330,7 +13332,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -13341,7 +13343,7 @@ msgstr "{ph0}Tải bộ cài Node.js{ph1} nếu không dùng được winget." #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13352,18 +13354,18 @@ msgstr "" " (hệ thống đã tắt việc chạy script){ph1} khi bạn chạy {ph2}, hãy dùng {ph3} " "thay thế. Với npm, dùng {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "Tạo thư mục làm việc cho trợ lý AI" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "" "Trong terminal, tạo thư mục cho bài thực hành rồi chuyển vào thư mục đó:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " @@ -13372,12 +13374,12 @@ msgstr "" "Giữ terminal này mở cho bước tiếp theo. Nếu đã có thư mục làm việc, hãy mở " "thư mục đó." -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. Chọn trợ lý AI lập trình" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." @@ -13387,12 +13389,12 @@ msgstr "" "phần mềm cho trợ lý. Chọn một ứng dụng bên dưới; mở hướng dẫn nếu bạn chưa " "từng dùng ứng dụng đó." -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · dùng tài khoản ChatGPT" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -13403,39 +13405,39 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Cài đặt và đăng nhập Codex{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor, Windsurf hoặc VS Code · dùng trình soạn thảo" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "Cài trình soạn thảo phù hợp với hệ điều hành của bạn rồi đăng nhập." -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "Mở thư mục rea-work bạn đã tạo ở bước 1." -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · dùng tài khoản Claude" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "Cài đặt bằng lệnh phù hợp với hệ điều hành của bạn:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13449,13 +13451,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Cài đặt Claude Code và các lựa chọn tài khoản{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · trò chuyện qua ứng dụng máy tính" @@ -13465,7 +13467,7 @@ msgstr "Claude Desktop · trò chuyện qua ứng dụng máy tính" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13476,7 +13478,7 @@ msgstr "" #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13488,19 +13490,19 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}Cài đặt OpenCode và thiết lập mô hình{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "Tất cả ứng dụng được hỗ trợ và ID thiết lập" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13510,12 +13512,12 @@ msgstr "" "Bản phát hành npm 6.4.0 hỗ trợ các ứng dụng dưới đây. Dùng ID cùng với {ph0}" " khi muốn chỉ định ứng dụng." -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "Ứng dụng kết nối" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "ID thiết lập" @@ -13525,7 +13527,7 @@ msgstr "ID thiết lập" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13544,7 +13546,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13554,13 +13556,13 @@ msgstr "" "{ph0}Cấu hình ứng dụng và xử lý sự cố{ph1} · {ph2}Tích hợp có trong các bản " "phát hành{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · kết nối trên máy tính chạy Bot" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13573,29 +13575,29 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Hướng dẫn kết nối Grok Bot{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. Kết nối REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "Dán lời nhắc này vào trợ lý lập trình AI của bạn:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "Để chọn một ứng dụng cụ thể, thêm ID thiết lập của ứng dụng đó:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13607,7 +13609,7 @@ msgstr "" " ứng dụng của REA, dùng phím mũi tên để di chuyển, Space để chọn ứng dụng và" " Enter để tiếp tục." -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " @@ -13616,7 +13618,7 @@ msgstr "" "MCP là kết nối cho phép trợ lý AI gọi REA. Skill hướng dẫn trợ lý quy trình " "điều tra phần mềm." -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -13627,7 +13629,7 @@ msgstr "" #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13637,21 +13639,21 @@ msgstr "" "Thay {ph0} bằng ID thiết lập của ứng dụng bạn dùng. Kiểm tra thành công sẽ " "báo {ph1}. Sau đó, yêu cầu trợ lý AI:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "" "Kiểm tra xem REA đã kết nối chưa và cho tôi biết bạn có thể dùng những công " "cụ REA nào." -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. Thử cuộc điều tra đầu tiên" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13663,7 +13665,7 @@ msgstr "" "Agent của bạn có thể kiểm tra mã của nó mà không cần cài đặt hoặc khởi CHẠY " "Electron ." -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "Trợ lý AI lập trình của bạn" @@ -13677,7 +13679,7 @@ msgstr "Trợ lý AI lập trình của bạn" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13691,7 +13693,7 @@ msgstr "" "đâu {ph4} được viết, trường nào chứa và các tệp và dòng có liên " "quan.{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "Tìm kiếm một lời giải thích ngắn với các tham chiếu tệp và dòng:" @@ -13700,7 +13702,7 @@ msgstr "Tìm kiếm một lời giải thích ngắn với các tham chiếu t #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13714,13 +13716,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}Kiểm chứng một dự đoán trong bài thực hành có hướng dẫn →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "Tự tải ví dụ hoặc dùng ứng dụng của bạn" @@ -13728,14 +13730,14 @@ msgstr "Tự tải ví dụ hoặc dùng ứng dụng của bạn" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}Tải xuống VÍ DỤ ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13746,7 +13748,7 @@ msgstr "" "Cung cấp cho nó con đường đến {ph0} thư mục và cùng một câu hỏi xuất." #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13756,12 +13758,12 @@ msgstr "" "Dùng REA để kiểm tra ứng dụng tại {ph0}. Tìm cách ứng dụng xuất dữ liệu và " "chỉ ra các tệp, dòng mã liên quan." -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "Phân tích loại phần mềm khác" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " @@ -13770,12 +13772,12 @@ msgstr "" "Chọn phần phù hợp với đối tượng cần phân tích. Provider là công cụ phân tích" " cục bộ mà REA dùng cho loại phần mềm đó." -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "Tệp thực thi và thư viện mã máy · Hopper, Ghidra hoặc IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " @@ -13784,47 +13786,47 @@ msgstr "" "Cài một công cụ phân tích trên máy tính chạy REA. Host là hệ điều hành bạn " "đang dùng; target là chương trình bạn muốn kiểm tra." -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "Công cụ phân tích" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "Không khả dụng" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "Các bản phân phối được hỗ trợ" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · thử nghiệm" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "Các cấu hình đã kiểm chứng" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "Cấu hình không có giao diện đã kiểm chứng" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "Xem hướng dẫn công cụ phân tích" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · để trình thiết lập cài đặt hoặc kết nối" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -13836,7 +13838,7 @@ msgstr "" " Trên Linux, trình thiết lập chuẩn bị bản demo được hỗ trợ cùng màn hình " "riêng của nó." -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -13846,7 +13848,7 @@ msgstr "" "Omarchy. Hopper là phần mềm thương mại; bản demo có các giới hạn do nhà cung" " cấp quy định." -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -13859,18 +13861,18 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Thiết lập Hopper và xử lý sự cố{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · cài công cụ phân tích miễn phí và Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -13880,7 +13882,7 @@ msgstr "" "với kiến trúc máy tính của bạn." #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13893,7 +13895,7 @@ msgstr "" #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13908,7 +13910,7 @@ msgstr "" #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -13916,7 +13918,7 @@ msgstr "{ph0}Tải JDK{ph1} · {ph2}Tải Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13926,7 +13928,7 @@ msgstr "" "Kiểm tra Java. Lệnh đầu hiển thị {ph0}; dùng thư mục đó cho {ph1}. Lệnh thứ " "hai xác nhận đã cài trình biên dịch:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -13944,7 +13946,7 @@ msgstr "" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13954,12 +13956,12 @@ msgstr "" "{ph0}Thiết lập Ghidra và yêu cầu kiến trúc{ph1} · {ph2}Hướng dẫn Ghidra trên" " Windows{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · kết nối bản cài đặt sẵn có" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -13970,7 +13972,7 @@ msgstr "" "IDA. Chọn kết nối với GUI đang mở tệp nhị phân gốc, hoặc dùng tiến trình " "giám sát không có giao diện để mở cơ sở dữ liệu riêng." -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -13982,7 +13984,7 @@ msgstr "" "arm64 với IDA Professional 9.1. Cầu nối GUI native tùy chọn có yêu cầu riêng" " về phiên bản và nền tảng." -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -13994,13 +13996,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}Cấu hình IDA, ví dụ đăng ký và nền tảng đã kiểm chứng{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -14011,18 +14013,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}Làm theo ví dụ phân tích mã máy{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "Website, Android, .NET, firmware và các đối tượng khác" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " @@ -14031,110 +14033,110 @@ msgstr "" "Mở hướng dẫn cho đối tượng bạn có. Mỗi hướng dẫn nêu công cụ bổ sung, host " "được hỗ trợ và lệnh đầu tiên." -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "Đối tượng" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "Công cụ cần chuẩn bị" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "Hướng dẫn" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}Mở hướng dẫn{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "Website" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / gói phần mềm" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Thiết bị Android" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Tài nguyên Android" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "Dự án JEB" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "Firmware" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / sự cố Linux" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "Tín hiệu logic" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "Hành vi tiến trình" @@ -14150,7 +14152,7 @@ msgstr "Hành vi tiến trình" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14160,18 +14162,18 @@ msgstr "" "{ph0}Hướng dẫn Flutter{ph1} · {ph2}Gói và tài nguyên{ph3} · {ph4}Bytecode " "EVM{ph5} · {ph6}Tất cả hướng dẫn điều tra{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "Dùng REA từ terminal" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "Lệnh CLI, cài đặt toàn cục và curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14181,7 +14183,7 @@ msgstr "" "Thay {ph0} bằng tên hàm hoặc địa chỉ trong danh sách hàm của đối tượng. Bạn " "phải cấu hình Ghidra trước." -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " @@ -14190,7 +14192,7 @@ msgstr "" "Trên macOS hoặc Linux, bạn cũng có thể dùng bộ cài qua curl sau khi chuẩn bị" " Node.js:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" @@ -14200,12 +14202,12 @@ msgstr "" "trình soạn thảo, bật REA trong cài đặt MCP và cho phép dùng công cụ trong " "cuộc trò chuyện với trợ lý AI." -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows, WSL và đường dẫn có khoảng trắng" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -14217,17 +14219,17 @@ msgstr "" "đó và dùng đường dẫn Linux. Các công cụ phân tích không có giao diện chạy " "trên cùng host với REA." -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Lệnh thiết lập trên Windows:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "Cập nhật hoặc gỡ REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -14238,7 +14240,7 @@ msgstr "" #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14252,52 +14254,52 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}Chi tiết cập nhật và gỡ cài đặt{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "Sao chép lệnh thiết lập REA trên Windows" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "Sao chép lệnh" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "Sao Chép Ghi chú điều tra nhanh chóng" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14307,12 +14309,12 @@ msgstr "" "Cài curl và unzip trước nếu chưa có. Trên Debian hoặc Ubuntu, chạy {ph0}; " "với các bản phân phối khác, dùng trình quản lý gói của bạn." -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "Đóng terminal, mở lại rồi chạy:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -14328,7 +14330,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14338,19 +14340,19 @@ msgstr "" "{ph0}Thiết lập Cursor{ph1} · {ph2}Thiết lập Windsurf / Devin Desktop{ph3} · " "{ph4}Thiết lập VS Code và Copilot{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · chọn mô hình AI" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "Chuẩn bị tệp đăng ký IDA" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14365,7 +14367,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14378,7 +14380,7 @@ msgstr "" #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14390,22 +14392,22 @@ msgstr "" "động và {ph2} nếu có vào tệp. Mở tệp nhị phân gốc trong IDA và khởi chạy " "plugin phía IDA trước khi yêu cầu REA kiểm tra." -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "Cơ sở dữ liệu SQLite" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "Bytecode EVM" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "Cài Codex bằng lệnh phù hợp với hệ điều hành của bạn:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -14416,7 +14418,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14426,12 +14428,12 @@ msgstr "" "Nếu cài lần đầu, tải {ph0}bộ cài Node.js 24 LTS cho macOS (.pkg){ph1}, mở " "rồi làm theo hướng dẫn. Sau đó mở lại Terminal." -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "Bạn đã dùng Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -14442,7 +14444,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14452,7 +14454,7 @@ msgstr "" "Xem và chấp thuận kế hoạch, mở lại Claude rồi {ph0}kiểm tra kết nối ở bước " "3{ph1}." -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -14463,12 +14465,12 @@ msgstr "" "macOS hoặc Linux arm64, hãy biên dịch bộ dịch ngược native cho máy tính của " "bạn trước khi tiếp tục." -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "Biên dịch bộ dịch ngược native của Ghidra" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -14481,7 +14483,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -14491,7 +14493,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -14501,19 +14503,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · hướng dẫn biên dịch native{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "Sau đó kiểm tra Ghidra và lưu đường dẫn cho ứng dụng kết nối của bạn:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -14521,13 +14523,13 @@ msgstr "Vì sao {ph0} cho kết quả 220 trong Máy tính?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}Cách hoạt động{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " @@ -14536,22 +14538,22 @@ msgstr "" "Hãy hỏi trợ lý lập trình của bạn về một ứng dụng, trò chơi hoặc trang web. " "REA cung cấp công cụ để trợ lý kiểm tra mã đằng sau câu trả lời." -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "Bắt đầu" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "Xem một ví dụ ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "Cách hoạt động" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -14562,47 +14564,47 @@ msgstr "" "chính chương trình đó. Với REA, trợ lý có thể lần theo mã, giải thích một " "tính năng và giúp bạn xây dựng lại nó." -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "Hỏi về một tính năng" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "Đưa cho trợ lý một chương trình hoặc trang web cùng một câu hỏi." -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "Kiểm tra chương trình" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA trả về mã, các tham chiếu và quan sát khi chương trình chạy." -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "Hiểu rồi thử thay đổi" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "Trợ lý dùng các phát hiện để giải thích hoặc xây dựng lại tính năng." -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "Lần theo từng lệnh" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "Đặt cùng câu hỏi cho trợ lý" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " @@ -14611,7 +14613,7 @@ msgstr "" "Bắt đầu từ 6. Thêm 0.001 mỗi bản cập nhật mà không có va chạm, trong khi tốc" " độ thấp hơn 13." -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." @@ -14619,7 +14621,7 @@ msgstr "" "Khám phá một tính năng trong ứng dụng hoặc trò chơi đã phát hành, kèm mã và " "kết quả đã kiểm tra." -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " @@ -14628,7 +14630,7 @@ msgstr "" "Lần theo mã đăng nhập sáu chữ số của Aegis trong APK đã phát hành, rồi di " "chuyển đồng hồ minh họa để xem vì sao mã thay đổi mỗi 30 giây." -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " @@ -14637,7 +14639,7 @@ msgstr "" "Lần theo JavaScript được đóng gói của Notion đến bộ nhớ tạm hệ thống để xem " "thao tác sao chép giữ lại dữ liệu khối phong phú như thế nào." -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " @@ -14646,12 +14648,12 @@ msgstr "" "Khôi phục cách vị trí quả bóng tạo ra âm thanh bên trái hoặc phải trong một " "trò chơi Windows năm 1996." -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "Chọn mục tiêu của bạn." -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -14662,7 +14664,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14680,13 +14682,13 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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}Ví dụ nhắc * Trang Web" -#: website/public/index.html:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "Vâng, cái này." @@ -14699,7 +14701,7 @@ msgstr "Vâng, cái này." #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14713,7 +14715,7 @@ msgstr "" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14727,18 +14729,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}See the DX-Ball case study →{ph1}" msgstr "{ph0}Xem nghiên cứu điển hình DX-Ball →{ph1}" -#: website/public/index.html:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "Sao chép lời nhắc dự án trang web" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "Sao chép lời nhắc tái thiết trò chơi" @@ -14750,7 +14752,7 @@ msgstr "Sao chép lời nhắc tái thiết trò chơi" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14762,7 +14764,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -14770,23 +14772,23 @@ msgstr "{ph0}Ví dụ →{ph1} — quá trình khảo sát và bản demo tươn #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}Blog →{ph1} — phương pháp và ghi chép về tái tạo phần mềm." -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "Xem toàn bộ khảo sát Máy tính" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "Thử một dự án lớn hơn" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " @@ -14795,7 +14797,7 @@ msgstr "" "Hãy thử hai ví dụ: thay đổi tốc độ của trò chơi, rồi dựng lại nút % của Máy " "tính." -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " @@ -14804,7 +14806,7 @@ msgstr "" "Trò chơi tăng tốc khi bạn chạy. Để dựng lại nó với chức năng chỉnh tốc độ, " "trước hết ta cần biết tốc độ thay đổi thế nào." -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. Hỏi về tốc độ" @@ -14817,7 +14819,7 @@ msgstr "1. Hỏi về tốc độ" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -14825,12 +14827,12 @@ msgid "" msgstr "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Câu hỏi mẫu · Trò chơi khủng long" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. Tìm quy tắc tốc độ" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " @@ -14839,12 +14841,12 @@ msgstr "" "REA cho phép agent đọc mã của trò chơi đang chạy. Tốc độ bắt đầu ở 6 và tăng" " một chút mỗi lần cập nhật khi còn dưới 13." -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. Chơi thử kết quả" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " @@ -14853,7 +14855,7 @@ msgstr "" "Chúng tôi dựng lại quy tắc đó trong trò chơi nhỏ bên dưới và thêm thanh " "trượt tốc độ. Bắt đầu chơi rồi chọn tốc độ của bạn." -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " @@ -14861,7 +14863,7 @@ msgid "" msgstr "" "Bật JavaScript để chơi. Bạn vẫn có thể đọc quy tắc và mở mã nguồn bên dưới." -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " @@ -14870,7 +14872,7 @@ msgstr "" "Nút % hoạt động khác nhau sau + và ×. Hãy tìm cả hai quy tắc và thử trong " "một máy tính nhỏ." -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. Hỏi về nút %" @@ -14883,18 +14885,18 @@ msgstr "1. Hỏi về nút %" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Câu hỏi mẫu · Máy tính" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. Tìm cả hai quy tắc" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " @@ -14902,12 +14904,12 @@ msgid "" msgstr "" "REA giúp agent đọc mã của nút %. Mã này áp dụng hai quy tắc khác nhau:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. Thử nút %" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "" @@ -14916,7 +14918,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -14924,7 +14926,7 @@ msgstr "{ph0}Đọc FAQ{ph1} — thiết lập và các câu hỏi thường g #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -14934,13 +14936,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — báo lỗi hoặc yêu cầu tính năng." -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "Thiết lập cho nền tảng của bạn:" @@ -14948,14 +14950,14 @@ msgstr "Thiết lập cho nền tảng của bạn:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "Cách cài đặt khác: {ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14970,7 +14972,7 @@ msgstr "" #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14985,7 +14987,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -14997,7 +14999,7 @@ msgstr "" #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15008,7 +15010,7 @@ msgstr "" " đặt in ra. Trên Linux, lệnh thiết lập mặc định là {ph1}." #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -15020,67 +15022,67 @@ msgstr "" "các hàm và chuỗi, rồi giải thích phần xử lý dữ liệu người dùng nhập, kèm " "tham chiếu tới mã." -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "Người đóng góp" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "Bỏ qua nội dung" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}Trang chủ{ph1} / Người đóng góp" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "Cùng nhau xây dựng." -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "Cảm ơn tất cả những người giúp REA ngày càng tốt hơn." -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " @@ -15089,22 +15091,22 @@ msgstr "" "Mã nguồn, tài liệu, kiểm thử, bản dịch và ý tưởng — có nhiều cách để đóng " "góp." -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "Cách đóng góp" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "Tham gia thảo luận →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "Người đóng góp" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "Tìm người đóng góp" @@ -15112,13 +15114,13 @@ msgstr "Tìm người đóng góp" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "Từ {ph0}danh sách người đóng góp trên GitHub{ph1} · Cập nhật: {ph2}." -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "Không tìm thấy người đóng góp phù hợp. Hãy thử tên người dùng khác." @@ -15135,12 +15137,12 @@ msgid "" msgstr "" "Gặp gỡ những người đóng góp mã nguồn, tài liệu, kiểm thử và ý tưởng cho REA." -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "Tên người dùng GitHub" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "Về đầu trang" diff --git a/website/locales/zh-CN/messages.po b/website/locales/zh-CN/messages.po index c85e1089371..dad011ec840 100644 --- a/website/locales/zh-CN/messages.po +++ b/website/locales/zh-CN/messages.po @@ -8,78 +8,78 @@ msgstr "" "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:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}首页{ph1} /博客" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "博客。" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "逆向工程的思考。" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "游戏重建{ph0}随笔" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "逆向工程的工业革命" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 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:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "阅读文章" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 10 日" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -97,160 +97,160 @@ msgid "" "and AI agents." msgstr "对逆向工程的思考,借鉴与 REA 和AI编程助手。" -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "REA — 了解软件如何工作。和你的编程助手一起做逆向工程。" -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA 首页" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "主导航" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "在 GitHub 查看 REA" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "加入 REA 的 Discord 社区" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "在 X 上关注 REA" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -259,35 +259,35 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "随笔 · 东方游戏重建" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "逆向工程的工业革命。" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 10 日" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "要点" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -297,7 +297,7 @@ msgstr "{ph0}让编程助手自主开展调查。{ph1}明确目标和验收标 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -308,7 +308,7 @@ msgstr "{ph0}把代码仓库和 Git 当作工作记忆。{ph1}推理过程和代 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -318,7 +318,7 @@ msgstr "{ph0}结论要由证据决定。{ph1}说得再肯定,也需要验证 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -328,7 +328,7 @@ msgstr "{ph0}校验基准本身也要测试。{ph1}故意给它应当拒绝的 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -336,65 +336,65 @@ msgid "" "methods are still taking shape. There is plenty left to explore." msgstr "{ph0}我们正处于逆向工程工业革命的早期。{ph1}方法还在成形,还有很多值得探索的地方。" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "经验如何产生复利" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "自主探索" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "编程助手" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "验证" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "校验基准" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "代码仓库" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "工作记忆" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -403,7 +403,7 @@ msgstr "代码、证据、{ph0}检查和经验。" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -412,40 +412,40 @@ msgstr "不匹配{ph0}{ph1}修正假设{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "复用" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 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:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "在本文中" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -453,7 +453,7 @@ msgstr "{ph0}2026年8月{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -461,7 +461,7 @@ msgstr "{ph0}TH08:接续前人的工作{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -469,7 +469,7 @@ msgstr "{ph0}两种方法{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -477,7 +477,7 @@ msgstr "{ph0}TH095:经验的复利{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -485,7 +485,7 @@ msgstr "{ph0} TH04:跨架构{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -493,7 +493,7 @@ msgstr "{ph0}从精确到可读{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -501,18 +501,18 @@ msgstr "{ph0}工业化的转变{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "2026年8月发生了什么变化" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -523,7 +523,7 @@ msgid "" msgstr "" "在这之前,我做过很多手工逆向。我会反复查看一个函数,直到能解释它,再对照程序验证这个解释。想推进项目,就得亲自花更多时间研究下一个函数,脑子里也要记住越来越多的整体关系。" -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -534,7 +534,7 @@ msgstr "" "我的逆向工作主要围绕游戏。我希望通过重建弄清游戏的行为,最终做出移植版或 " "mod。这篇文章来自这些经历。方法可以迁移到其他领域,但每个领域都需要先明确:什么可以用可靠的基准来验证。" -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -544,7 +544,7 @@ msgid "" msgstr "" "2026 年 8 月,我开始认真探索让编程助手做逆向。有了程序本身和常用开发工具,它究竟能走多远?东方游戏重建给了我一个足够完整的项目来寻找答案。" -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -556,7 +556,7 @@ msgid "" msgstr "" "早期的进展让我吃惊。我不再需要为每一步作选择,调查也能持续推进。对比失败后,助手可能转去查看另一个调用方,写一段诊断程序,再根据结果决定下一步。这种自主性改变了我的工作:我可以更多关注项目方向,以及检查是否可靠。" -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -564,7 +564,7 @@ msgid "" "had just learned?" msgstr "速度先引起了我的注意。随后我开始想:当前项目结束后,什么会留下来?下一个游戏能不能用上我们刚学到的经验?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08:接续前人的工作" @@ -573,7 +573,7 @@ msgstr "TH08:接续前人的工作" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -585,7 +585,7 @@ msgstr "" "{ph0}TH08{ph1},也就是《东方永夜抄》,从接续{ph2}GensokyoClub " "的重建工作{ph3}开始。他们的公开源码提供了扎实的基础,也留下了构建经验和贡献历史。我在后续工作中保留了这些历史。" -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -595,7 +595,7 @@ msgstr "" "导入的历史截至 8 月 10 日的公开检查点。我的独立续作从 8 月 13 日开始。到 8 月 19 日,进度台账中已识别的 1,107 " "个游戏函数都有了源码。" -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -605,7 +605,7 @@ msgstr "" "8 月 24 日,我们提交了可玩的 Linux 重建移植版,距离开始续作约十一天。随后做出了 Web 版。8 月 30 日,原生 Linux 64 " "位版发布。" -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -617,7 +617,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -630,12 +630,12 @@ msgid "" msgstr "" "这让对照检查成为整个工作的核心。我把这些基准称为{ph0}校验基准{ph1}。代码对比可以判断重建的函数是否复现了原始指令;运行时检查可以判断实际走过的路径是否到达了预期状态。编程助手提出一种解释并加以验证;一旦对不上,它就有了具体的调查方向。" -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "常量错了,却仍然“精确匹配”" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -644,7 +644,7 @@ msgstr "校验工具也是人写的软件。TH08 让我清楚地看到,多少 #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -655,7 +655,7 @@ msgstr "" "9 月,下游 Switch 移植版报告了一个 bug,最后追溯到道具自动收集。重建源码把玩家火力与 {ph0} 比较,而原版用的是 " "{ph1},即满火力的阈值。" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -667,13 +667,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -685,7 +685,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -698,7 +698,7 @@ msgstr "漏洞就在这里:工具可以把重建指令的引用地址调整为 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -710,7 +710,7 @@ msgstr "" "{ph0}9 月 2 日的修复{ph1}纠正了源码,并让比较工具检查被引用常量的实际字节。随后进行的{ph2}全面审计{ph3}检查了 1,548 " "处浮点常量引用,又在五个已通过验收的函数中发现十二处错误引用。" -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -720,7 +720,7 @@ msgstr "现在工具会检查每一处这样的浮点常量。测试还会故意 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -728,7 +728,7 @@ msgid "" "repairing the game." msgstr "{ph0}校验基准本身也需要重建。{ph1}修复它,就是修复游戏的一部分。" -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -741,7 +741,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -754,7 +754,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -762,7 +762,7 @@ msgid "" " for the next batch.{ph1}" msgstr "{ph0}每完成一批工作,我们既得到了还原的代码,也改善了下一批工作的环境。{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "两种不同的重建理念" @@ -771,7 +771,7 @@ msgstr "两种不同的重建理念" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -782,14 +782,14 @@ msgstr "" "GensokyoClub 的{ph0}公开 " "README{ph1}明确表达了对这种工作的异议。公告说,项目完成前,后续开发将在私下进行。其中有这样一段话:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" " our work paints a bad image for future decompilation efforts…" msgstr "“这个领域里出现了利用我们成果的投机者(AI 反编译和移植项目),给未来的反编译工作留下了不好的印象……”" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -802,7 +802,7 @@ msgstr "" "公告也提到了维护者承受的心理压力。他们的贡献政策不接受主要由 AI 生成的 " "PR。他们用业余时间投入了艰难的工作,这些成果让我的续作成为可能。我尊重他们付出的努力。我想讨论的分歧,是重建应当如何推进,以及贡献应当如何评价。" -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -812,7 +812,7 @@ msgid "" msgstr "" "在我熟悉的手工流程中,理解一个函数和重建它,通常由同一个人完成。项目非常依赖这个人的专业能力。很多推理发生在工作过程中,所以对贡献者本人的信任很重要。" -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -820,7 +820,7 @@ msgid "" "pursue the next investigation on its own." msgstr "已有项目本就会在源码和构建工具中保存知识。对我而言,变化在于:编程助手能利用这些知识,自主推进下一次调查。" -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -831,7 +831,7 @@ msgid "" msgstr "" "在我的续作中,我来确定目标和验收标准,助手有充分的调查自由。它提出的重建方案必须通过相应检查。我希望其他人能够看懂我们为什么选择这个实现,即使大部分工作由助手完成。" -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -841,7 +841,7 @@ msgid "" msgstr "" "这可能是一个艰难的转变。多年的细致工作,可能成为一个推进得更快的续作的基础。这会带来真实的归属与署名问题,也改变维护者在接受贡献前需要了解的事情。" -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -852,7 +852,7 @@ msgid "" msgstr "" "工业化的比喻有助于理解这一点。手工作业的过程往往依赖操作者的技艺。机器改变了这些技艺发挥作用的位置,但仍然需要人设计流程、识别错误产出。不同社区可以选择接受多少这样的变化。" -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -873,7 +873,7 @@ msgstr "我的选择是公开继续,注明继承的工作并保留其历史。 #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -884,14 +884,14 @@ msgstr "" "来源:GensokyoClub 的{ph0}README 公告{ph1}(于 2026 年 10 月 10 " "日核对)及其{ph2}贡献政策{ph3}。上面的引文为节选译文。TH08 的{ph4}贡献署名与来源记录{ph5}说明了独立续作的起点。" -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095:经验开始产生复利" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -903,7 +903,7 @@ msgstr "" "{ph0}TH095{ph1},也就是《东方文花帖》,让这些经验的价值更容易看清。仓库于 8 月 29 " "日建立,当时台账中确认的游戏函数数量为零。我们仍需研究游戏本身,但已经更清楚如何开始重建,以及怎样持续推进。" -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -914,7 +914,7 @@ msgstr "" "到 9 月 7 日,全部 697 个已识别游戏函数都有了源码。9 月 8 日,其中 696 个通过了精确对比。9 月 9 日,整个程序完成链接。9 月 " "10 日,Windows i386 重建版被记录为可玩,距离初始化约十二天。" -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -922,7 +922,7 @@ msgid "" "present in the tools and in the way the project was organized." msgstr "这比第一个项目的速度更让我兴奋。新目标能受益于另一个游戏的工作。经验已经进入工具,也进入了项目的组织方式。" -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -934,7 +934,7 @@ msgstr "" "例如,TH08 教会我们尽早关注整个程序。如果几个还原函数依赖同一份状态,分别对比它们仍然会留下一个关键问题:它们能否一起正常工作?这条经验影响了 " "TH095 的整程序构建方式。" -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -944,7 +944,7 @@ msgid "" msgstr "" "经验只记在我脑子里,我在场时它才有用。变成其他会话能运行的检查后,即使我离开,它仍能帮助项目。下一个助手可以利用检查结果,不用重复当初得出这条经验的调查。" -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -956,7 +956,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -965,7 +965,7 @@ msgid "" "actually new about its target." msgstr "{ph0}方法本身成了下一个游戏的起始材料。{ph1}我们可以把更多精力放在新目标真正不同的地方。" -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -974,7 +974,7 @@ msgid "" "the way it does." msgstr "后来加入的人也能受益。他们可以查看某个决定,重新运行检查,再继续工作。不用先重走整个项目的历史,才能理解源码为何这样写。" -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04:换了架构,工作方式仍然适用" @@ -983,7 +983,7 @@ msgstr "TH04:换了架构,工作方式仍然适用" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -996,7 +996,7 @@ msgstr "" "{ph0}TH04{ph1},也就是《东方幻想乡》,把这套工作带到了 PC-98 DOS 时代。这次是一个由四个程序协作的 16 " "位环境。理解硬件行为,需要和 Windows 游戏不同的证据。已有的{ph2}ReC98 工作{ph3}同样提供了宝贵的知识与源码材料。" -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1007,7 +1007,7 @@ msgstr "" "DOS 重建版现在已经能运行。我手工打完了完整的 Normal 路线,看到结局,并检查了存档。目前正在做原生 64 位移植。先得到一个正常工作的 DOS" " 版,就为移植提供了参照。" -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1016,7 +1016,7 @@ msgid "" "next experiment." msgstr "架构改变了要调查的问题,也改变了用来验证的编译器和运行时。但助手依然能沿着问题找到结果,再用结果指导下一次实验。" -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1028,7 +1028,7 @@ msgstr "" "比如从游戏过程切换到结局:哪些状态需要跨越这个边界?哪个程序负责它们?我们可以对照 DOS 原版调查。只要证据和检查可用,助手就能像研究 Windows" " 游戏一样推进这个问题。" -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1036,7 +1036,7 @@ msgid "" "defined the problem; the workflow still gave us a way to solve it." msgstr "这就是 TH04 对这篇文章的意义。大幅的平台变化,并没有迫使我们重新发明一套工作方式。架构决定了问题,工作流程仍然提供了解决问题的方法。" -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1050,7 +1050,7 @@ msgstr "做 64 位移植时,我们可以把新实现与 DOS 上已经还原的 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1058,19 +1058,19 @@ msgid "" "testing{ph1} · {ph2}64-bit port{ph3}. The port remains in development." msgstr "截至 2026 年 10 月 10 日:{ph0}DOS 重建与手工测试{ph1} · {ph2}64 位移植{ph3}。移植仍在开发中。" -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "从精确还原到可读源码" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1082,7 +1082,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1094,7 +1094,7 @@ msgid "" msgstr "" "这就需要{ph0}语义重建{ph1}。一个还原字段可能仍然只有偏移作为标识。我们追踪游戏如何使用它,直到能解释其作用,再依据证据赋予合适的名称和类型。推理过程和源码一起保存,后来的人就能知道这个解释从何而来。" -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1106,14 +1106,14 @@ msgstr "" "移植时,语义尤其重要。绝对地址能告诉我数据在旧程序中的位置,却很难帮助 64 " "位实现决定哪个对象应当持有这份状态。要正确迁移行为,就得还原旧内存访问背后的关系。" -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "我现在采用这样的顺序:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1126,7 +1126,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1139,7 +1139,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1152,7 +1152,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1163,7 +1163,7 @@ msgstr "{ph0}再做现代平台移植。{ph1}把已经确定的行为带入新 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1175,7 +1175,7 @@ msgid "" msgstr "" "第二阶段的可玩构建,在第三阶段成为{ph0}第二套校验基准{ph1}。第一套检查修改后的源码是否仍然复现原版相关代码和数据;第二套检查重建程序是否能构建,并在实际测试的路径上保持正确行为。" -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1185,7 +1185,7 @@ msgid "" msgstr "" "它们能发现不同类型的错误。类型修改可能改变生成的指令。状态归属的修改,可能让游戏的两部分各自使用一份状态。保留两套检查,助手就能在继续重构之前,针对具体的失败展开调查。" -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1199,7 +1199,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1214,7 +1214,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1222,12 +1222,12 @@ msgid "" "makes the recovered knowledge usable.{ph1} A port can then build on both." msgstr "{ph0}精确重建提供基准,语义重建让还原的知识可用。{ph1}移植随后建立在两者之上。" -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "为什么这是工业化的转变" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1237,7 +1237,7 @@ msgid "" msgstr "" "这些项目改变了我投入注意力的地方。助手能自主推进大部分调查之后,改善它们的工作环境,就成了我最值得做的事情之一。一项工具的改进,可以帮助之后所有需要它的函数。" -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1247,7 +1247,7 @@ msgid "" msgstr "" "自主性在这里很重要。下一步该怎么做,常常在实验失败后才清楚。助手需要足够的自由,沿着结果探索意料之外的方向。如果每一步都要等我指定,大部分工作仍然绑在我的注意力上。" -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1257,7 +1257,7 @@ msgid "" msgstr "" "我预期助手会提出错误假设。关键是我们能否验证它们,并从结果中学习。失败的检查应该帮助它理解错误,再次尝试。我仍要判断:累积的证据是否足以支持某个项目里程碑。" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1269,7 +1269,7 @@ msgstr "" "REA " "让助手能够使用分析工具。调查某函数的调用方时,它可以直接继续检查那个调用方。重建项目提供编译器和自己的对照检查。助手用它们验证提出的源码,看看解释在哪些地方成立。" -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1284,7 +1284,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1300,7 +1300,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1312,7 +1312,7 @@ msgid "" msgstr "" "{ph0}我们正处于这场工业化转变的早期。{ph1}许多基础设施还不成熟。助手推进工作的速度,可能超过原有检查的承受能力,所以流程也要一起发展。共享工具出现缺陷时,要修好它,并重查受影响的结果。下一个项目才能继承更可靠的工具。" -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1324,7 +1324,7 @@ msgstr "任何一段对话都有实际的长度限制。大型重建完成之前 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1335,7 +1335,7 @@ msgstr "" "{ph0}Touhou Reconstruction " "Factory{ph1}正是为此而建立。它提供一种共用方式,让项目把检查和经验传递下去。一个游戏的工作,可以改善另一个游戏的起点。" -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1343,12 +1343,12 @@ msgid "" "changes how much the next person—or the next agent—can get done." msgstr "这就是工业化比喻对我的意义:经验开始进入别人也能使用的工具。改善工具,就能改变下一个人或下一个助手能完成多少工作。" -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "现在值得尝试的项目" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1356,7 +1356,7 @@ msgid "" "than I could realistically give it. Many projects would stay ideas." msgstr "速度的意义在于,它改变了是否开始一个项目的决定。某个游戏也许很值得逆向,却需要我投入远超现实所能承受的精力。很多项目因此一直停留在想法里。" -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1370,7 +1370,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1378,7 +1378,7 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "现在看到一个陌生的程序,我会问:{ph0}要提供什么样的访问途径、反馈和知识积累,编程助手才能可靠地处理它?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1386,12 +1386,12 @@ msgid "" " how far that can take us." msgstr "这个问题让我重新考虑那些原本会搁置的项目。每一个都能改善我们处理下一个项目的方式。我想继续探索这条路能把我们带多远。" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "项目里程碑与来源" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1423,7 +1423,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1456,7 +1456,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1473,7 +1473,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1496,7 +1496,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1517,7 +1517,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1531,7 +1531,7 @@ msgstr "{ph0}语义重建:{ph1}{ph2}TH08 可读性指南{ph3}和{ph4}Factory #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1550,7 +1550,7 @@ msgstr "{ph0}工业史:{ph1}{ph2}英国科学博物馆集团的蒸汽机示功 #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1562,7 +1562,7 @@ msgstr "{ph0}方法:{ph1}Factory 的{ph2}助手自主性{ph3}与{ph4}跨游戏 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1580,27 +1580,27 @@ msgid "" "AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04." msgstr "N0zoM1z0 回顾从手工逆向到编程助手参与的东方游戏重建,以及经验如何在 TH08、TH095 和 PC-98 TH04 之间积累。" -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "在项目之间传递经验" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "在本页" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "东方游戏重建随笔" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -1609,18 +1609,18 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "检查→重建→更改" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "重建恐龙的速度规则。" @@ -1629,7 +1629,7 @@ msgstr "重建恐龙的速度规则。" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1640,15 +1640,15 @@ msgstr "" "要复现游戏的加速效果,先找到控制速度的规则。{ph0}REA " "返回了正在运行的脚本;{ph1}我们用它的规则做了这个{ph2}速度可调{ph3}的小游戏。" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "在本页" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1656,7 +1656,7 @@ msgstr "{ph0}播放和改变速度{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1664,7 +1664,7 @@ msgstr "{ph0}读取恢复的规则{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1672,18 +1672,18 @@ msgstr "{ph0}检查重建{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "游玩并调整速度" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1691,54 +1691,54 @@ msgid "" "start at 6 and gradually accelerate again." msgstr "点击「开始」,然后跳过仙人掌。拖动速度滑块可以试玩更慢或更快的游戏;也可以切换为固定速度。选择还原后的规则,从 6 开始再次逐步加速。" -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "试玩重建版" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "开始" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "跳跃 ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "重新开始" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "速度" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "使用恢复的加速规则" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 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:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "阅读 REA 返回的脚本" @@ -1746,7 +1746,7 @@ msgstr "阅读 REA 返回的脚本" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1760,7 +1760,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1768,18 +1768,18 @@ msgid "" "update without a collision." msgstr "设置为 {ph0}、{ph1} 和 {ph2}。在没有发生碰撞的那次更新中,游戏会执行这个分支。" -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "在新游戏中使用相同的规则" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "复制" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -1794,18 +1794,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "检查重建" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -1813,41 +1813,41 @@ msgid "" "recovered rule." msgstr "我们在禁用障碍物和自动调度的情况下调用了原游戏的更新函数。把这些记录下来的速度与重放还原出的规则所得的结果做个比较。" -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "更新次数" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "原版游戏" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "重建规则" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "运行速度检查" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 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:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "自己试试分析" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -1856,14 +1856,14 @@ msgstr "{ph0}配置 REA{ph1},配合你的编程助手使用。" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -1878,7 +1878,7 @@ msgstr "为你的编程助手提供页面URL和本地调试端点,然后复制 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -1890,7 +1890,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的编程助手" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1903,7 +1903,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1916,7 +1916,7 @@ msgstr "要求跟进: {ph0}\"跳跃高度在哪里计算? 在新版本中添 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1939,64 +1939,64 @@ msgid "" "speed and play." msgstr "用 REA 读出恐龙游戏的速度规则,重建它,然后修改速度并试玩。" -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "恐龙速度重建" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 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:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "复制重建速度规则" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "复制恐龙分析提示" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}首页{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA 常见问题。" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "安装、更新、分析和故障排查。" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "主题" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2004,7 +2004,7 @@ msgstr "{ph0}安装与更新{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2012,7 +2012,7 @@ msgstr "{ph0}分析{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2020,31 +2020,31 @@ msgstr "{ph0}故障排除{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}数据与分享{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "安装与更新" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "如何安装 REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "终端 · 配置编程助手" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "复制" @@ -2052,7 +2052,7 @@ msgstr "复制" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2064,12 +2064,12 @@ msgstr "" "setup 会注册 REA 的 MCP " "连接,并安装配套的调查技能。完成后重启助手,再提供目标路径和问题。{ph0}查看安装指南{ph1},了解前置条件和第一次分析的步骤。" -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "哪些编程助手能使用 REA?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2083,31 +2083,31 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}连接编程助手{ph1}。" -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "如何更新 REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " "npm:" msgstr "REA 更新很频繁,也会持续修复 bug。如果你通过 npm 安装了 CLI:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "终端 · 已安装的 CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2115,14 +2115,14 @@ msgid "" "agent through {ph0}, run:" msgstr "更新后,按照输出中的命令刷新配置。如果之前通过 {ph0} 配置助手,运行:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "终端 · 刷新助手配置" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2133,14 +2133,14 @@ msgstr "" "检查变更后,重启编程助手。REA 的连接配置指定了包版本,重新运行 setup 才会让助手使用新版本。临时执行 CLI 命令时,在 {ph0} " "后面接具体命令即可。" -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "只从 skills.sh 安装技能就够了吗?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2150,24 +2150,24 @@ msgid "" msgstr "" "技能告诉助手如何开展调查。还需要运行 {ph0}REA setup{ph1},连接 MCP 服务器并安装配套技能。随后重启助手,它才能调用工具。" -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "分析" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "REA 可以分析什么?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "根据手里的软件类型选择:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2177,7 +2177,7 @@ msgstr "{ph0}原生可执行文件和库{ph1}:函数、汇编、伪代码和 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2187,7 +2187,7 @@ msgstr "{ph0}JavaScript 和 Electron 应用{ph1}:模块、导入、IPC 和源 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2195,7 +2195,7 @@ msgstr "{ph0}浏览器页面{ph1}:脚本、请求和运行时观察。" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2204,12 +2204,12 @@ msgid "" "investigations." msgstr "REA 也提供托管程序集、Android APK、固件和打包资源的分析流程。{ph0}查看案例{ph1},了解完整的调查过程。" -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "需要 Hopper、Ghidra 或 IDA 吗?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2218,7 +2218,7 @@ msgstr "深度原生分析需要其中一个工具。静态 JavaScript 和 .NET #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2229,26 +2229,26 @@ msgstr "" "连接已有的 Ghidra 或 IDA 安装,或让 setup 检测 Hopper " "并提出安装计划。可用的分析后端取决于你的系统和分析目标。{ph0}配置原生分析{ph1}。" -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "不用编程助手,也能用 REA 吗?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 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:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "终端 · 静态应用分析" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2257,13 +2257,13 @@ msgid "" msgstr "把路径换成解包后的应用目录或 ASAR 文件。{ph0}查看 CLI 的安装方式{ph1}。" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2275,7 +2275,7 @@ msgstr "原生程序分析返回汇编、伪代码、函数调用、引用和相 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2285,12 +2285,12 @@ msgid "" msgstr "" "助手根据这些结果解释行为,或编写实现并测试。{ph0}DX-Ball 计算规则{ph1}和{ph2}CTF flag 检查器{ph3}展示了这个过程。" -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "应该向助手提什么问题?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2305,7 +2305,7 @@ msgstr "提供一个本地目标,以及一个想调查的行为。比如 JavaS #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2313,7 +2313,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的编程助手" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2321,18 +2321,18 @@ msgid "" "native, Electron and browser examples." msgstr "把路径换成自己的目标。{ph0}指南{ph1}提供了原生、Electron 和浏览器示例的 prompt。" -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "故障排除" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "为什么助手看不到 REA 工具?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2340,7 +2340,7 @@ msgid "" " {ph0}; for Codex:" msgstr "安装后重启或重新连接助手。用 {ph0} 检查 REA 注册情况。以 Codex 为例:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "终端 · 检查一个客户端" @@ -2348,7 +2348,7 @@ msgstr "终端 · 检查一个客户端" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2356,14 +2356,14 @@ msgid "" "shows a missing or stale registration, run setup for that client:" msgstr "把 {ph0} 换成客户端 ID,例如 {ph1} 或 {ph2}。如果报告显示注册缺失或过期,为这个客户端运行 setup:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "终端 · 修复一个客户端的配置" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2372,14 +2372,14 @@ msgid "" "diagnostics{ph1}." msgstr "确认计划后重启客户端。如果注册正常但工具仍未出现,检查客户端的 MCP 连接错误。{ph0}查看更多配置诊断{ph1}。" -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "需要先启动 Hopper 吗?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2390,14 +2390,14 @@ msgstr "" "REA 会在操作需要时启动 Hopper。在 macOS " "上,首次使用时先完成演示模式或许可证激活的选择,再进行无人值守分析。{ph0}查看原生分析配置{ph1}。" -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "遇到 bug 怎么办?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2407,7 +2407,7 @@ msgstr "先{ph0}更新 REA{ph1},重启助手,再试一次相同任务。新 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2417,24 +2417,24 @@ msgid "" msgstr "" "如果问题仍然存在,{ph0}提交 issue{ph1},附上 REA 版本、操作系统、目标类型、复现步骤和错误输出。涉及原生分析时,也写明分析后端。" -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "数据与分享" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA 会上传我的应用吗?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 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:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "如何分享案例或参与贡献?" @@ -2443,7 +2443,7 @@ msgstr "如何分享案例或参与贡献?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2457,7 +2457,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2477,91 +2477,91 @@ msgid "" "coding agents, troubleshooting and sharing examples." msgstr "解答 REA 的常见问题:安装、更新、分析工具、编程助手、故障排查和分享案例。" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "在本页" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "REA 常见问题" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "复制REA设置命令" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "复制REA更新命令" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "复制编程助手设置刷新命令" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "复制REA CLI分析命令" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "复制示例分析提示" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "复制客户端诊断命令" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "复制作用域设置命令" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}首页{ph1} / 第一次调查" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 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 检查一个小应用,追踪 Export notes 按钮,再亲自验证一个细节。" -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "在这个练习中" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2569,7 +2569,7 @@ msgstr "{ph0}1. 配置{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2577,7 +2577,7 @@ msgstr "{ph0}2. 询问导出过程{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2585,7 +2585,7 @@ msgstr "{ph0}3. 追踪回答{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2593,13 +2593,13 @@ msgstr "{ph0}4. 检查预测{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. 把助手连接到 REA" @@ -2612,44 +2612,44 @@ msgstr "1. 把助手连接到 REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "复制" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "或者在终端中运行此命令:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 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:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. 问清 CSV 写到哪里" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2660,7 +2660,7 @@ msgstr "" "示例是一个包含六个文件的 Electron 应用,带有{ph0}Export notes(导出笔记){ph1}按钮。助手无需安装或启动 Electron" " 就能检查代码。" -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2670,14 +2670,14 @@ msgstr "助手会下载并解压文件,再把目录交给 REA 检查。" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下载示例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2685,12 +2685,12 @@ msgid "" " path to the {ph0} folder and the same export question." msgstr "如果助手不能下载文件,你也可以手动解压。把 {ph0} 文件夹的路径交给它,再问同一个导出问题。" -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. 从回答追踪到代码" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "寻找带文件和行号的简短解释:" @@ -2699,7 +2699,7 @@ msgstr "寻找带文件和行号的简短解释:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2708,19 +2708,19 @@ msgid "" "{ph3}." msgstr "按钮发送 {ph0} 消息。主进程把笔记转换为 CSV,并将 {ph1} 写到用户的下载文件夹。列名为 {ph2} 和 {ph3}。" -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "从按钮到文件写入" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 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:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -2729,54 +2729,54 @@ msgstr "文件路径、格式化函数和写入调用都在这个处理函数中 #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. 检查预测" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 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:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "自己检查一下" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. 再问一个问题" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "在同一段对话中继续提问:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -2787,7 +2787,7 @@ msgstr "也可以提供自己的应用,询问其中一个按钮、文件或行 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2799,7 +2799,7 @@ msgstr "{ph0}Notion 如何复制文本和 HTML{ph1}{ph2}追踪打包 Electron #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2811,7 +2811,7 @@ msgstr "{ph0}DX-Ball 如何计算声像定位{ph1}{ph2}阅读原始指令,以 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2831,116 +2831,116 @@ msgid "" "go, and check the CSV formatter with a sample title." msgstr "用小型 Notes 应用尝试 REA。配置助手,询问导出的笔记写到哪里,再用一个示例标题验证 CSV 格式化函数。" -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "在本页" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "你的第一次REA调查" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "复制REA安装提示" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "复制安装命令" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "复制笔记调查提示" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "复制CSV检查提示" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "复制格式化程序检查命令" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}首页{ph1} / 开始使用" -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "安装与配置 REA。" -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "打开终端,检查版本:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "终端机" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "复制" #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2950,7 +2950,7 @@ msgstr "如果提示接受条款,输入 Y。关闭 PowerShell,再次打开 #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2960,7 +2960,7 @@ msgstr "发行版自带的 {ph0} 包经常早于 22.23.4。如果使用它,请 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2970,7 +2970,7 @@ msgstr "更喜欢普通安装包?从 {ph0}nodejs.org{ph1} 下载 LTS 版。" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -2978,7 +2978,7 @@ msgstr "{ph0}使用CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -2992,18 +2992,18 @@ msgstr "{ph0}寻求帮助{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "也可以自己运行 setup" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "怎么打开终端?" @@ -3012,7 +3012,7 @@ msgstr "怎么打开终端?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3026,7 +3026,7 @@ msgstr "{ph0}Windows:{ph1}打开开始菜单,输入 {ph2}PowerShell{ph3}, #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3038,7 +3038,7 @@ msgstr "{ph0}macOS:{ph1}按 {ph2} {ph3},输入 {ph4}Terminal{ph5},按 Ente #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3051,7 +3051,7 @@ msgstr "{ph0}Linux:{ph1}多数桌面环境可以按 {ph2} {ph3} {ph4}。" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3060,7 +3060,7 @@ msgid "" msgstr "" "用 {ph0} {ph1} 粘贴命令(macOS:{ph2} {ph3};Linux 终端:{ph4} {ph5} {ph6}),再按 Enter。" -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3068,7 +3068,7 @@ msgid "" "configuration. It asks before applying the changes." msgstr "选择客户端,并查看配置计划。REA 会添加 MCP 连接和配套调查技能,同时备份已有配置。确认后才会应用更改。" -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "如何重启客户端?" @@ -3077,7 +3077,7 @@ msgstr "如何重启客户端?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3091,7 +3091,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3099,7 +3099,7 @@ msgid "" " and start it again." msgstr "{ph0}终端助手{ph1}(Claude Code、Codex、Gemini CLI):退出当前会话,再启动一次。" -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "怎么取得文件夹的完整路径?" @@ -3108,7 +3108,7 @@ msgstr "怎么取得文件夹的完整路径?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3122,7 +3122,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3132,7 +3132,7 @@ msgstr "{ph0}macOS:{ph1}在 Finder 中右键文件夹,按住 Option,选择 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3140,27 +3140,27 @@ msgid "" "appears." msgstr "{ph0}所有系统:{ph1}把文件夹拖进终端窗口,也能显示路径。" -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 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:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "静态应用分析" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3168,13 +3168,13 @@ msgid "" "Windows, a path such as {ph1} works here." msgstr "把路径换成解包后的应用目录或 {ph0} 文件。Windows 上也可以使用 {ph1} 这样的路径。" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "在哪里找到应用的 .asar 文件?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3185,7 +3185,7 @@ msgstr "Electron 应用通常把它放在 {ph0} 文件夹中:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3197,7 +3197,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3208,20 +3208,20 @@ msgstr "{ph0}macOS:{ph1}{ph2}(右键应用,选择{ph3}“显示包内容 #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1}通常位于 {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3230,36 +3230,36 @@ msgid "" msgstr "结果会识别应用,展示模块之间的关系,并给出源码位置。REA 无法解析的关系会在结果中注明。" #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "如果希望在 shell 中直接使用 {ph0} 命令:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "安装CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "连接已有的 Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "在 Windows 上连接 Ghidra" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3269,31 +3269,31 @@ msgstr "" "Windows x64 提供实验性的只读支持:分析固定本地 NTFS 驱动器上的原生 x86、x64 PE 应用和 DLL。使用已有的 Ghidra " "12.1.x 和 64 位 JDK 21 或更新版本:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." msgstr "把两个路径换成安装位置,再查看 setup 计划。" -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 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 "在 macOS 或 Linux 上连接 Hopper。运行上面的 setup 命令,它会检测已有安装,或提出安装计划供你确认。" -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "寻求帮助" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "助手看不到 REA 工具时" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3301,22 +3301,22 @@ msgid "" "{ph0}; for Codex:" msgstr "配置后重启或重新连接客户端。用 {ph0} 检查 REA 连接。以 Codex 为例:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "分析后端出现问题时" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "检查正在使用的分析后端。以 Ghidra 为例:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "检查一个分析后端" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "报告会列出失败的检查和建议的下一步。" @@ -3325,7 +3325,7 @@ msgstr "报告会列出失败的检查和建议的下一步。" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3336,7 +3336,7 @@ msgstr "{ph0}REA FAQ{ph1}{ph2}关于更新、助手和分析的常见解答。{p #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3348,7 +3348,7 @@ msgstr "{ph0}选择调查指南{ph1}{ph2}二进制、Electron 应用和浏览器 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3360,7 +3360,7 @@ msgstr "{ph0}GitHub issues{ph1}{ph2}附上命令与诊断结果,反馈问题 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3380,68 +3380,68 @@ msgid "" "app from the terminal. Setup, first questions and native provider guides." msgstr "把 REA 连接到编程助手,或用终端检查本地 JavaScript、Electron 应用。包含配置、首次提问和原生分析后端指南。" -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "复制Node.js版本检查" -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "复制Node.js的Windows安装命令" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "复制 Homebrew Node.js 安装命令" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "复制Linux的fnm安装命令" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 msgctxt "page:get-started/index.html" msgid "Copy Node.js 24 commands for Linux" msgstr "复制 Linux 的 Node.js 24 命令" -#: website/public/get-started/index.html:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "在本页" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA入门指南" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "复制REA安装提示" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "复制JavaScript分析命令" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "复制CLI安装命令" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "复制提供者诊断命令" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -3450,34 +3450,34 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}首页{ph1} / {ph2}指南{ph3} /浏览器观察" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 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:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3485,7 +3485,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3493,7 +3493,7 @@ msgstr "{ph0}打开浏览器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3501,7 +3501,7 @@ msgstr "{ph0}向编程助手提问{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3509,13 +3509,13 @@ msgstr "{ph0}使用 CLI 捕获{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "单击导出时会发生什么?" @@ -3525,7 +3525,7 @@ msgstr "单击导出时会发生什么?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3536,7 +3536,7 @@ msgstr "" "{ph0}Notes 浏览器示例{ph1}有一个{ph2}Export notes(导出笔记){ph3}按钮。点击后加载 {ph4},把两条笔记格式化为" " CSV,再开始下载。" -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "从点击到CSV下载" @@ -3547,7 +3547,7 @@ msgstr "从点击到CSV下载" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3561,7 +3561,7 @@ msgstr "{ph0}01 · 你{ph1}{ph2}点击 Export notes{ph3}{ph4}在捕获进行时 #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3578,7 +3578,7 @@ msgstr "" #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3587,52 +3587,52 @@ msgid "" msgstr "" "{ph0}03 · 编程助手{ph1}{ph2}读取导出代码{ph3}{ph4}把观察到的请求与 {ph6} 中的 {ph5} 关联起来。{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "在点击 Export notes 之前开始捕获。" -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "以远程调试方式启动 Chrome" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " "debugging port. On Linux:" msgstr "用独立的浏览器配置和本地调试端口打开在线 Notes 示例。Linux 上:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "启动示例浏览器" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "复制" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 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:295 +#: website/public/guides/browser/index.html:301 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:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "让编程助手观察一个操作" @@ -3645,7 +3645,7 @@ msgstr "让编程助手观察一个操作" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3657,7 +3657,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的编程助手" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3668,7 +3668,7 @@ msgstr "" "是怎样生成的?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3676,7 +3676,7 @@ msgid "" "URL. Let it start the capture before you click." msgstr "示例 prompt。把调试地址 {ph0} 和页面网址交给助手。等它开始捕获,再点击按钮。" -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -3684,23 +3684,23 @@ msgid "" "export." msgstr "你的编程助手会发现页面目标,启动观察窗口并读取采集到的证据。随后它可以查看导出功能背后的脚本。" -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "或从终端捕获" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "查找页面的目标ID:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "查找页面" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3708,14 +3708,14 @@ msgid "" "ID, then run:" msgstr "选择网址为 Notes 示例的目标,把下面的 {ph0} 换成目标 ID,再运行:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "捕捉接下来的十秒" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3723,7 +3723,7 @@ msgid "" " in that browser. The result arrives after the observation window ends." msgstr "让命令连接几秒钟,再在浏览器中点击{ph0}Export notes{ph1}。观察时间窗口结束后会返回结果。" -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -3731,49 +3731,49 @@ msgid "" "this capture." msgstr "捕获的结果包括所选页面、该窗口期间的网络活动以及 JSON 响应的结构。更早的请求不在本次捕获范围内。" -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "读取请求和导出脚本" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "在本地笔记示例中用REA4.1.0记录" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "捕获的事实" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "值" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "请求" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "响应" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "请求发起者" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · 脚本" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "响应结构" @@ -3781,19 +3781,19 @@ msgstr "响应结构" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "阅读加载的脚本" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3802,7 +3802,7 @@ msgid "" msgstr "请求指出了数据来源,REA 记录的请求发起方是 {ph0}。读取捕获的脚本源码,看看它如何使用数据:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3812,7 +3812,7 @@ msgid "" msgstr "下载文件是在页面中用 JSON 响应构建的。CSV 格式化这一步来自脚本;网络捕获可以证明这次点击请求了 {ph0}。" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3822,7 +3822,7 @@ msgstr "找出请求 {ph0} 的脚本。它如何转义包含逗号或引号的 #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3842,161 +3842,161 @@ msgid "" "inspect the request and follow the export script." msgstr "用 REA 观察一次笔记导出:选择浏览器页面,捕获一次点击,检查请求并追踪导出脚本。" -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "在本页" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "浏览器观察" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "复制启动示例浏览器" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "复制示例提示" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "复制查找页面" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "复制捕获接下来的十秒钟" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "复制读取加载的脚本" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}首页{ph1} /指南" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA 分析指南。" -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 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:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "第一次调查" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "设置REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "连接你的编程助手,或在终端中使用 REA。" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "开始使用 REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "原生二进制" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "还原声像定位的计算" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 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:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "原生分析指南" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "追踪 CSV 导出" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " "process. Use REA to connect the API, IPC channel and file writer." msgstr "一个小 Notes 应用把同一个功能分散在渲染进程、预加载脚本和主进程三处。用 REA 把 API、IPC 通道和写文件的代码关联起来。" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript&Electron指南" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "浏览器行为" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "观察点击" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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 "打开一个可以正常运行的 Notes 示例,捕获导出请求,并找到把响应转为下载文件的代码。" -#: website/public/guides/index.html:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "浏览器观察指南" @@ -4013,12 +4013,12 @@ msgid "" "CSV export and a browser request." msgstr "通过简短示例学习 REA:一次原生计算、Electron CSV 导出和浏览器请求。" -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -4027,34 +4027,34 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " "file writer." msgstr "沿着一次按钮点击,从页面 API 出发,经过 Electron IPC,直到 CSV 文件写入函数。" -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4062,7 +4062,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4070,7 +4070,7 @@ msgstr "{ph0}问问你的编程助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4078,7 +4078,7 @@ msgstr "{ph0}跟踪导出代码{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4086,20 +4086,20 @@ msgstr "{ph0}试试这个例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"Export notes(导出笔记)\"去哪儿了?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4110,7 +4110,7 @@ msgstr "" "本指南使用一个小型 Electron 应用。点击{ph0}Export notes(导出笔记){ph1}后,页面调用 " "API,通过进程边界进入主进程,最后写出 CSV。这个行为分散在几个文件中。" -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "跨 Electron 进程的 CSV 导出" @@ -4124,7 +4124,7 @@ msgstr "跨 Electron 进程的 CSV 导出" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4140,7 +4140,7 @@ msgstr "" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4156,7 +4156,7 @@ msgstr "" #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4167,13 +4167,13 @@ msgstr "{ph0}主进程{ph1}{ph2}导出处理函数{ph3}{ph4}{ph5}处理这个通 #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4181,14 +4181,14 @@ msgid "" "executes." msgstr "REA 将字面 IPC 调用与处理函数配对,并识别出被暴露的 API。调用路径由代码推断;运行时捕获可以检查实际执行的内容。" -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "询问有关 CSV 导出" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4204,14 +4204,14 @@ msgstr "{ph0}将你的编程助手连接到 REA{ph1},并把应用目录或 ASA #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "复制" @@ -4222,7 +4222,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4231,7 +4231,7 @@ msgid "" msgstr "{ph0}›{ph1}{ph2}用 REA 找出这个应用导出笔记时发生了什么。CSV 文件在哪里创建?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4239,7 +4239,7 @@ msgid "" "{ph0}." msgstr "示例提示。 包括应用程序文件夹的绝对路径或 {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4247,17 +4247,17 @@ msgid "" " the export feature." msgstr "REA 读取应用文件,构建入口点、模块和进程边界的映射。你的编程助手用这张图把调查范围收窄到导出功能。" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "跟踪导出代码" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "页面调用一个小API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4266,7 +4266,7 @@ msgstr "页面知道方法名称。 实现存在于预加载中,预加载将 #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4276,7 +4276,7 @@ msgstr "REA 记录 {ph0} 和直接写在代码中的通道名 {ph1},并将调 #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4284,14 +4284,14 @@ msgid "" "and the main process writes {ph1} into the user's Downloads folder." msgstr "读取处理函数就能回答最初的问题:{ph0} 格式化笔记,主进程将 {ph1} 写入用户的下载文件夹。" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 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:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "自己分析例子" @@ -4299,25 +4299,25 @@ msgstr "自己分析例子" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下载示例ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "浏览六个源文件" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "静态应用分析" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4325,7 +4325,7 @@ msgid "" "channel and one matching handler in {ph0}. Source locations are in {ph1}." msgstr "将路径替换为你解压缩的文件夹。 你应该在以下位置找到一个IPC通道和一个匹配的处理程序 {ph0}. 源位置在 {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4334,13 +4334,13 @@ msgid "" msgstr "" "对于你自己的应用,用相同的命令加上它的目录或 ASAR 路径。编程助手可以用 REA 的功能追踪工具追踪字面字符串、API 名称或 IPC 通道。" -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "检查CSV写入器" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4348,7 +4348,7 @@ msgid "" "happens if writing the file fails?" msgstr "追踪 {ph0} 到处理函数。哪些输入传给 CSV 写入函数?如果写入失败,会怎样?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4360,7 +4360,7 @@ msgstr "使用源位置检查这些详细信息。 计算的通道名称和不 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4372,7 +4372,7 @@ msgstr "{ph0}追踪 Notion 剪贴板桥接代码{ph1}{ph2}把同样的方法用 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4384,7 +4384,7 @@ msgstr "{ph0}观察浏览器导出{ph1}{ph2}捕获一次真实点击,看看它 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4406,32 +4406,32 @@ msgid "" msgstr "" "用 REA 沿着渲染器 API、preload 和 IPC 处理函数追踪 Notes 的 CSV 导出。包含可下载的示例文件和经过验证的分析结果。" -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "在本页" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "复制示例提示" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "复制静态应用程序分析" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -4440,34 +4440,34 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}首页{ph1} / {ph2}指南{ph3} /原生分析" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 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:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4475,7 +4475,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4483,7 +4483,7 @@ msgstr "{ph0}问问你的编程助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4491,7 +4491,7 @@ msgstr "{ph0}阅读REA结果{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4499,18 +4499,18 @@ msgstr "{ph0}恢复和检查{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "计算左右声像" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4519,7 +4519,7 @@ msgstr "在 DX-Ball 中,砖块碰撞提供一个水平屏幕坐标,声音代 #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4528,7 +4528,7 @@ msgid "" " way to investigate the missing arithmetic." msgstr "起始函数 {ph0} 的反编译结果很短:一次对 {ph1} 的调用。REA 还会返回它的指令和调用者,让编程助手得以调查缺失的算术运算。" -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "这些术语还不熟悉?" @@ -4537,7 +4537,7 @@ msgstr "这些术语还不熟悉?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4547,7 +4547,7 @@ msgstr "{ph0}指令:{ph1}处理器执行的步骤,以 {ph2}、{ph3} 这样 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4557,7 +4557,7 @@ msgstr "{ph0}反编译器结果/伪代码:{ph1} 分析工具试图将指令转 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4568,7 +4568,7 @@ msgstr "{ph0}调用方:{ph1}调用当前函数的函数,可以看出传入 #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4578,7 +4578,7 @@ msgstr "{ph0}地址:{ph1} 程序中的一个位置,用十六进制编写,如 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4586,7 +4586,7 @@ msgid "" "and decoded." msgstr "{ph0}常量:{ph1} 存储在程序中的固定数值,以原始字节读取并解码。" -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "三件证据,一个计算" @@ -4597,7 +4597,7 @@ msgstr "三件证据,一个计算" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4612,7 +4612,7 @@ msgstr "{ph0}01 · 指令{ph1}{ph2}整数输入{ph3}{ph4}从栈读取一个值 #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4628,7 +4628,7 @@ msgstr "{ph0}02 · 调用方{ph1}{ph2}屏幕坐标{ph3}{ph4}砖块碰撞处理 #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4637,14 +4637,14 @@ msgid "" msgstr "" "{ph0}03 · 数据字节{ph1}{ph2}数值常量{ph3}{ph4}引用的字节解码为 {ph5}、{ph6} 和一个缩放系数。{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 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:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "询问行为" @@ -4653,7 +4653,7 @@ msgstr "询问行为" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4661,19 +4661,19 @@ msgid "" "analysis tool{ph3}, provide the local executable and a question:" msgstr "{ph0}将 REA 连接到助手{ph1}并{ph2}配置原生分析工具{ph3}后,提供本地可执行文件和一个问题:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "我应该使用哪种分析工具?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA需要其中一个来阅读原生程序:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4686,7 +4686,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4698,7 +4698,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4707,7 +4707,7 @@ msgstr "{ph0}IDA{ph1}(Windows):适用于已完成 MCP 注册的现有 IDA #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -4721,14 +4721,14 @@ msgstr "具体步骤参见{ph0}配置原生分析{ph1}。" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "复制" @@ -4739,7 +4739,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4748,7 +4748,7 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}用 REA 找出 DX-Ball 如何计算声音的左右位置。解释计算过程,并展示代码。{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -4758,7 +4758,7 @@ msgstr "" "示例提示词。把本地 DX-Ball 1.07 可执行文件的路径交给编程助手。REA 不附带 DX-" "Ball,请使用你自己的副本;也可以就你手上的另一个小型 Windows 程序问同样的问题。" -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "如何获取文件的完整路径?" @@ -4767,7 +4767,7 @@ msgstr "如何获取文件的完整路径?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4781,7 +4781,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4791,7 +4791,7 @@ msgstr "{ph0} macOS :{ph1} 在Finder中,右键单击文件,按住选项并 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4799,30 +4799,30 @@ msgid "" "appears." msgstr "{ph0}任何系统:{ph1} 将文件拖到终端窗口中并显示其路径。" -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "阅读REA结果" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "阅读输入" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 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:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "跟随调用方" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4830,24 +4830,24 @@ msgid "" "tile coordinate by 30; adding {ph0} (20) gives the brick's screen position." msgstr "REA 找到砖块碰撞处理函数。它先把砖块横坐标乘以 30,再加上 {ph0}(20),得到砖块的屏幕位置。" -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "读取引用的常量" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 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:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "写入并检查恢复的函数" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -4855,7 +4855,7 @@ msgid "" "the center of the stereo field." msgstr "比例为 1.0 时,屏幕坐标 0、320 和 640 在整数转换前映射到 -500、0 和 500。这一计算把屏幕正中放在立体声场的中心。" -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -4865,20 +4865,20 @@ msgstr "编程助手使用REA的发现来编写C.单独的检查将3,205个输 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "用你自己的二进制文件试试" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4889,20 +4889,20 @@ msgid "" msgstr "" "{ph0}连接原生分析提供程序{ph1},然后给编程助手一个本地可执行文件或库,并指定要调查的功能。有用的起始问题包括“如何解析这个文件?”或“哪个函数处理这个菜单操作?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 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:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "函数分析" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4914,7 +4914,7 @@ msgstr "" "替换目标路径和 {ph0} 使用你自己的函数名称或地址。 每个 CLI 调用导入并分析二进制文件,然后关闭其会话。 你的编程助手 MCP " "查询在该会话打开时重用导入的二进制文件。" -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -4933,50 +4933,50 @@ msgid "" "caller, read constants and check reconstructed C." msgstr "用 REA 还原一段原生计算:检查指令、追踪调用者、读取常量并检查重建的 C。" -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "在本页" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "机器代码程序分析" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "复制示例提示" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "复制函数分析" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "跳转到内容" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "在本页" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "安装与配置 REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -4984,7 +4984,7 @@ msgstr "{ph0}安装与配置 REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -4992,7 +4992,7 @@ msgstr "{ph0}恐龙游戏{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5000,7 +5000,7 @@ msgstr "{ph0}计算器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5008,25 +5008,25 @@ msgstr "{ph0}试试REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}深入了解{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "和编程助手一起做逆向工程" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "弄清楚{ph0}软件如何工作。" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "把这段话复制给编程助手:" @@ -5039,33 +5039,33 @@ msgstr "把这段话复制给编程助手:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "复制" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "也可以在终端运行:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "确认安装计划后,重启编程助手。" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5073,7 +5073,7 @@ msgstr "{ph0}01{ph1} 分析分支" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5081,7 +5081,7 @@ msgstr "{ph0}02{ph1} 追踪函数调用" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5091,20 +5091,20 @@ msgstr "{ph0}03{ph1} 还原计算规则" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 · 走哪个分支?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5112,29 +5112,29 @@ msgid "" "these?”" msgstr "“{ph0}0x5b? 0x5c?{ph1} 两处跳转到同一个目标。它们对应哪些运算符?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "查找命令 ID,再标明分支含义。" -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "除÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "乘×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · 这些函数调用做什么?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5142,24 +5142,24 @@ msgid "" "value goes in?{ph1}”" msgstr "“100 很明确,但函数调用只有地址。{ph0}哪个负责除法?传进去的是哪个值?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "检查辅助函数,追踪存储的数值。" -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "除法" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · 规则是什么?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5167,19 +5167,19 @@ msgid "" "after +.”" msgstr "“这个分支乘上了另一个输入。所以在 + 之后,{ph0}10% 表示 200 的 10%{ph1}。”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "确定操作数的含义,并检查两条运算路径。" -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "专家思考过程示意" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5195,87 +5195,87 @@ msgstr "{ph0}你需要读懂指令、追踪调用,再还原计算过程。{ph1 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "示例回答 · 根据分析结果" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA 提供" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "处理函数的指令、反编译代码和调用关系。" -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "编程助手解释" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "走哪个分支、怎样计算,以及如何重新实现。" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "示例 01 · Chrome 小恐龙游戏" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "为什么恐龙变得更快?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "开始" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "跳跃 ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "重新开始" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "速度" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "使用还原的加速规则" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "原版规则:速度从 6 开始,逐渐增加到 13。" -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "拖动滑块,选择自己的速度。按空格键或“跳跃”越过仙人掌。" @@ -5286,7 +5286,7 @@ msgstr "拖动滑块,选择自己的速度。按空格键或“跳跃”越过 #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5299,18 +5299,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "分析目标:{ph0}wayou 基于 Chromium 制作的浏览器版本{ph1}。" -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "打开速度实验室 →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "各部分负责什么" @@ -5321,7 +5321,7 @@ msgstr "各部分负责什么" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5335,7 +5335,7 @@ msgstr "{ph0}01 · REA{ph1}{ph2}读取正在运行的游戏脚本{ph3}{ph4}把 #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5349,7 +5349,7 @@ msgstr "{ph0}02 · 编程助手{ph1}{ph2}重建规则,加入控制{ph3}{ph4} #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5357,13 +5357,13 @@ msgid "" "acceleration, then choose your own pace.{ph5}" msgstr "{ph0}03 · 你{ph1}{ph2}调整速度,亲自试玩{ph3}{ph4}先体验原版加速,再选择自己的节奏。{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "查看脚本、验证过程和分析步骤" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5371,7 +5371,7 @@ msgid "" "and returned the loaded {ph0}, including its source and digest." msgstr "REA 通过本地调试连接检查 HTTP 浏览器版本,返回了已加载的 {ph0},包含源码和摘要。" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5383,7 +5383,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5396,7 +5396,7 @@ msgstr "新小游戏保留了这条速度规则。绘图、跳跃和碰撞代码 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5411,41 +5411,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "{ph0}分析的速度代码{ph1} · {ph2}Chromium Authors · BSD 许可证{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "示例 02 · Windows 计算器" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "重新实现计算器的 % 按钮。" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "重置" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "200的10%=20. 则200+20=220。" -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "根据实际分析得到的百分比规则制作的交互示例。" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5457,7 +5457,7 @@ msgstr "对于这个例子, {ph0} 和 {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5468,7 +5468,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 检查 Windows 计算器的 % 按钮。还原 + 和 × " "后的规则,再做一个同时采用这两条规则的小计算器。{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "在 + 之后" @@ -5476,13 +5476,13 @@ msgstr "在 + 之后" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "在 × 之后" @@ -5490,13 +5490,13 @@ msgstr "在 × 之后" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "从已安装的应用,到能运行的 % 按钮" @@ -5508,7 +5508,7 @@ msgstr "从已安装的应用,到能运行的 % 按钮" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5524,7 +5524,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5535,12 +5535,12 @@ msgstr "" "{ph0}03 · 编程助手解释{ph1}{ph2}解释并复现规则{ph3}{ph4}对照 Microsoft 的源码核实分支,再试试上面的 + 和 " "×。{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "查看实际代码和验证方式" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -5560,7 +5560,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5568,80 +5568,80 @@ msgid "" "{ph4}Native setup guide{ph5}" msgstr "{ph0}百分比实现{ph1} · {ph2}Microsoft 测试用例{ph3} · {ph4}原生分析配置指南{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "第一次调查" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "用一个小应用试试 REA。" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " "input." msgstr "下载 Notes 示例,追踪 CSV 导出,再修改一个输入来验证。" -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "跟着引导示例做一遍" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "原生二进制" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" " and libraries." msgstr "检查可执行文件和库中的函数、字符串、引用和函数调用关系。" -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "原生分析指南" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "从应用目录或 ASAR 文件中分析模块、路由、IPC 和原生依赖。" -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "应用分析流程" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "浏览器与运行时活动" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " "across runs." msgstr "记录指定的浏览器或进程活动,再比较不同运行的结果。" -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "浏览器观察指南" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "有什么问题吗?" @@ -5658,54 +5658,54 @@ msgid "" " Follow clear guides and try interactive examples with REA." msgstr "和编程助手一起分析应用、二进制文件和浏览器行为。跟着清晰的指南,体验 REA 的交互示例。" -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "复制REA安装提示" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "复制安装命令" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "跟随手工完成的计算器分析" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "复制计算器百分比问题" -#: website/public/index.html:653 +#: website/public/index.html:659 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:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "复制恐龙分析提示" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "选择计算" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "复制计算器分析提示" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -5714,43 +5714,43 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "案例研究 · Aegis Authenticator" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "身份验证器如何{ph0}生成登录代码?" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " "in an Android APK, then rebuild it with a clock you can control." msgstr "六位验证码每 30 秒变化一次。用 REA 在 Android APK 中找出计算方法,再重建一个可调节时钟的演示。" -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android · 正式发布 APK ·6.9MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "在GitHub上查看Aegis" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "从 APK 还原可复现的验证码" @@ -5762,7 +5762,7 @@ msgstr "从 APK 还原可复现的验证码" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5780,7 +5780,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5798,7 +5798,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5808,14 +5808,14 @@ msgid "" msgstr "" "{ph0}03 · 重建并验证{ph1}{ph2}调整时钟,查看验证码。{ph3}{ph4}新的浏览器演示复现规则,再用公开对照用例检查。{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "在本案例研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5823,7 +5823,7 @@ msgstr "{ph0}问问你的编程助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -5831,7 +5831,7 @@ msgstr "{ph0}试试代码生成器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -5839,7 +5839,7 @@ msgstr "{ph0}用REA查找代码 {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -5847,7 +5847,7 @@ msgstr "{ph0}读懂这段计算{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -5855,20 +5855,20 @@ msgstr "{ph0}检查重建{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "问问你的编程助手" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5884,14 +5884,14 @@ msgstr "该应用程序显示更改的登录代码。 我们想找到 {ph0}是 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "复制" @@ -5899,7 +5899,7 @@ msgstr "复制" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5908,7 +5908,7 @@ msgid "" msgstr "" "这是用于下载的 APK 的示例 prompt,需要先配置 REA 的 Android 分析后端。{ph0}获取 APK 和分析配置 ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "试试代码生成器" @@ -5916,7 +5916,7 @@ msgstr "试试代码生成器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5925,33 +5925,33 @@ msgid "" "produce the same code." msgstr "应用把时间划分为{ph0}每块 30 秒{ph1},再结合时间块编号和账户密钥生成验证码。同样的密钥和时间块,会得到同样的验证码。" -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "将时钟移动60秒" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "时间" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "秒数" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "我们的可调节示例时钟" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30秒区块" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "时间块" @@ -5960,35 +5960,35 @@ msgstr "时间块" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "生成的验证码" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "帐户密钥+区块→六位数字" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "示例时间,以秒为单位" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59秒" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60秒" @@ -5997,7 +5997,7 @@ msgstr "60秒" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6007,7 +6007,7 @@ msgstr "在59秒: {ph0}287082.{ph1} 在60秒: {ph2}359152.{ph3} 在一个块内 #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6015,26 +6015,26 @@ msgid "" "the calculation recovered from the APK." msgstr "密钥是固定的,公开的 {ph0}RFC6238测试数据{ph1}. 该演示实现了从APK恢复的计算。" -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 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:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "用REA查找代码" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "将APK缩小到三个类" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6042,7 +6042,7 @@ msgid "" "and imported accounts. TOTP means a time-based one-time password." msgstr "{ph0} 是计算逻辑的候选方法;另外两个涉及进度条和导入的账户。TOTP 指基于时间的一次性密码。" -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "将生成器连接到应用程序的显示器" @@ -6050,7 +6050,7 @@ msgstr "将生成器连接到应用程序的显示器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6059,7 +6059,7 @@ msgid "" msgstr "REA 找到接受时间戳的方法重载,并定位基础方法的调用方。继续检查 {ph0},就能看到显示逻辑调用了 {ph1}。" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6067,7 +6067,7 @@ msgid "" "{ph0} prefix." msgstr "请求显示缩短的输入路径。 结果类名省略常用 {ph0} 前缀。" -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "阅读计算" @@ -6075,7 +6075,7 @@ msgstr "阅读计算" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6087,7 +6087,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6095,7 +6095,7 @@ msgstr "{ph0}01{ph1} 时间块" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6103,7 +6103,7 @@ msgstr "{ph0}02{ph1} 键+块" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6111,7 +6111,7 @@ msgstr "{ph0}03{ph1} 六位数" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6122,7 +6122,7 @@ msgstr "{ph0}时间选择块。{ph1} 秒30到59都给块1。 在60秒时,块 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6134,7 +6134,7 @@ msgstr "{ph0}密钥也会影响结果。{ph1} 生成函数把账户密钥和时 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6147,7 +6147,7 @@ msgstr "{ph0}保留六位数字。{ph1} 取除以 1,000,000 的余数,位数 #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6155,7 +6155,7 @@ msgid "" " 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:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "验证码生成函数内部" @@ -6165,7 +6165,7 @@ msgstr "验证码生成函数内部" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6175,7 +6175,7 @@ msgstr "" "发布的 APK 将 {ph0} 放在 {ph1} 中。REA 从 {ph2} 追踪调用,并返回这个函数体;原始源码把辅助函数命名为 {ph3}。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6190,13 +6190,13 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "检查重建" @@ -6204,7 +6204,7 @@ msgstr "检查重建" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6215,22 +6215,22 @@ msgstr "" "我们将选定的 REA 返回的 Java 方法放进小型测试程序。它们的输出与独立重建的实现一致,共验证 {ph0}133 " "个测试用例{ph1},包括时间块边界和以零开头的验证码。" -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "示例时间" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "六位验证码" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30秒" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109秒" @@ -6238,7 +6238,7 @@ msgstr "1,111,111,109秒" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6246,31 +6246,31 @@ msgid "" "{ph0}RFC 6238{ph1}. Check the browser implementation against them:" msgstr "生成函数还符合 {ph0}RFC 6238{ph1} 中发布的六个 SHA-1 对照用例。可以用这些用例检查浏览器实现:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "运行对照检查" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "阅读演示的计算" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 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:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " "was inspected statically." msgstr "验证运行提取的Java方法和新的演示。 对Android APK进行了静态检查。" -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "亲自检查APK" @@ -6278,7 +6278,7 @@ msgstr "亲自检查APK" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6290,7 +6290,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6298,19 +6298,19 @@ msgid "" "{ph1}. This case used JDK 21." msgstr "Android 分析需要完整的 JDK 17 或更高版本。通过设置 {ph0} 或 {ph1} 来选择它。本案例使用了 JDK 21。" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS/Linux" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6320,7 +6320,7 @@ msgstr "助手可以通过 REA CLI 继续使用上方的 prompt。如果使用 M #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6328,7 +6328,7 @@ msgid "" "different time interval?{ph1}" msgstr "下一个问题: {ph0}当帐户使用八位数字或不同的时间间隔时会发生什么?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "资料来源" @@ -6344,7 +6344,7 @@ msgstr "资料来源" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6356,14 +6356,14 @@ msgstr "{ph0}官方Aegis3.4.3发布{ph1} · {ph2}匹配源提交{ph3} · {ph4}GP #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}RFC6238参考案例{ph1} · {ph2}演示测试数据{ph3}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6384,37 +6384,37 @@ msgid "" "calculation and try a reconstruction with an adjustable clock." msgstr "用 REA 检查 Aegis Android APK,还原六位登录验证码的计算,再试玩可调时钟的重建演示。" -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "在本页" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK案例研究" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "复制Aegis示例提示" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "按照登录代码计算" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "复制APK检查命令" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -6423,26 +6423,26 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "案例研究 · DownUnderCTF 2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "在一个 CTF 二进制文件中{ph0}找到 flag。" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6450,17 +6450,17 @@ msgid "" "find an input that makes the original program print {ph0}." msgstr "用 REA 分析这个小型 flag 检查器,把它的规则转成方程,找出能让原程序打印 {ph0} 的输入。" -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "掩码方格 flag 检查器 · 简单 · Linux x86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "查看原始挑战" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "从二进制文件到经过验证的答案" @@ -6471,7 +6471,7 @@ msgstr "从二进制文件到经过验证的答案" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6487,7 +6487,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6504,7 +6504,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6515,20 +6515,20 @@ msgstr "" "{ph0}03 · 求解并运行{ph1}{ph2}还原出的 flag → 正确!{ph3}{ph4}一个 Python 脚本解出这些方程。REA " "捕获到原程序接受该结果。{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 msgctxt "page:showcase/ctf/index.html" msgid "" "The challenge is by joseph, published in DownUnderCTF's official repository." msgstr "该挑战由 joseph 编写,发布在 DownUnderCTF 的官方仓库中。" -#: website/public/showcase/ctf/index.html:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "在本个案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -6536,7 +6536,7 @@ msgstr "{ph0}查找检查代码{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -6544,7 +6544,7 @@ msgstr "{ph0}读一个掩码{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -6552,7 +6552,7 @@ msgstr "{ph0}从汇编到可读代码{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -6560,7 +6560,7 @@ msgstr "{ph0}解方程{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -6568,20 +6568,20 @@ msgstr "{ph0}检查答案{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}你自己试试吧{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "查找检查代码" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6598,17 +6598,17 @@ msgstr "" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "复制" @@ -6619,7 +6619,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6630,33 +6630,33 @@ msgstr "" "{ph0}›{ph1}{ph2}使用REA分析ms_flag_checker并找到标志。 " "解释检查是如何工作的,然后用原始程序验证答案。{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 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:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "从输入提示追踪到对应函数" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 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:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "阅读检查器及其两个辅助函数" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6667,19 +6667,19 @@ msgstr "" "第一个循环复制36个字符代码。 检查循环解码掩码,对所选代码求和,并将结果与存储的数字进行比较。 它以 {ph0} 字节为步长跨越 {ph1} " "字节,得到 26 个掩码。" -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 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:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "一次检查揭示一个字符" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -6689,13 +6689,13 @@ msgstr "检查器把输入排列在 6×6 网格中。掩码决定哪些单元格 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "从二进制文件中读取掩码及其目标" @@ -6704,7 +6704,7 @@ msgstr "从二进制文件中读取掩码及其目标" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6715,12 +6715,12 @@ msgstr "" "指令 {ph0} 会把掩码字节按有符号值读取。这就是 {ph1} 表示 −21 的原因。目标是一个小端整数。这些字节一起告诉编程助手 " "{ph2},因此该字符是 {ph3}。" -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "从指令到可读的检查" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -6729,7 +6729,7 @@ msgstr "选择一个步骤,把求和辅助函数及其调用方对应到 C 中 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -6737,7 +6737,7 @@ msgstr "{ph0}01{ph1} 开始" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -6745,7 +6745,7 @@ msgstr "{ph0}02{ph1} 选择" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -6753,7 +6753,7 @@ msgstr "{ph0}03{ph1} 添加" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -6761,18 +6761,18 @@ msgstr "{ph0}04{ph1} 前进" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} 比较" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA · 选取的原始指令" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "可读的 C · 单次检查摘要" @@ -6780,7 +6780,7 @@ msgstr "可读的 C · 单次检查摘要" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -6788,7 +6788,7 @@ msgstr "{ph0}01 · 从零开始。{ph1} {ph2} 保存当前的累加和。" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6798,7 +6798,7 @@ msgstr "{ph0}02 · 检查掩码单元格。{ph1} 零值表示跳过该字符, #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6808,7 +6808,7 @@ msgstr "{ph0}03 · 添加字符代码。{ph1} 输入在相同偏移量处的整 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6820,7 +6820,7 @@ msgstr "{ph0}04 · 移动到下一个单元格。{ph1} 原始循环每处理一 #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6828,19 +6828,19 @@ msgid "" "in {ph2}. A mismatch jumps to {ph3}." msgstr "{ph0}05 · 与存储的目标值比较。{ph1} 调用方在 {ph2} 中得到总和,不匹配则跳转到 {ph3}。" -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 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:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "求解26个方程" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -6850,13 +6850,13 @@ msgstr "" "大多数掩码会选中多个单元格。例如,第一次检查累加 16 个字符编码,要求总和等于 1441。这些相互重叠的选择构成方程,一个小型 Python " "脚本即可一并求解。" -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python · 求解器摘录" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6868,19 +6868,19 @@ msgstr "" "Z3 是一个求解器,可以找到满足这些方程的值。此节选使用提取出的检查,并假定 flag 以 {ph0} " "为前缀,包含字母、数字、下划线和大括号。完整下载包含全部 26 个掩码及其目标值。" -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "下载完整的求解器" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "用原始程序检查答案" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6891,59 +6891,59 @@ msgstr "" "REA 的进程捕获记录了原始可执行文件接受已求得 flag 的过程。把某个被选中的字符从 {ph0} 改成 {ph1},第一个总和就从 1441 变成 " "1440,程序随之拒绝该输入。" -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "输入" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "观察到的输出" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "退出代码" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "求解器得到的 flag" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "改动一个字符" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "显示恢复的标志和捕获的输出" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA · 原始程序输出" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "复制标志" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 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 "解出该二进制文件的 flag 后核对:还原出的值也与主办方公布的题目元数据中的 flag 一致。" -#: website/public/showcase/ctf/index.html:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "来源、目标身份和分析详细信息" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -6953,7 +6953,7 @@ msgstr "" "2026 年 10 月 8 日完成了全新分析,并做了两次进程捕获,使用 REA 4.1.0 与 Ghidra 12.1.4,运行于 Linux " "x64。该二进制文件是一个去符号的 x86-64 ELF,大小为 15,248 字节。" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -6973,7 +6973,7 @@ msgstr "在阅读主办方的源码或解答之前,先用 REA 检查了字符 #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6981,25 +6981,25 @@ msgid "" "flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "{ph0}与主办方来源比较{ph1} · {ph2}挑战元数据和标志{ph3} · {ph4} REA证据说明{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "你自己试试吧" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 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:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "终端 · 解决和运行" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7008,7 +7008,7 @@ msgid "" "x86-64." msgstr "脚本打印候选标志;将其粘贴到程序的提示符处。 解决需要Python和 {ph0}. 运行原始可执行文件需要Linux x86-64。" -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "配置 REA 以配合你的编程助手" @@ -7026,27 +7026,27 @@ msgid "" "original program." msgstr "用 REA 破解 DownUnderCTF 的掩码方格 flag 检查器。找出检查函数,提取掩码,并把还原出的 flag 与原始程序比对。" -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "在本页" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTF flag 检查器案例研究" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "复制CTF示例提示" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTF掩码方程;在较小的屏幕上水平滚动" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7054,42 +7054,42 @@ msgid "" "means the character is 7." msgstr "第七个掩码跳过21个单元格,选择位置21,然后跳过14。 只有该单元格贡献总和。 它所需的字符代码是55,这意味着字符是7。" -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "遵循CTF检查" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "复制 CTF 汇编代码" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "复制可读CTF检查" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "复制CTF解算器摘录" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "复制恢复标志" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "复制CTF求解器命令" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -7098,35 +7098,35 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "案例 · DX-Ball 1.07" # Reviewed for clear terminology and preserved evidence. #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "从可执行文件{ph0}重建 DX-Ball。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" " agent inspect the original, one function at a time." msgstr "目标是为这款 1996 年的 Windows 游戏重建一份可维护的 C 代码。REA 帮助编程助手逐个分析原版函数。" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 · C · REA" @@ -7134,7 +7134,7 @@ msgstr "Windows i386 · C · REA" # Reviewed for clear terminology and preserved evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7145,7 +7145,7 @@ msgstr "" "从可执行文件中的一个函数,到经过验证的 C 代码:REA 提供指令、调用方和读取的数据,重建项目据此实现并测试函数。{ph0}查看大图{ph1}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "本案例内容" @@ -7153,7 +7153,7 @@ msgstr "本案例内容" # Reviewed for clear terminology and preserved evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7161,7 +7161,7 @@ msgstr "{ph0}项目进度{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7169,7 +7169,7 @@ msgstr "{ph0}声像计算{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7177,25 +7177,25 @@ msgstr "{ph0}检查结果{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}继续工作{ph1}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "个可维护的 C 函数" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "与原始代码的比较" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "个编译后字节匹配的函数" @@ -7207,7 +7207,7 @@ msgstr "个编译后字节匹配的函数" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7216,13 +7216,13 @@ msgid "" msgstr "项目进度截至 2026 年 10 月 7 日。{ph0}进度记录{ph1} · {ph2}测试覆盖情况{ph3}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "当前进度" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7235,13 +7235,13 @@ msgstr "" " Windows 集成。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "找出声音的左右位置如何计算" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7257,17 +7257,17 @@ msgstr "砖块被击中时,它的横坐标会传给声音处理代码。这次 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "复制" @@ -7279,7 +7279,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7289,7 +7289,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 找出 DX-Ball 如何计算声音的左右位置。解释计算过程,并展示代码。{ph3}{ph4}{ph5}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7298,7 +7298,7 @@ msgid "" msgstr "把本地可执行文件交给编程助手,再使用这个示例 prompt。下面展示助手为回答问题发起的 REA 查询,以及得到的证据。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7310,7 +7310,7 @@ msgstr "助手用 REA 检查函数、追踪调用它的砖块碰撞函数,再 #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7321,13 +7321,13 @@ msgid "" msgstr "" "REA 最初返回的 {ph0} 伪代码声明了 {ph1},并调用 {ph2}。但指令中还有来自栈的输入和浮点运算。这个差异提示助手:还需要继续查。" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "最初的反编译结果" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -7335,20 +7335,20 @@ msgid "" msgstr "结果里能看到一次转换调用。继续阅读下面的指令,就能找出输入,以及传入这个调用前的计算。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "用 REA 回答三个问题" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "找回缺失的输入" # Reviewed for clear terminology and preserved evidence. #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7357,7 +7357,7 @@ msgid "" msgstr "函数结果同时提供伪代码、指令和调用方。这里的 {ph0} 显示了反编译结果中缺失的整数输入。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "追踪调用方,理解输入含义" @@ -7365,7 +7365,7 @@ msgstr "追踪调用方,理解输入含义" # Reviewed for clear terminology and preserved evidence. #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7373,26 +7373,26 @@ msgid "" "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:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "读取内存地址后面的值" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 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:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "从 REA 分析结果到 C 代码" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -7401,7 +7401,7 @@ msgstr "下面分五步展示计算。点击每一步,原始指令和对应的 #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -7409,7 +7409,7 @@ msgstr "{ph0}01{ph1} 输入" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -7417,7 +7417,7 @@ msgstr "{ph0}02{ph1} 乘以" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -7425,7 +7425,7 @@ msgstr "{ph0}03{ph1} 减去" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -7433,20 +7433,20 @@ msgstr "{ph0}04{ph1} 缩放" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} 返回" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "原始 x86 · 节选" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "重建的 C 代码" @@ -7457,7 +7457,7 @@ msgstr "重建的 C 代码" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7476,7 +7476,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7493,7 +7493,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7511,7 +7511,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7528,7 +7528,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7540,7 +7540,7 @@ msgstr "" "{ph4},再与原始 x86 函数比较,验证返回值。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -7548,24 +7548,24 @@ msgid "" "setup and cleanup." msgstr "这段汇编节选包含输入、运算和返回指令。下面的完整列表还保留了中间的存储操作,以及函数开头和结尾的处理。" -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "完整汇编与相关证据" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA结果 · 0x406400–0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "调用方传入什么" # Reviewed for clear terminology and preserved evidence. #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7573,55 +7573,55 @@ msgid "" "then pushes it before the call:" msgstr "{ph0} 处的砖块碰撞函数把格子坐标乘以 30,再加上 20,然后在调用前将结果压栈:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "读取数据确认了什么" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "地址" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "数值" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "用于" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "第一次乘法" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "减法" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} 最初" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "存储的声像缩放系数" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -7636,7 +7636,7 @@ msgstr "使用 REA 4.1.0 记录,分析目标为通过哈希确定的 DX-Ball 1 #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7644,13 +7644,13 @@ msgid "" "references{ph3}" msgstr "{ph0}重建源码{ph1} · {ph2}调查笔记与证据引用{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "验证还原的函数" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -7658,13 +7658,13 @@ msgid "" msgstr "还原的函数通过了两项检查:返回值与原版一致,编译后的字节与原始可执行文件一致。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205 个行为测试用例" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -7675,13 +7675,13 @@ msgstr "" "和 −1。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 字节完全匹配" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -7690,7 +7690,7 @@ msgid "" msgstr "C 函数使用指定的 VC4.0 工具链编译。应用经过检查的重定位,并核对引用的常量后,编译结果与原始函数的全部字节一致。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -7702,19 +7702,19 @@ msgstr "缩放系数为 1 时,计算在屏幕左边缘返回 −500,中心 #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "继续调查" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -7723,14 +7723,14 @@ msgid "" msgstr "粒子更新、爆炸队列和奖励生成也使用同样的方法:检查相关函数,还原状态与依赖,再把实现和原版比较。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 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:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "在 DX-Ball 仓库目录中" @@ -7740,7 +7740,7 @@ msgstr "在 DX-Ball 仓库目录中" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7753,7 +7753,7 @@ msgstr "{ph0}DX-Ball 仓库{ph1}{ph2}当前源码、进度和本地配置。{ph3 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7768,7 +7768,7 @@ msgstr "{ph0}REA 分析流程{ph1}{ph2}追踪这段计算,再用同样方法 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7791,14 +7791,14 @@ msgid "" msgstr "查看 DX-Ball 的重建过程:用 REA 分析二进制文件,编写可维护的 C 代码,再通过原始 x86 行为测试和编译字节匹配验证。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "DX-Ball 声像计算调查;小屏幕可横向滚动" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -7811,89 +7811,89 @@ msgstr "" "1.5625,减去 500.0,再乘以 pan_scale,最后返回整数。重建的 C 代码通过 3,205 个用例与原始 x86 函数比较,并用 " "VC4.0 编译结果匹配全部 63 字节。" -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "在本页" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball重建案例研究" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "复制示例提示" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "追踪声像计算" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "复制原始汇编摘录" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "复制声像函数" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "复制完整声像计算汇编" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "复制DX-Ball分析命令" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}首页{ph1} / 案例展示" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA 实际案例。" -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 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:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android · APK 分析" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "身份验证器如何生成登录验证码" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -7901,22 +7901,22 @@ msgid "" "changes every 30 seconds." msgstr "在其发布的APK中找到Aegis的六位数代码计算。 使用REA跟踪生成方法,然后移动演示时钟以查看代码每30秒更改一次的原因。" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "阅读Android案例研究" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF · 原生分析" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "分析 CTF flag 检查器" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -7924,22 +7924,22 @@ msgid "" "with the original program." msgstr "用 REA 检查一个简单的 DownUnderCTF 挑战。找出它的检查函数,把掩码和总和转成方程,再用原始程序验证求得的 flag。" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "阅读CTF案例研究" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "原生程序 · 重建" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball 的声像计算" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -7949,22 +7949,22 @@ msgstr "" "从 1996 年的一款 Windows 游戏中还原声像计算。REA 的指令、调用方引用和数值常量共同指向一个很小的 C 函数,并与原始行为以及全部 63" " 个已编译字节逐一核对。" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "阅读DX-Ball案例研究" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron · 功能追踪" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Notion 如何复制文本和 HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -7974,22 +7974,22 @@ msgstr "" "在 Notion 打包后的 JavaScript 中追踪一个面向页面的 API。顺着它的 IPC 包装函数追到系统剪贴板,再看一个小的 HTML " "标记如何让富内容块数据与这次复制关联起来。" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "阅读Notion案例研究" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS · 重建" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "TH04 如何把环形弹幕对准玩家" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -7998,24 +7998,24 @@ msgid "" msgstr "" "用 REA 检查原始的 16 位角度辅助函数,把其中的乘法、除法和坐标运算对应到可读的 C++ 代码,然后看看它们如何生成一个朝向玩家的环形弹幕。" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "阅读TH04案例研究" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "循序渐进指南" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 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:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "阅读指南" @@ -8034,12 +8034,12 @@ msgstr "" "跟着 REA 的调查走一遍代码、图示与演示:一个 Android 身份验证器、DX-Ball、Notion、TH04 和一个 DownUnderCTF " "flag 检查器。" -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -8048,37 +8048,37 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "案例研究 · Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " "process, to Electron's clipboard writer." msgstr "从 Notion 的页面 API 出发,经预加载脚本和主进程,一路追踪到 Electron 写入剪贴板的接口。" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 msgctxt "page:showcase/notion/index.html" msgid "Notion Desktop 7.6.1 · JavaScript · REA" msgstr "Notion Desktop 7.6.1 · JavaScript · REA" -#: website/public/showcase/notion/index.html:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Notion 桌面包中的桥接代码" @@ -8090,7 +8090,7 @@ msgstr "Notion 桌面包中的桥接代码" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8105,7 +8105,7 @@ msgstr "{ph0}01 · 面向页面的API{ph1} {ph2}{ph3}{ph4} {ph5}预加载公开 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8120,7 +8120,7 @@ msgstr "{ph0}02 · 预加载包装器{ph1} {ph2}{ph3}{ph4} {ph5}包装器发送 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8135,7 +8135,7 @@ msgstr "{ph0}03 · 主进程处理程序{ph1} {ph2}{ph3}{ph4} {ph5}接收器检 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8144,28 +8144,28 @@ msgid "" msgstr "{ph0}04 · 系统剪贴板{ph1} {ph2}{ph3}{ph4} {ph5}Electron 写入提供的文本和HTML。{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "一个通道连接双方: {ph0}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 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:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "在本个案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8173,7 +8173,7 @@ msgstr "{ph0}跟随剪贴板桥{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8181,20 +8181,20 @@ msgstr "{ph0}保留内容块的结构{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "复制操作去哪里?" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8211,17 +8211,17 @@ msgstr "页面可以调用名为 {ph0} 的方法。它在预加载脚本中的 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "复制" @@ -8232,7 +8232,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8241,20 +8241,20 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}使用REA跟踪Notion如何将文本和HTML复制到系统剪贴板。 在每个步骤显示代码。{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA查找从哪里开始阅读" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8262,14 +8262,14 @@ msgid "" " the minified bundle:" msgstr "用 REA 分析标签页的预加载脚本,可以找到暴露给页面的 API,以及发送 IPC 请求的调用。两个结果都给出了在压缩代码中的位置:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA 分析结果 → 两个源码位置" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8283,7 +8283,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8295,25 +8295,25 @@ msgstr "" "编程助手打开这些位置,在重建出的 API 中找到剪贴板成员,再读取 {ph0}。调用处传入 " "{ph1},让编程助手知道要在主进程代码中搜索哪个名称。下面四段代码展示这条调用链。" -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "四段简短代码" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 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:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "从暴露给页面的 API 开始" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8321,14 +8321,14 @@ msgid "" "how the request leaves the page's process." msgstr "此成员提供通道名称。{ph0} 的实现告诉我们请求如何离开页面进程。" -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "解析预加载的包装器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8336,14 +8336,14 @@ msgid "" "response IPC. We can now look for {ph0} on the main-process side." msgstr "返回的函数通过 Electron 的请求/响应 IPC 转发参数。接下来可以在主进程中查找 {ph0}。" -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "检查接收器是如何注册的" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8351,13 +8351,13 @@ msgid "" "receiver for that channel." msgstr "主进程使用另一个包装器。它的 {ph0} 方法为该通道注册一个 {ph1} 接收器。" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "查找写入调用及其发送方校验" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -8367,14 +8367,14 @@ msgstr "" "这就是调用的终点。处理函数检查发送方后,把收到的数据交给 Electron 的剪贴板 " "API。通道名和两个解析后的包装函数,把暴露给页面的方法连接到了这里。" -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "复制的块如何保持其结构?" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8383,83 +8383,83 @@ msgid "" msgstr "" "Notion 的网页编辑器通过 {ph0} 发送文本和 HTML。它在本地保留内容块数据,再在复制的 HTML 中放入一个 ID,将二者关联起来。" -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "HTML 关联到已保存的内容块数据" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "读取HTML ID" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "查找相同的本地ID" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "恢复Notion块数据" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " "when IDs match; a stale entry returns only text and HTML." msgstr "文本和 ID 为示意值。已记录的模块测试显示:ID 匹配时可以取回内容块数据;条目失效时只返回文本和 HTML。" -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." " Matching IDs restore the block data." msgstr "粘贴时,Notion 会查找 HTML 中的 ID,并与保存的副本比对。ID 一致即可恢复内容块数据。" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "从2026年7月13日缓存的web资产中记录的剪贴板格式。" -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "更多示例和来源" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "另一个例子:Markdown 表格" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 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:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "通过Notion的Markdown解析器的表格" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 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:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "另一条路径:脱机SQLite连接" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8472,14 +8472,14 @@ msgstr "" "工具进程。后续的语句批次和结果直接通过这个端口传输。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 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:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "资料来源及如何阅读摘录" @@ -8488,7 +8488,7 @@ msgstr "资料来源及如何阅读摘录" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8505,7 +8505,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8519,7 +8519,7 @@ msgstr "" "模块。这些资源有独立版本。保存的测试执行提取出的模块和小型测试程序;输出反映的是这些测试,没有记录桌面 UI 操作。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -8532,7 +8532,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8548,7 +8548,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8560,7 +8560,7 @@ msgstr "{ph0} JavaScript应用指南{ph1}{ph2}遵循一个小的Electron应用 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8583,52 +8583,52 @@ msgid "" msgstr "" "追踪 Notion 的剪贴板 API,经过 Electron 预加载脚本、IPC 包装函数和主进程。通过简短代码节选了解调用链,再查看富文本剪贴板格式。" -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "在本页" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron案例研究" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "复制Notion分析提示" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "复制Notion预加载摘录" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "复制 Notion 调用包装摘录" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "复制Notion处理程序包装器摘录" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "复制Notion剪贴板接收器摘录" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "粘贴时还原富剪贴板数据" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "回到顶部" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -8637,43 +8637,43 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "个案研究·东方4:莲花地故事" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "重建TH04{ph0}子弹图案。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " "the original DOS function, then follow its instructions into readable C++." msgstr "一圈弹幕从一段简短的角度计算开始。用 REA 检查原始 DOS 函数,再把指令对应到可读的 C++ 代码。" -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "查看TH04重建" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "从原始指令到经过验证的源码" @@ -8684,7 +8684,7 @@ msgstr "从原始指令到经过验证的源码" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8700,7 +8700,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8718,7 +8718,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8734,7 +8734,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8746,21 +8746,21 @@ msgstr "" "字节匹配{ph3}{ph4}已记录的编译器检查覆盖了包含这个辅助函数的弹幕生成代码。{ph5}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 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:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "在本个案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -8768,7 +8768,7 @@ msgstr "{ph0}子弹环{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -8776,7 +8776,7 @@ msgstr "{ph0}REA 返回什么{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -8784,7 +8784,7 @@ msgstr "{ph0}汇编到C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -8792,19 +8792,19 @@ msgstr "{ph0}检查源码{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}完整项目{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "环形弹幕如何瞄准玩家" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -8820,16 +8820,16 @@ msgstr "Elly 的攻击请求一个初始数量为 16 的自机狙环形弹幕。 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "复制" @@ -8840,7 +8840,7 @@ msgstr "复制" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8849,7 +8849,7 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}使用REA查找TH04如何创建一个子弹环并将其瞄准玩家。 解释计算并显示代码。{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -8858,7 +8858,7 @@ msgstr "一个示例提示,原始可执行文件和重建签出可在本地使 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8871,7 +8871,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8879,12 +8879,12 @@ msgid "" "40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "图中演示还原出的角度计算:子弹数量为 16,玩家方向为 40,模板旋转角为 0。{ph0}查看大图{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "还原源码中的发射模板" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly 的环形攻击 · 源码节选" @@ -8893,7 +8893,7 @@ msgstr "Elly 的环形攻击 · 源码节选" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8901,14 +8901,14 @@ msgid "" "{ph0}Read the attack's source{ph1}." msgstr "这几行代码在难度与性能调整之前选定弹幕图案。{ph0}阅读该攻击的源码{ph1}。" -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REA 返回什么" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8917,20 +8917,20 @@ msgid "" " result explain the pattern." msgstr "我们检查设置每颗子弹速度和角度的函数 {ph0}。REA 返回指令、伪代码和引用,其中三部分解释了这种弹幕如何生成。" -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "在阅读其代码之前检查DOS映像" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 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:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "查看环形弹幕的乘除计算" @@ -8939,7 +8939,7 @@ msgstr "查看环形弹幕的乘除计算" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8949,13 +8949,13 @@ msgid "" msgstr "" "{ph0} 保存子弹索引。移位将它乘以 256,再除以从 {ph1} 读取的数量。重建源码把这个字段命名为 {ph2}。完整指令序列见下文。" -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "找到弹幕转向玩家的那一段" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -8966,13 +8966,13 @@ msgstr "" "指令操作数显示了两个坐标差,以及一个计算方向的辅助函数。它的返回值加到相对环形角度上。源码名称让这些地址的含义更易读;REA " "则帮助助手核对地址背后的原始操作。" -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "从汇编到可读C++" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -8982,7 +8982,7 @@ msgstr "点击每一步,对照原始指令和角度计算。这份摘要展示 #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -8990,7 +8990,7 @@ msgstr "{ph0}01{ph1} 索引" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -8998,7 +8998,7 @@ msgstr "{ph0}02{ph1} 等分" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9006,7 +9006,7 @@ msgstr "{ph0}03{ph1} 瞄准" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9014,18 +9014,18 @@ msgstr "{ph0}04{ph1} 旋转" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} 存储" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA · 原始 16 位指令" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "可读 C++ · 自机狙环形弹幕摘要" @@ -9034,7 +9034,7 @@ msgstr "可读 C++ · 自机狙环形弹幕摘要" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9047,7 +9047,7 @@ msgstr "{ph0}01 · 读取子弹索引。{ph1} 栈参数加载到 {ph2}。在 16 #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9062,7 +9062,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9077,7 +9077,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9091,7 +9091,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9104,7 +9104,7 @@ msgstr "" "后回绕,与无符号字节转换一致。周围源码还会根据这个角度和速率计算速度分量。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9112,7 +9112,7 @@ msgid "" "maintained source in the linked project." msgstr "汇编节选展示自机狙环形分支、瞄准计算和最终存储。上面的 C++ 是便于阅读的摘要。下方的编译器检查针对链接项目中维护的源码。" -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "阅读维护中的环形弹幕与瞄准源码" @@ -9129,7 +9129,7 @@ msgstr "阅读维护中的环形弹幕与瞄准源码" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9137,37 +9137,37 @@ msgid "" "representation{ph5}" msgstr "{ph0}环形弹幕宏{ph1} · {ph2}瞄准与速度源码{ph3} · {ph4}角度表示{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "检查维护中的源码" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " "including this helper, with its pinned Turbo C++ 4.0J toolchain." msgstr "TH04 项目记录的检查使用指定的 Turbo C++ 4.0J 工具链,编译包含这个辅助函数的弹幕生成代码。" -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139匹配字节" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "编译的子弹生成代码与原始可执行文件的2,139字节部分相匹配。" -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "两个干净的构建" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9178,66 +9178,66 @@ msgstr "两个单独的构建产生相同的匹配字节。 记录的输入哈 #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "记录于 2026 年 10 月 3 日。{ph0}阅读编译器检查{ph1}。" -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "目标身份和分析范围" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "原始目标" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "辅助函数入口" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0}(位于 REA 的加载映像中)" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "原始文件偏移量" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0},返回 {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "已记录的代码检查" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "Notion Desktop 7.6.1 · JavaScript · REA" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9246,7 +9246,7 @@ msgstr "编译器检查覆盖完整的弹幕添加代码段,包括这个辅助 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9260,7 +9260,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9274,7 +9274,7 @@ msgstr "" "对同一原始目标的检查。游戏文件的身份由仓库清单确定,独立原始转储的来源仍未确定。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9282,13 +9282,13 @@ msgid "" "project." msgstr "图中说明的是角度计算。完整游戏的控制、时序和 PC-98 硬件行为,在重建项目中有各自的运行时检查。" -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "完整的TH04重建" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9298,7 +9298,7 @@ msgstr "项目用维护中的 C++ 和汇编构建游戏的四个 DOS 程序。 #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9310,7 +9310,7 @@ msgstr "{ph0}探索 TH04 代码仓库{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9324,7 +9324,7 @@ msgstr "{ph0}弹幕生成源码{ph1}{ph2}完整的辅助函数、其他弹幕类 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9338,7 +9338,7 @@ msgstr "{ph0}DOS构建和运行指南{ph1}{ph2}构建源代码并在项目的PC- #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9360,29 +9360,29 @@ msgid "" "player." msgstr "用 REA 检查 TH04 的原始 16 位 DOS 代码。对照汇编与还原的 C++,了解环形弹幕如何等分方向并瞄准玩家。" -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "在本页" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04子弹型案例研究" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "复制TH04示例提示" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "TH04 固定环形与自机狙环形弹幕;在小屏幕上可横向滚动" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -9393,27 +9393,27 @@ msgstr "" "两幅图展示 16 颗子弹的环。固定环从角度 0 开始。加上玩家方向 40 后,每个方向都旋转相同角度,高亮的第一颗子弹指向玩家。两者都保持 16 " "个角度单位的间距,即 22.5 度。" -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "复制 TH04 发射模板" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "跟着 TH04 自机狙环形弹幕的计算过程走一遍" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "复制TH04汇编摘录" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "复制可读瞄准环计算" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "回到顶部" @@ -9876,598 +9876,598 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "案例展示" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "博客" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "开始使用" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "指南" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "源代码" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT 许可证" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "加入社区" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "在 X 上关注我们" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA · 选定脚本源" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "源代码" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "预期格式化程序输出" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "指令" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "调用方" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "常量" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C函数" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "按钮" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "预加载API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV文件" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "你的点击" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "捕获的请求" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "导出脚本" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA 结果 · summary.ipc 摘录" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA指令摘录·0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA调用方摘录 · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA字节结果 · 解释为little-endian双精度浮点数" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "恢复C · 摘录" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "查看案例 →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "实际脚本中的设置节选" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "% 处理函数的可读摘要" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA · 原始指令节选" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "运算符 ID · Microsoft 源码" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "编程助手→ REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA →编程助手 · 选定结果" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA →编程助手·方法和调用者" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA · 选定的反编译 Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "可读摘要 · 编程助手解释" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA · generateOTP 完整函数体" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "下载Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "下载 Android 分析提供程序" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "编程助手→ REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA →编程助手 · 选定结果" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA → 编程助手 · 选定指令" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "编程助手→ REA · read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA → 编程助手 · 结果中的第七个条目" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "原始可执行文件 · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "下载原始挑战" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "下载求解器" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA结果 · 伪代码摘录" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "编程助手→ REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →编程助手·指令摘录" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA →编程助手·调用方摘录" # Reviewed for clear terminology and preserved evidence. #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA 字节结果 · 双精度浮点数解码" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "从你自己的目标开始" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "生成验证码" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "还原的规则" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "可调时钟" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "二进制" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "校验 flag 的代码" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "方程" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "正确!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "可执行文件" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA 分析结论" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "还原的 C 代码" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "验证" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "打包应用程序" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "公开API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC包装器" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "剪贴板" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "原始DOS代码" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA 指令" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "角度计算" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "环形弹幕" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "公开页面API" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "渲染器IPC调用" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "发送到系统剪贴板" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Notion本地保存" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Markdown 输入" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "结构化解析器输出 · 摘录" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "分析你自己的应用程序" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "编程助手→ REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA →编程助手 · 选定字段" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "编程助手→ REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →编程助手·指令摘录" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "同一函数的结果 · 瞄准部分摘录" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "对应的维护版 C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "环宏 · TH04分支,摘录" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "角度和速度 · 源摘录" @@ -10499,7 +10499,7 @@ msgstr "译文正在更新,这一页暂时显示英文。" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10514,7 +10514,7 @@ msgstr "{ph0}›{ph1}{ph2}用 REA 分析 {ph3},解释它如何导出数据。 #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10534,7 +10534,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10553,7 +10553,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -10571,7 +10571,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10583,14 +10583,14 @@ msgstr "" "REA,并连接到这个编程助手。先展示安装计划,等我确认后再执行,然后验证安装结果。{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "还原结果 · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10599,7 +10599,7 @@ msgid "" msgstr "准备好 {ph0} 和 npm 后,运行 setup,选择编程助手,再确认拟进行的更改。" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -10608,7 +10608,7 @@ msgstr "提供的示例 · {ph0} 和 npm · 编程助手" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10625,7 +10625,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -10639,7 +10639,7 @@ msgstr "{ph0}页面 · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}调用 {ph6}。{ph7} #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10656,7 +10656,7 @@ msgstr "{ph0}桥接 · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}向主进程发送命名消 #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10666,7 +10666,7 @@ msgstr "" "{ph0}处理函数 · {ph1}{ph2}{ph3}写入 {ph4}{ph5}{ph6}调用 {ph7} 中的格式化函数,再写入文件。{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -10681,7 +10681,7 @@ msgstr "{ph0} · 第 8–12 行" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10693,7 +10693,7 @@ msgstr "" "格式化函数验证。展示预测和实际输出。{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10703,15 +10703,17 @@ msgstr "标题保留在一个带引号的字段里,每个引号都写成两个 #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." -msgstr "需要 {ph0} 22(22.23.4+)、24(24.22.1+)或 26+ (>=26.12.1)。npm 会随 {ph1} 一起安装。" +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"需要 {ph0} 22(22.23.4+)、24(24.22.1+)或 26+ (>=26.12.1)。npm 会随 {ph1} 一起安装。" #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -10719,19 +10721,19 @@ msgstr "还没安装 {ph0},或不确定?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"如果 {ph0} 显示 v22.23.4+、v24.22.1+ 或 v26.12.1+,就可以继续。如果版本更旧,或显示“无法识别”/“command not " -"found”,先安装 {ph1} 24 LTS:" +"如果 {ph0} 显示 v22.23.4+、v24.22.1+ 或 v26.12.1+,就可以继续。如果版本更旧,或显示“无法识别”/“command " +"not found”,先安装 {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -10745,7 +10747,7 @@ msgstr "{ph0} · 示例源摘录" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -10754,9 +10756,9 @@ msgid "" msgstr "{ph0}打开示例{ph1} · {ph2}下载 {ph3}{ph4} · {ph5}下载 {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -10764,7 +10766,7 @@ msgstr "{ph0} · 示例来源" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -10776,7 +10778,7 @@ msgstr "下载示例并解压。压缩包内含完整的 {ph0} 文件夹。用 { #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10791,7 +10793,7 @@ msgstr "第一次使用,还没安装 {ph0} 或编程助手?{ph1}跟着安装 #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10801,7 +10803,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 检查 Windows 计算器。为什么 {ph3} 会得到 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -10815,7 +10817,7 @@ msgstr "REA · 已加载 {ph0} · 选定行" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10833,7 +10835,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -10845,28 +10847,28 @@ msgstr "" "秒变化一次,再做一个可以调整时间的小演示。{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} · API 成员" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} · IPC 辅助函数" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "main/{ph0} · 处理器辅助函数" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -10885,7 +10887,7 @@ msgstr "切换到深色模式" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -10898,30 +10900,30 @@ msgstr "" "HAR 1.2,即可离线获取捕获 Evidence 交给 REA;也可以连接 Everywhere 的 MCP 服务器,让编程助手检查已捕获的流量。" #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "专用模型{ph0}随笔" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "逆向工程需要更大的模型吗?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " "and learning from compiler feedback." msgstr "从 Touhou 重建的经验,探讨通用模型、专用模型,以及如何从编译器反馈中学习。" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "跳转到内容" @@ -10930,37 +10932,37 @@ msgstr "跳转到内容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}首页{ph1} / {ph2}博客{ph3} / 模型与逆向工程" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "随笔" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "逆向工程需要更大的模型吗?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "要点" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10970,7 +10972,7 @@ msgstr "{ph0}模型能力会影响编程助手能提出哪些假设。{ph1} 后 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10980,7 +10982,7 @@ msgstr "{ph0}熟悉的编译器为专用模型提供了具体的学习对象。{ #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10990,7 +10992,7 @@ msgstr "{ph0}也要给代码仓库里的知识一个公平的对照。{ph1} 较 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11000,7 +11002,7 @@ msgstr "{ph0}训练模型选择下一个有价值的实验,同时检验它使 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11008,14 +11010,14 @@ msgid "" " result I want from the whole agent." msgstr "{ph0}结合时间和成本,评估通过验证的重建成果。{ph1} 这是我希望从整个编程助手工作流中获得的结果。" -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "在本文中" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11023,7 +11025,7 @@ msgstr "{ph0}更强的模型改变了什么{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11031,7 +11033,7 @@ msgstr "{ph0}为什么考虑专用模型?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11039,7 +11041,7 @@ msgstr "{ph0}这些经验应该存在哪里?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11047,7 +11049,7 @@ msgstr "{ph0}学习选择下一个有价值的实验{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11055,7 +11057,7 @@ msgstr "{ph0}逆向工程与强化学习{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11063,7 +11065,7 @@ msgstr "{ph0}当校验基准出错时{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11071,18 +11073,18 @@ msgstr "{ph0}值得做的对照实验{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}这意味着怎样的编程助手?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "更强的模型改变了什么" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11094,7 +11096,7 @@ msgstr "" "从 2026 年 8 " "月开始,我一直在探索:如果给编程助手访问程序的能力,以及验证自身工作的手段,它能独立完成多少逆向工作?我的经验主要来自游戏重建,尤其是东方系列。随着我更换模型,代码仓库记录了每次工作还原出的内容。" -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11104,12 +11106,12 @@ msgid "" msgstr "" "这些工作很大一部分追求精确重建:用固定版本的历史工具链编译我们维护的源码,检查它能否复现目标函数。当后来的模型解决了早期工作卡住的问题,我们可以从源码变化中看出,是什么促成了这次进展。" -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "临时值必须同时存活" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11128,7 +11130,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11140,7 +11142,7 @@ msgstr "" "{ph0}GPT-6-Sol 的一次工作记录{ph1}表明,尝试几种常见的源码写法后,差异仍未消除。后来,{ph2}GPT-6.1-Sol " "重新研究这个问题{ph3},提出了一个有价值的假设:关键可能在于这些临时值的生命周期。" -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11154,7 +11156,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11165,7 +11167,7 @@ msgid "" msgstr "" "其中一个结果仍然与稍后用于碰撞检查的值共享存储。给那个值单独的生命周期后,最后一处重叠也消失了。经过几次有针对性的实验,{ph0}一次干净的重新构建确认,整个函数都已匹配{ph1}。" -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11173,7 +11175,7 @@ msgid "" " it refine that hypothesis into a source arrangement that matched." msgstr "我感兴趣的是,发现与验证如何共同推进工作。生命周期的假设给编程助手指明了新方向;编译器的反馈又帮助它逐步调整源码,直到找到匹配的写法。" -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "换一种控制流结构" @@ -11182,7 +11184,7 @@ msgstr "换一种控制流结构" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11202,7 +11204,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11217,7 +11219,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11229,7 +11231,7 @@ msgstr "" "{ph0}换一种表达方式,打开了更有价值的搜索空间。{ph1} " "这两个例子让我认真看待通用模型的能力:编程助手可能花很长时间尝试局部变化,才找到一种更好的整体写法。" -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -11240,7 +11242,7 @@ msgid "" msgstr "" "不过,后来的工作也继承了之前的源码和失败记录。这些积累本身就是优势的一部分。历史记录让我们可以检查发现及其验证过程;要区分模型能力和继承经验各自带来的帮助,还需要对照实验。" -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -11251,12 +11253,12 @@ msgid "" msgstr "" "这正是我觉得有趣的地方。有些进展来自新的表达方式,剩下的大量工作则是在熟悉的编译器上试验不同写法。其中有多少需要广泛的推理能力?又有多少可以通过反复接触这个编译器和这些代码来学会?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "为什么专用模型可能做得很好?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -11268,7 +11270,7 @@ msgstr "" "东方系列给了我们一个具体的理由,去期待经验积累能发挥作用。大量游戏代码出自同一个作者 " "ZUN,因此,把反复出现的编程习惯作为初始假设是合理的。代码仓库也提供了实际例子:相似的循环和辅助函数组织方式,曾为其他游戏的重建提供假设。" -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -11284,7 +11286,7 @@ msgstr "把编译器也考虑进去,这些源码模式就更加具体了。在 #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11298,14 +11300,14 @@ msgstr "" "为它安排的存储位置{ph1}。只移动声明并不能解决布局问题,但先前重建的一个背景函数揭示了会影响编译器选择的命名模式。这为{ph2}重建 " "{ph3}{ph4}提供了更有希望的假设。" -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" " without adding storage. The full function then matched." msgstr "把这个模式用于表示文件大小的变量,不增加额外存储就得到了所需布局。随后,整个函数实现了匹配。" -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -11313,7 +11315,7 @@ msgid "" "cases and learn which source variations are worth testing first." msgstr "这类细节非常具体,通用模型第一次接触时未必知道。而针对这个编译器训练的专用模型,可以接触许多类似案例,学会哪些源码变化值得优先尝试。" -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -11328,7 +11330,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11343,14 +11345,14 @@ msgstr "" "但这些模式必须保留适用的上下文。TH08 使用的 Visual C++ 版本早于 TH095 和 TH09。TH04 用的是另一种 DOS " "时代的编译器,其{ph0}玩家逻辑重建{ph1}需要不同的假设,既涉及源码写法,也涉及编译后的代码如何链接成可执行文件。同一作者为我们提供了先验,具体目标则告诉我们它是否适用。区分这些情况,也是专用模型需要学会的事。" -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "这些经验应该存在哪里?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11362,7 +11364,7 @@ msgid "" msgstr "" "在决定通过训练让模型学会这些模式之前,我会先看看代码仓库里已有的知识。在{ph0}上一篇文章{ph1}中,我写过:仓库正在成为项目的工作记忆。这里保存着对编译器的认识,也保存着相关源码和失败实验,让这些经验有据可查。" -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -11376,7 +11378,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11392,7 +11394,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11405,7 +11407,7 @@ msgstr "" "{ph0}“模型不知道这个编译器特性”和“模型不会利用它”,是两个不同的问题。{ph1} " "检索可能解决前者,但把知识变成有价值的候选源码,仍然需要能力。如果候选方案失败了,模型还得判断这次结果对下一次尝试意味着什么。知道相关模式,只是这个过程的起点。" -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -11415,12 +11417,12 @@ msgid "" msgstr "" "所以,在任何对照实验中,我都会加入一个具备良好检索能力的小型通用模型。给它相同的经验库,才能看清训练究竟增加了什么:更好的候选方案、更好的反馈后决策,还是两者都有?" -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "学习选择下一个有价值的实验" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -11430,7 +11432,7 @@ msgid "" msgstr "" "反馈之后如何决策,是我最想研究的部分。在编程助手驱动的重建中,模型提出解释,再用程序来验证。即使候选方案失败了,结果也可能缩小剩余的可能性,提示下一步更值得尝试什么。" -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -11439,67 +11441,67 @@ msgid "" "needed to change." msgstr "再看前面的临时结果例子。最终源码展示了成功的写法,但得到它的过程包含更多信息。下面的每次实验,都帮助我们确定了还有什么需要改变。" -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "实验" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "结果告诉了我们什么" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "尝试另一种复制结果的方式" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "复制代码改变了,但函数仍有差异。" -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "直接使用返回值" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "复制方式与原版一致,但临时存储布局仍有差异。" -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "让临时结果同时保持有效" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " "collision checks." msgstr "它们得到了各自的存储空间,但其中一个仍与稍后用于碰撞检查的值重叠。" -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "让碰撞检查的值拥有独立存储" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "一次干净的重建确认了完全匹配。" -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " "by what they taught us." msgstr "上面攻击函数重建中精选的几个实验,按它们带给我们的启发分类。" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -11511,7 +11513,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11523,7 +11525,7 @@ msgstr "" "{ph0}我希望模型学会如何利用反馈。{ph1} " "结果没有变化,可能意味着该重新考虑这个改动;差异发生变化,则可能指向另一个原因。当局部修改不再提供有效信息时,编程助手应该可以重新考虑源码的整体表达,或者回头检查证据。" -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -11533,12 +11535,12 @@ msgid "" msgstr "" "学会这些选择,需要自主性。有时,更有价值的下一步是检查另一个调用者,而不是再修改一次源码并编译。如果强制按照固定顺序改写,就会剥夺这种选择,也失去一部分我们希望模型学会的行为。" -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "为什么逆向工程值得用来探索强化学习" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -11548,7 +11550,7 @@ msgid "" msgstr "" "范围明确的重建任务,为研究这些选择提供了一个实际环境。目标和编译器版本固定之后,许多源码实验都能快速给出可重复的反馈。编程助手可以编译候选源码、检查差异,再根据观察选择下一步。" -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -11562,7 +11564,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11579,7 +11581,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11592,7 +11594,7 @@ msgstr "" "不过,要得到这样一个定义明确的任务,有时得先确定函数负责哪些资源,或者设计新的方法观察程序运行时的行为。在 TH08 " "中,{ph0}一次碰撞差异最终追溯到原版处理浮点计算的方式{ph1}。编程助手必须先弄清楚该测量什么,才能验证有价值的修正。" -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -11600,12 +11602,12 @@ msgid "" "investigate how far a learned search policy can get with it." msgstr "这提示了能力全面的模型的另一个作用:先把问题变得可验证。验证手段建立起来后,我们才可以研究,学出来的搜索策略能走多远。" -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "当校验基准出错时" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -11615,7 +11617,7 @@ msgstr "" "一旦用某项检查来训练模型,它的覆盖范围就会成为学习环境的一部分。我把这种参考标准或校验基准称为 " "oracle。即使它能给出可重复的答案,我们也必须知道,这个答案覆盖了什么。" -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -11634,7 +11636,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11647,7 +11649,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11661,7 +11663,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11674,7 +11676,7 @@ msgstr "" "功能测试也可能存在类似盲点。{ph0}针对 LLM " "反编译器的差分模糊测试研究{ph1}发现,在已有测试之外,程序行为仍可能不同。因此,理解“测试通过”时,必须看它实际覆盖了哪些情况;理解“指令匹配”时,也必须看它检查了哪些字节和数据。" -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -11687,7 +11689,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11696,12 +11698,12 @@ msgid "" " we give it, understanding that feedback becomes more important too." msgstr "{ph0}改进模型和改进它的校验基准,属于同一个研究问题。{ph1} 模型越擅长优化我们给它的反馈,我们就越需要理解反馈本身。" -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "值得做的对照实验" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -11714,7 +11716,7 @@ msgstr "" "任务开始比较。先为强通用模型和小型通用模型建立基线,再给小模型加入仓库知识,观察检索带来的变化。接着比较监督训练的专用模型,以及在此基础上进行 RL " "训练的版本,看看训练增加了什么。" -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -11724,7 +11726,7 @@ msgid "" msgstr "" "为了让比较有意义,每个模型都应获得相同的目标证据和工具。专门比较训练效果时,还要固定基础模型和可用知识。重复实验有助于区分可靠的搜索策略与偶然成功的候选方案。" -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -11735,7 +11737,7 @@ msgid "" msgstr "" "我还会区分两种起点:从指令开始重建函数,以及在已有源码中消除最后几处差异。专用模型可能很擅长后者,而通用模型承担了到达这个阶段的大部分工作。分别评估,才能看清这种分工。" -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -11745,7 +11747,7 @@ msgid "" msgstr "" "两类任务都需要真正未见过的测试案例。东方系列的相关游戏会共享引擎代码,只留出某个游戏,仍可能让几乎相同的函数进入训练集。我会改为按相关源码家族留出测试集,并把它们通过验证的答案同时排除在训练数据和检索库之外。" -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -11756,7 +11758,7 @@ msgid "" msgstr "" "在这些案例上,要统计的是完整、独立验证过的匹配成果。给每个模型相同的候选数量或编译次数预算,可以比较搜索质量。记录总耗时和总成本,包括编译,才能知道这种质量是否转化成了高效的工作流。训练成本也要单独计算。" -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -11770,7 +11772,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11786,7 +11788,7 @@ msgstr "" "只统计通过验收的结果,也能帮助我们合理看待中间进展。TH09 " "的一个{ph0}录像保存候选方案{ph1}看起来很有希望,因为编译后函数的大小符合预期,但完整比较仍发现大量差异。编译器改变指令排列,也可能让候选源码看起来更接近,却没有解决根本问题。这些诊断可以指导下一步,但若要奖励“变得更接近”,我会先对照完整验收检查,确认这种奖励有效。" -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -11797,12 +11799,12 @@ msgid "" msgstr "" "我想看这些结果呈现出什么规律。如果专用模型在熟悉的编译器上表现很好,换了工具链后,这种优势还在吗?当双方都拥有良好的检索能力时,训练还能增加多少价值?这些答案能帮助我们决定,每类模型最适合用在哪里。" -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "这意味着怎样的编程助手?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -11813,7 +11815,7 @@ msgid "" msgstr "" "如果不同模型在不同阶段各有所长,一种有价值的安排可能是:让能力全面的编程助手可以调用专用模型。当任务变成一种熟悉的编译器搜索时,它可以请专用模型提出候选方案。如果结果开始说不通,通用编程助手可以回头检查目标证据,或者调查测量本身。" -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -11821,7 +11823,7 @@ msgid "" "that made the earlier breakthroughs possible." msgstr "在这样的安排中,专用模型成为编程助手可以随着调查推进自行选择的工具。编程助手仍保留改变方向的自由,正是这种自由让前面那些突破成为可能。" -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -11831,7 +11833,7 @@ msgid "" msgstr "" "这自然延续了上一篇文章中谈到的工业化转变。能够开展更多实验,会改变我们组织工作的方式,也让我们有理由追问:哪些决策需要全面的判断,哪些可以通过反复积累某项具体技艺来改善?" -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -11844,7 +11846,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11852,12 +11854,12 @@ msgid "" "to use that record to build the comparison and see what we learn." msgstr "{ph0}这些代码仓库让我们有机会验证这个问题。{ph1} 我想利用这些记录建立对照实验,看看我们能学到什么。" -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "证据与模型归属" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -11868,7 +11870,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11891,7 +11893,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11913,7 +11915,7 @@ msgstr "{ph0}TH09 临时值生命周期:{ph1}{ph2}早期上下文检查{ph3} #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11937,7 +11939,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11962,7 +11964,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11973,7 +11975,7 @@ msgstr "" "{ph0}检查与诊断:{ph1}{ph2}TH08 浮点常量审计{ph3}、{ph4}TH08 数值问题调查{ph5}、{ph6}TH09 " "录像保存重建{ph7}。" -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -11993,22 +11995,22 @@ msgid "" " and learning to propose better hypotheses from compiler feedback." msgstr "东方重建让我如何思考通用模型、专用模型,以及怎样从编译器反馈中学会提出更好的假设。" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "在本页" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "模型与逆向工程随笔" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "重建实验选例" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "回到顶部" @@ -12017,7 +12019,7 @@ msgstr "回到顶部" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12027,68 +12029,68 @@ msgstr "{ph0}详细证据记录{ph1}包含历史比较结果与实验背景。" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}案例展示{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA 实际案例。" -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android · APK 分析" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "身份验证器如何生成登录验证码" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "阅读Android案例研究" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron · 功能追踪" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Notion 如何复制文本和 HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "阅读Notion案例研究" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "原生程序 · 重建" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball 的声像计算" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "阅读DX-Ball案例研究" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "配置方式" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -12097,7 +12099,7 @@ msgstr "准备好电脑和编程助手,连接 REA,再分析一个小应用 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12107,7 +12109,7 @@ msgstr "第一次使用?按下面四步来。已经有编程助手?直接看 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -12115,7 +12117,7 @@ msgstr "{ph0}1. 准备电脑{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -12123,7 +12125,7 @@ msgstr "{ph0}2. 选择编程助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -12131,7 +12133,7 @@ msgstr "{ph0}3. 连接 REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -12139,25 +12141,25 @@ msgstr "{ph0}4. 试着分析一个应用{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}其他目标和分析工具{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. 准备电脑" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " "can read those files and run tools for you." msgstr "在存放目标文件的电脑上操作。本地编程助手可以读取这些文件,并帮你运行分析工具。" -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -12166,7 +12168,7 @@ msgstr "命令粘贴到终端;标着“你的编程助手”的提示词粘贴 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -12177,7 +12179,7 @@ msgstr "如果没有 winget,可以{ph0}下载 Node.js 安装程序{ph1}。" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12186,41 +12188,41 @@ msgid "" msgstr "" "如果运行 {ph2} 时 PowerShell 提示{ph0}“此系统上禁止运行脚本”{ph1},改用 {ph3}。npm 则改用 {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "为编程助手建一个工作文件夹" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "在终端中为练习建一个文件夹,然后进入它:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " "folder, open it instead." msgstr "下一步继续使用这个终端。如果已经有工作文件夹,进入那个文件夹即可。" -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. 选择编程助手" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." " Pick one client below; open its instructions if you haven't used it before." msgstr "你对话的编程助手就是 AI。REA 为它提供所用的检查工具。从下面选一个客户端;没用过就先看它的说明。" -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · 使用 ChatGPT 账号" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -12229,39 +12231,39 @@ msgstr "选择“Sign in with ChatGPT”,在浏览器中登录后回到终端 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codex 安装与登录{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor、Windsurf 或 VS Code · 使用编辑器" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "安装适合你操作系统的编辑器,然后登录。" -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "打开第 1 步创建的 rea-work 文件夹。" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · 使用 Claude 账号" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "使用适合你操作系统的安装命令:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12272,13 +12274,13 @@ msgstr "重新打开终端,回到工作文件夹并运行 {ph0},按提示登 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Code 安装与账号选项{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · 使用桌面聊天应用" @@ -12288,7 +12290,7 @@ msgstr "Claude Desktop · 使用桌面聊天应用" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12298,7 +12300,7 @@ msgstr "{ph0}下载 Claude Desktop{ph1} · {ph2}Claude Desktop 连接详情{ph3} #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12308,19 +12310,19 @@ msgstr "在工作文件夹里运行 {ph0}。在聊天框中使用 {ph1} 连接 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCode 安装与模型配置{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "全部支持的客户端与 setup ID" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12328,12 +12330,12 @@ msgid "" " choosing a client explicitly." msgstr "npm 6.4.0 支持下面这些客户端。指定客户端时,在 {ph0} 后填写对应的 ID。" -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "客户端" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Setup ID" @@ -12343,7 +12345,7 @@ msgstr "Setup ID" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12361,7 +12363,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12369,13 +12371,13 @@ msgid "" "availability{ph3}" msgstr "{ph0}客户端配置与故障排查{ph1} · {ph2}版本支持情况{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · 在它的托管电脑上连接" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12386,29 +12388,29 @@ msgstr "在 Grok Bot 聊天中,请它添加名为 {ph0} 的自定义 MCP 服 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Grok Bot 连接器说明{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. 连接 REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "把这段话复制给编程助手:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "指定某一个客户端时,附上它的 setup ID:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12418,14 +12420,14 @@ msgid "" msgstr "" "如果 npm 询问是否下载,输入 {ph0} 后按 Enter。在 REA 的客户端列表中,用方向键移动、空格键选择,然后按 Enter 继续。" -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " "workflow for investigating software." msgstr "MCP 让编程助手能够调用 REA;skill 则为它提供分析软件的工作流程。" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -12434,7 +12436,7 @@ msgstr "第一次练习可以跳过可选的 Hopper 安装。setup 完成后, #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12442,19 +12444,19 @@ msgid "" " Then ask your agent:" msgstr "把 {ph0} 换成你客户端的 setup ID。检查通过时会显示 {ph1}。然后问编程助手:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "检查 REA 是否已连接,并告诉我你能使用哪些 REA 工具。" -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. 开始第一次分析" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12465,7 +12467,7 @@ msgstr "" "示例是一个包含六个文件的 Electron 应用,带有{ph0}Export notes{ph1}按钮。编程助手无需安装或启动 Electron " "就能检查它的代码。" -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "你的编程助手" @@ -12479,7 +12481,7 @@ msgstr "你的编程助手" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12491,7 +12493,7 @@ msgstr "" "{ph0}›{ph1}{ph2}下载 {ph3},放进一个新的示例文件夹并解压。用 REA 找出点击 Export notes 后发生了什么。展示 " "{ph4} 写到哪里、有哪些字段,以及相关文件和行号。{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "寻找带文件和行号的简短解释:" @@ -12500,7 +12502,7 @@ msgstr "寻找带文件和行号的简短解释:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12511,13 +12513,13 @@ msgstr "按钮发送 {ph0} 消息。主进程把笔记转换为 CSV,并将 {ph #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}跟着练习检查一个预测 →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "自行下载示例,或使用自己的应用" @@ -12525,14 +12527,14 @@ msgstr "自行下载示例,或使用自己的应用" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下载示例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12541,7 +12543,7 @@ msgid "" msgstr "如果助手不能下载文件,你也可以手动解压。把 {ph0} 文件夹的路径交给它,再问同一个导出问题。" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12549,71 +12551,71 @@ msgid "" "relevant files and lines." msgstr "用 REA 检查 {ph0} 中的应用。找出它怎样导出数据,并给出相关文件和行号。" -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "分析其他类型的软件" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " "REA uses for that kind of software." msgstr "按你的目标选择对应小节。Provider 指 REA 分析这类软件时使用的本地工具。" -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "原生可执行文件和库 · Hopper、Ghidra 或 IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " "operating system; the target is the program you want to inspect." msgstr "在运行 REA 的电脑上安装一个分析工具。Host 指你使用的操作系统,target 指要分析的程序。" -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "分析工具" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "不支持" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "支持的发行版" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · 实验性支持" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "已验证的配置" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "已验证的无界面配置" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "参阅 provider 指南" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · 通过 setup 安装或连接" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -12623,7 +12625,7 @@ msgstr "" "在 setup 中选择 Hopper,查看它的独立安装计划。macOS 首次打开 Hopper 时选择试用模式或激活许可证;Linux 的 setup " "会准备支持的试用版及其专用显示环境。" -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -12632,7 +12634,7 @@ msgstr "" "Linux 支持 Ubuntu 24.04+、Fedora 41+、Nobara 44+、Arch Linux、CachyOS 和 " "Omarchy。Hopper 是商业软件,试用版有厂商规定的限制。" -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -12643,18 +12645,18 @@ msgstr "如果 macOS 请求自动化权限,在“系统设置 → 隐私与安 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopper 安装与故障排查{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · 安装免费的分析工具和 Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -12662,7 +12664,7 @@ msgid "" msgstr "安装包含 Java 编译器的 64 位 JDK 21 或更新版本。下载时选择符合电脑架构的安装包。" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12673,7 +12675,7 @@ msgstr "从 Ghidra 12.1.4 发布页的 Assets 列表下载并解压 {ph0}。选 #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12687,7 +12689,7 @@ msgstr "找到解压后包含 {ph0} 或 {ph1} 的文件夹,把该文件夹的 #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -12695,7 +12697,7 @@ msgstr "{ph0}下载 JDK{ph1} · {ph2}下载 Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12703,7 +12705,7 @@ msgid "" "second confirms the compiler is installed:" msgstr "检查 Java。第一条命令会显示 {ph0},将该文件夹用于 {ph1};第二条确认编译器已安装:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -12718,7 +12720,7 @@ msgstr "在同一个终端会话中运行这些命令。设置路径后重新运 #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12726,12 +12728,12 @@ msgid "" "guide{ph3}" msgstr "{ph0}Ghidra 配置与架构要求{ph1} · {ph2}Windows Ghidra 指南{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · 连接已有安装" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -12740,7 +12742,7 @@ msgid "" msgstr "" "按 IDA provider 指南准备上游 MCP 配置。可以连接已打开原始程序的 IDA 界面,或使用创建独立数据库的无界面 supervisor。" -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -12750,7 +12752,7 @@ msgstr "" "已验证的配置包括 Windows 旧版 GUI 与无界面 supervisor,以及 macOS arm64 上的 IDA Professional " "9.1 无界面 supervisor。可选的原生 GUI 桥接另有版本和平台要求。" -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -12760,13 +12762,13 @@ msgstr "使用按 provider 指南准备好的 JSON 配置文件,再运行 setu #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}IDA 配置、注册示例与已验证平台{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -12775,128 +12777,128 @@ msgstr "连接后,把原始可执行文件的完整路径和分析工具名称 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}跟着示例分析原生程序{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "网站、Android、.NET、固件及其他目标" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " "tools, supported hosts and first command." msgstr "打开对应目标的指南,其中会列出额外工具、支持的平台和第一条分析命令。" -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "目标" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "需要准备的工具" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "指南" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}查看指南{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "网站" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / 软件包" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android 设备" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Android 资源" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEB 项目" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "固件" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linux 崩溃记录" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "逻辑信号" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "进程行为" @@ -12912,7 +12914,7 @@ msgstr "进程行为" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12922,18 +12924,18 @@ msgstr "" "{ph0}Flutter 指南{ph1} · {ph2}软件包与资源{ph3} · {ph4}EVM 字节码{ph5} · " "{ph6}全部分析指南{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "在终端中使用 REA" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLI 命令、全局安装与 curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12941,26 +12943,26 @@ msgid "" "list. Ghidra must be configured first." msgstr "把 {ph0} 换成目标函数列表中的名称或地址。先完成 Ghidra 配置再运行。" -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " "Node.js:" msgstr "macOS 或 Linux 准备好 Node.js 后,也可以使用 curl 安装:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" " REA in MCP settings and allow its tools in the agent chat." msgstr "在第 3 步的检查命令中填写你的 setup ID。使用编辑器时,在 MCP 设置中启用 REA,并在助手聊天中允许使用它的工具。" -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows、WSL 与含空格的路径" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -12970,17 +12972,17 @@ msgstr "" "Windows 客户端和分析工具使用 Windows PowerShell。如果编程助手在 WSL 内运行,就在那个 Linux 环境中安装 " "Node.js 和 REA,并使用 Linux 路径。无界面 provider 与 REA 在同一个系统环境中运行。" -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Windows setup 命令:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "更新或移除 REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -12989,7 +12991,7 @@ msgstr "要更新编程助手的连接,重新运行最新版 setup,查看并 #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13001,52 +13003,52 @@ msgstr "全局安装的 CLI 用 {ph0} 更新。使用 {ph1} 移除 REA 的客户 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}更新与卸载详情{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "复制 Windows REA setup 命令" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "复制命令" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "复制笔记调查提示" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13054,12 +13056,12 @@ msgid "" "{ph0}; on other distributions, use your package manager." msgstr "如果没有 curl 和 unzip,先安装它们。Debian 或 Ubuntu 使用 {ph0};其他发行版使用对应的包管理器。" -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "关闭终端,重新打开,再运行:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -13074,7 +13076,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13084,19 +13086,19 @@ msgstr "" "{ph0}Cursor 安装{ph1} · {ph2}Windsurf / Devin Desktop 安装{ph3} · {ph4}VS Code 与" " Copilot 配置{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · 选择 AI 模型" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "准备 IDA 配置文件" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13110,7 +13112,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13121,7 +13123,7 @@ msgstr "如果使用提供 {ph0}、{ph1} 和 {ph2} 的无界面 supervisor,文 #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13132,22 +13134,22 @@ msgstr "" "如果连接旧版 1.4.0 GUI 服务,把可用的 {ph0}、{ph1} 和可选的 {ph2} 复制到文件中。先在 IDA " "中打开原始程序并启动上游插件,再让 REA 分析。" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLite 数据库" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVM 字节码" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "使用适合你操作系统的命令安装 Codex:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -13156,7 +13158,7 @@ msgstr "安装后,重新打开终端并回到工作文件夹,再启动 Codex #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13165,12 +13167,12 @@ msgid "" msgstr "" "首次安装时,下载 {ph0}Node.js 24 LTS 的 macOS 安装包(.pkg){ph1},打开并按提示安装,然后重新打开终端。" -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "已经在使用 Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -13180,7 +13182,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13188,7 +13190,7 @@ msgid "" "in step 3{ph1}." msgstr "查看并确认计划,重新打开 Claude,再{ph0}按第 3 步检查连接{ph1}。" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -13197,12 +13199,12 @@ msgid "" msgstr "" "把两个路径换成你已有的安装位置。如果是全新安装在 macOS 或 Linux arm64 上,请先为这台电脑编译原生反编译器,再继续下面的步骤。" -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "编译 Ghidra 的原生反编译器" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -13213,7 +13215,7 @@ msgstr "macOS 编译需要 Xcode Command Line Tools、make 和 bison。选择符 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -13223,7 +13225,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -13233,19 +13235,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · 原生组件编译说明{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "然后检查 Ghidra,并为客户端保存这些路径:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -13253,35 +13255,35 @@ msgstr "为什么计算器对 {ph0} 给出 220?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}如何工作{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " "tools to inspect the code behind the answer." msgstr "向你的编程助手提一个关于应用、游戏或网站的问题。REA 为它提供工具,让它检查答案背后的代码。" -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "开始使用" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "看一个例子 ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "如何工作" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -13289,86 +13291,86 @@ msgid "" "and help you rebuild it." msgstr "逆向工程就是通过检查程序本身,了解软件如何工作。有了 REA,你的助手可以追踪代码、解释一个功能,并帮你重新实现它。" -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "问一个具体功能" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "给助手一个程序或页面,再提一个问题。" -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "检查程序" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA 返回代码、引用关系和运行时观察结果。" -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "理解它,再试着修改" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "助手根据这些发现解释或重新实现这个功能。" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "一步步阅读指令" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "向助手提同一个问题" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "起始速度为 6。速度低于 13 时,每次没有发生碰撞的更新增加 0.001。" -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "查看已发布应用或游戏中的一个功能,以及相关代码和验证结果。" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " "demo clock to see why it changes every 30 seconds." msgstr "在 Aegis 已发布的 APK 中追踪六位登录验证码,再移动演示时钟,看看它为什么每 30 秒变化一次。" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " "copy preserves rich block data." msgstr "从 Notion 打包的 JavaScript 追踪到系统剪贴板,看看复制操作如何保留富文本区块数据。" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " "game." msgstr "还原一款 1996 年 Windows 游戏如何把球的位置转成左右声道的声音。" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "选择你的目标。" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -13377,7 +13379,7 @@ msgstr "这些指南介绍各类软件的安装配置和第一次调查。" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13393,13 +13395,13 @@ msgstr "汇编节选自已安装的计算器 DLL。思考过程和回答用于 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "对,就是这个网站。" @@ -13412,7 +13414,7 @@ msgstr "对,就是这个网站。" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13425,7 +13427,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}示例 prompt · 游戏重建" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13437,18 +13439,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "复制网站项目提示" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "复制游戏重建提示" @@ -13460,7 +13462,7 @@ msgstr "复制游戏重建提示" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13470,7 +13472,7 @@ msgstr "{ph0}›{ph1}{ph2}用 REA 检查 {ph3}。帮我克隆这个网站。{ph4 #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -13478,37 +13480,37 @@ msgstr "{ph0}案例展示 →{ph1} — 调查过程与互动演示。" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}博客 →{ph1} — 方法与软件重建笔记。" -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "展开完整的计算器调查" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "试一个更大的项目" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "试两个例子吧:先改变游戏速度,再重新实现计算器的 % 按钮。" -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " "first need to find out how the speed changes." msgstr "游戏会随着奔跑越来越快。要重新实现它并加上速度控制,我们先得弄清速度怎么变化。" -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. 问一问速度" @@ -13521,52 +13523,52 @@ msgstr "1. 问一问速度" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}示例问题 · 恐龙游戏" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. 找到速度规则" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " "increases a little each update while it is below 13." msgstr "REA 让助手读到游戏正在运行的代码。速度从 6 开始,低于 13 时,每次更新都会增加一点。" -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. 玩一玩结果" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " "Play, then choose your own speed." msgstr "我们把这条规则用在下面的小游戏里,加上了速度滑块。点击开始,再选一个自己的速度。" -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "开启 JavaScript 就能玩。你仍然可以阅读规则,并展开下方的源代码。" -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " "try them in a small calculator." msgstr "% 按钮在 + 和 × 之后做的事情不同。我们来找出两条规则,在一个小计算器里试试。" -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. 问一问 % 按钮" @@ -13579,37 +13581,37 @@ msgstr "1. 问一问 % 按钮" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}示例问题 · 计算器" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. 找到两条规则" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "REA 帮助助手读到 % 按钮背后的代码。它使用两条不同的规则:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. 试试 % 按钮" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "我们在下面重新实现了两条规则。选 + 或 ×,按 %,再按 =。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -13617,7 +13619,7 @@ msgstr "{ph0}阅读 FAQ{ph1} — 安装配置和常见问题。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -13625,13 +13627,13 @@ msgstr "{ph0}加入 Discord{ph1} — 寻求帮助,交流你的调查。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — 报告问题或提出功能需求。" -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "选择适合你的平台的安装方式:" @@ -13639,14 +13641,14 @@ msgstr "选择适合你的平台的安装方式:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "其他安装方式:{ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13659,7 +13661,7 @@ msgstr "按设置提示连接你的助手。如果没有出现提示,运行 {p #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13672,7 +13674,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13682,7 +13684,7 @@ msgstr "在已构建的源码目录中,运行 {ph0} 和 {ph1},不要使用 #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13691,7 +13693,7 @@ msgid "" msgstr "如果终端找不到 {ph0},请使用安装器打印的可执行文件路径。在 Linux 上,默认的设置命令是 {ph1}。" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13700,89 +13702,89 @@ msgid "" "the code." msgstr "用 REA 通过我已配置的分析引擎检查 {ph0}。列出它的函数和字符串,然后结合代码引用说明处理用户输入的那部分。" -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "贡献者" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "跳转到内容" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}首页{ph1} / 贡献者" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "共同打造。" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "感谢每一位让 REA 变得更好的人。" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "代码、文档、测试、翻译和想法——你可以用许多方式参与。" -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "如何参与贡献" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "加入讨论 →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "贡献者" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "查找贡献者" @@ -13790,13 +13792,13 @@ msgstr "查找贡献者" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "来自 {ph0}GitHub 贡献者列表{ph1} · 更新于 {ph2}。" -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "没有找到匹配的贡献者。试试其他用户名。" @@ -13812,12 +13814,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "认识为 REA 贡献代码、文档、测试和想法的人。" -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub 用户名" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "回到顶部" diff --git a/website/locales/zh-TW/messages.po b/website/locales/zh-TW/messages.po index 6c1f5245fda..02648890454 100644 --- a/website/locales/zh-TW/messages.po +++ b/website/locales/zh-TW/messages.po @@ -8,78 +8,78 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Initial-Translation: Machine-assisted Traditional Chinese baseline; community review welcome\n" -#: website/public/blog/index.html:107 +#: website/public/blog/index.html:113 msgctxt "page:blog/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/blog/index.html:199 +#: website/public/blog/index.html:205 #, python-brace-format msgctxt "page:blog/index.html" msgid "{ph0}Home{ph1} / Blog" msgstr "{ph0}首頁{ph1} /部落格" -#: website/public/blog/index.html:200 +#: website/public/blog/index.html:206 msgctxt "page:blog/index.html" msgid "Blog." msgstr "部落格。" -#: website/public/blog/index.html:201 +#: website/public/blog/index.html:207 msgctxt "page:blog/index.html" msgid "Thoughts on reverse engineering." msgstr "逆向工程的思考。" #. {ph0}:
-#: website/public/blog/index.html:219 +#: website/public/blog/index.html:225 #, python-brace-format msgctxt "page:blog/index.html" msgid "Game reconstruction{ph0}Essay" msgstr "遊戲重建{ph0}論文" -#: website/public/blog/index.html:221 +#: website/public/blog/index.html:227 msgctxt "page:blog/index.html" msgid "The industrial revolution in reverse engineering" msgstr "逆向工程的工業革命" -#: website/public/blog/index.html:222 +#: website/public/blog/index.html:228 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:212 website/public/blog/index.html:227 +#: website/public/blog/index.html:218 website/public/blog/index.html:233 msgctxt "page:blog/index.html" msgid "Read the article" msgstr "閱讀文章" -#: website/public/blog/index.html:230 +#: website/public/blog/index.html:236 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "透過N0zoM1z0*10十月2026" #. {ph0}: -#: website/public/blog/index.html:250 -#: website/public/blog/reverse-engineering-models/index.html:889 -#: website/public/blog/touhou-reconstruction/index.html:1086 -#: website/public/contributors/index.html:1137 -#: website/public/examples/dino-lab/index.html:481 -#: website/public/faq/index.html:579 -#: website/public/first-investigation/index.html:540 -#: website/public/get-started/index.html:1823 -#: website/public/guides/browser/index.html:513 -#: website/public/guides/index.html:288 -#: website/public/guides/javascript/index.html:509 -#: website/public/guides/native/index.html:515 website/public/index.html:1228 -#: website/public/showcase/aegis/index.html:814 -#: website/public/showcase/ctf/index.html:783 -#: website/public/showcase/dx-ball/index.html:791 -#: website/public/showcase/index.html:323 -#: website/public/showcase/notion/index.html:637 -#: website/public/showcase/th04/index.html:806 +#: website/public/blog/index.html:256 +#: website/public/blog/reverse-engineering-models/index.html:895 +#: website/public/blog/touhou-reconstruction/index.html:1092 +#: website/public/contributors/index.html:1143 +#: website/public/examples/dino-lab/index.html:487 +#: website/public/faq/index.html:585 +#: website/public/first-investigation/index.html:546 +#: website/public/get-started/index.html:1829 +#: website/public/guides/browser/index.html:519 +#: website/public/guides/index.html:294 +#: website/public/guides/javascript/index.html:515 +#: website/public/guides/native/index.html:521 website/public/index.html:1234 +#: website/public/showcase/aegis/index.html:820 +#: website/public/showcase/ctf/index.html:789 +#: website/public/showcase/dx-ball/index.html:797 +#: website/public/showcase/index.html:329 +#: website/public/showcase/notion/index.html:643 +#: website/public/showcase/th04/index.html:812 #, python-brace-format msgctxt "shared" msgid "{ph0}↑{ph1} Top" @@ -97,160 +97,160 @@ msgid "" "and AI agents." msgstr "對逆向工程的思考,借鑑與 REA 和AI程式設計助手。" -#: website/public/blog/index.html:79 website/public/blog/index.html:92 -#: website/public/blog/reverse-engineering-models/index.html:79 -#: website/public/blog/reverse-engineering-models/index.html:92 -#: website/public/blog/touhou-reconstruction/index.html:79 -#: website/public/blog/touhou-reconstruction/index.html:92 -#: website/public/contributors/index.html:79 -#: website/public/contributors/index.html:92 -#: website/public/examples/dino-lab/index.html:79 -#: website/public/examples/dino-lab/index.html:92 -#: website/public/faq/index.html:79 website/public/faq/index.html:92 -#: website/public/first-investigation/index.html:79 -#: website/public/first-investigation/index.html:92 -#: website/public/get-started/index.html:79 -#: website/public/get-started/index.html:92 -#: website/public/guides/browser/index.html:79 -#: website/public/guides/browser/index.html:92 -#: website/public/guides/index.html:79 website/public/guides/index.html:92 -#: website/public/guides/javascript/index.html:79 -#: website/public/guides/javascript/index.html:92 -#: website/public/guides/native/index.html:79 -#: website/public/guides/native/index.html:92 website/public/index.html:79 -#: website/public/index.html:92 website/public/showcase/aegis/index.html:79 -#: website/public/showcase/aegis/index.html:92 -#: website/public/showcase/ctf/index.html:79 -#: website/public/showcase/ctf/index.html:92 -#: website/public/showcase/dx-ball/index.html:79 -#: website/public/showcase/dx-ball/index.html:92 -#: website/public/showcase/index.html:79 website/public/showcase/index.html:92 -#: website/public/showcase/notion/index.html:79 -#: website/public/showcase/notion/index.html:92 -#: website/public/showcase/th04/index.html:79 -#: website/public/showcase/th04/index.html:92 +#: website/public/blog/index.html:85 website/public/blog/index.html:98 +#: website/public/blog/reverse-engineering-models/index.html:85 +#: website/public/blog/reverse-engineering-models/index.html:98 +#: website/public/blog/touhou-reconstruction/index.html:85 +#: website/public/blog/touhou-reconstruction/index.html:98 +#: website/public/contributors/index.html:85 +#: website/public/contributors/index.html:98 +#: website/public/examples/dino-lab/index.html:85 +#: website/public/examples/dino-lab/index.html:98 +#: website/public/faq/index.html:85 website/public/faq/index.html:98 +#: website/public/first-investigation/index.html:85 +#: website/public/first-investigation/index.html:98 +#: website/public/get-started/index.html:85 +#: website/public/get-started/index.html:98 +#: website/public/guides/browser/index.html:85 +#: website/public/guides/browser/index.html:98 +#: website/public/guides/index.html:85 website/public/guides/index.html:98 +#: website/public/guides/javascript/index.html:85 +#: website/public/guides/javascript/index.html:98 +#: website/public/guides/native/index.html:85 +#: website/public/guides/native/index.html:98 website/public/index.html:85 +#: website/public/index.html:98 website/public/showcase/aegis/index.html:85 +#: website/public/showcase/aegis/index.html:98 +#: website/public/showcase/ctf/index.html:85 +#: website/public/showcase/ctf/index.html:98 +#: website/public/showcase/dx-ball/index.html:85 +#: website/public/showcase/dx-ball/index.html:98 +#: website/public/showcase/index.html:85 website/public/showcase/index.html:98 +#: website/public/showcase/notion/index.html:85 +#: website/public/showcase/notion/index.html:98 +#: website/public/showcase/th04/index.html:85 +#: website/public/showcase/th04/index.html:98 msgctxt "shared" msgid "" "REA — Find out how software works. Reverse engineering with your coding " "agent." msgstr "REA-瞭解軟體的工作原理。 逆向工程與你的程式設計助手." -#: website/public/blog/index.html:112 -#: website/public/blog/reverse-engineering-models/index.html:112 -#: website/public/blog/touhou-reconstruction/index.html:112 -#: website/public/contributors/index.html:113 -#: 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 +#: website/public/blog/index.html:118 +#: website/public/blog/reverse-engineering-models/index.html:118 +#: website/public/blog/touhou-reconstruction/index.html:118 +#: website/public/contributors/index.html:119 +#: website/public/examples/dino-lab/index.html:119 +#: website/public/faq/index.html:118 +#: website/public/first-investigation/index.html:118 +#: website/public/get-started/index.html:118 +#: website/public/guides/browser/index.html:118 +#: website/public/guides/index.html:118 +#: website/public/guides/javascript/index.html:118 +#: website/public/guides/native/index.html:118 website/public/index.html:120 +#: website/public/showcase/aegis/index.html:119 +#: website/public/showcase/ctf/index.html:118 +#: website/public/showcase/dx-ball/index.html:118 +#: website/public/showcase/index.html:118 +#: website/public/showcase/notion/index.html:118 +#: website/public/showcase/th04/index.html:118 msgctxt "shared" msgid "REA home" msgstr "REA 首頁" -#: website/public/blog/index.html:116 -#: website/public/blog/reverse-engineering-models/index.html:116 -#: website/public/blog/touhou-reconstruction/index.html:116 -#: website/public/contributors/index.html:117 -#: website/public/examples/dino-lab/index.html:117 -#: website/public/faq/index.html:116 -#: website/public/first-investigation/index.html:116 -#: website/public/get-started/index.html:116 -#: website/public/guides/browser/index.html:116 -#: website/public/guides/index.html:116 -#: website/public/guides/javascript/index.html:116 -#: website/public/guides/native/index.html:116 website/public/index.html:118 -#: website/public/showcase/aegis/index.html:117 -#: website/public/showcase/ctf/index.html:116 -#: website/public/showcase/dx-ball/index.html:116 -#: website/public/showcase/index.html:116 -#: website/public/showcase/notion/index.html:116 -#: website/public/showcase/th04/index.html:116 +#: website/public/blog/index.html:122 +#: website/public/blog/reverse-engineering-models/index.html:122 +#: website/public/blog/touhou-reconstruction/index.html:122 +#: website/public/contributors/index.html:123 +#: website/public/examples/dino-lab/index.html:123 +#: website/public/faq/index.html:122 +#: website/public/first-investigation/index.html:122 +#: website/public/get-started/index.html:122 +#: website/public/guides/browser/index.html:122 +#: website/public/guides/index.html:122 +#: website/public/guides/javascript/index.html:122 +#: website/public/guides/native/index.html:122 website/public/index.html:124 +#: website/public/showcase/aegis/index.html:123 +#: website/public/showcase/ctf/index.html:122 +#: website/public/showcase/dx-ball/index.html:122 +#: website/public/showcase/index.html:122 +#: website/public/showcase/notion/index.html:122 +#: website/public/showcase/th04/index.html:122 msgctxt "shared" msgid "Main navigation" msgstr "主導航" -#: website/public/blog/index.html:135 -#: website/public/blog/reverse-engineering-models/index.html:135 -#: website/public/blog/touhou-reconstruction/index.html:135 -#: website/public/contributors/index.html:136 -#: website/public/examples/dino-lab/index.html:136 -#: website/public/faq/index.html:135 -#: website/public/first-investigation/index.html:135 -#: website/public/get-started/index.html:135 -#: website/public/guides/browser/index.html:135 -#: website/public/guides/index.html:135 -#: website/public/guides/javascript/index.html:135 -#: website/public/guides/native/index.html:135 website/public/index.html:137 -#: website/public/showcase/aegis/index.html:136 -#: website/public/showcase/ctf/index.html:135 -#: website/public/showcase/dx-ball/index.html:135 -#: website/public/showcase/index.html:135 -#: website/public/showcase/notion/index.html:135 -#: website/public/showcase/th04/index.html:135 +#: website/public/blog/index.html:141 +#: website/public/blog/reverse-engineering-models/index.html:141 +#: website/public/blog/touhou-reconstruction/index.html:141 +#: website/public/contributors/index.html:142 +#: website/public/examples/dino-lab/index.html:142 +#: website/public/faq/index.html:141 +#: website/public/first-investigation/index.html:141 +#: website/public/get-started/index.html:141 +#: website/public/guides/browser/index.html:141 +#: website/public/guides/index.html:141 +#: website/public/guides/javascript/index.html:141 +#: website/public/guides/native/index.html:141 website/public/index.html:143 +#: website/public/showcase/aegis/index.html:142 +#: website/public/showcase/ctf/index.html:141 +#: website/public/showcase/dx-ball/index.html:141 +#: website/public/showcase/index.html:141 +#: website/public/showcase/notion/index.html:141 +#: website/public/showcase/th04/index.html:141 msgctxt "shared" msgid "REA on GitHub" msgstr "在 GitHub 檢視 REA" -#: website/public/blog/index.html:155 -#: website/public/blog/reverse-engineering-models/index.html:155 -#: website/public/blog/touhou-reconstruction/index.html:155 -#: website/public/contributors/index.html:156 -#: website/public/examples/dino-lab/index.html:156 -#: website/public/faq/index.html:155 -#: website/public/first-investigation/index.html:155 -#: website/public/get-started/index.html:155 -#: website/public/guides/browser/index.html:155 -#: website/public/guides/index.html:155 -#: website/public/guides/javascript/index.html:155 -#: website/public/guides/native/index.html:155 website/public/index.html:157 -#: website/public/showcase/aegis/index.html:156 -#: website/public/showcase/ctf/index.html:155 -#: website/public/showcase/dx-ball/index.html:155 -#: website/public/showcase/index.html:155 -#: website/public/showcase/notion/index.html:155 -#: website/public/showcase/th04/index.html:155 +#: website/public/blog/index.html:161 +#: website/public/blog/reverse-engineering-models/index.html:161 +#: website/public/blog/touhou-reconstruction/index.html:161 +#: website/public/contributors/index.html:162 +#: website/public/examples/dino-lab/index.html:162 +#: website/public/faq/index.html:161 +#: website/public/first-investigation/index.html:161 +#: website/public/get-started/index.html:161 +#: website/public/guides/browser/index.html:161 +#: website/public/guides/index.html:161 +#: website/public/guides/javascript/index.html:161 +#: website/public/guides/native/index.html:161 website/public/index.html:163 +#: website/public/showcase/aegis/index.html:162 +#: website/public/showcase/ctf/index.html:161 +#: website/public/showcase/dx-ball/index.html:161 +#: website/public/showcase/index.html:161 +#: website/public/showcase/notion/index.html:161 +#: website/public/showcase/th04/index.html:161 msgctxt "shared" msgid "Join REA on Discord" msgstr "加入 REA 的 Discord 社群" -#: website/public/blog/index.html:174 -#: website/public/blog/reverse-engineering-models/index.html:174 -#: website/public/blog/touhou-reconstruction/index.html:174 -#: website/public/contributors/index.html:175 -#: website/public/examples/dino-lab/index.html:175 -#: website/public/faq/index.html:174 -#: website/public/first-investigation/index.html:174 -#: website/public/get-started/index.html:174 -#: website/public/guides/browser/index.html:174 -#: website/public/guides/index.html:174 -#: website/public/guides/javascript/index.html:174 -#: website/public/guides/native/index.html:174 website/public/index.html:176 -#: website/public/showcase/aegis/index.html:175 -#: website/public/showcase/ctf/index.html:174 -#: website/public/showcase/dx-ball/index.html:174 -#: website/public/showcase/index.html:174 -#: website/public/showcase/notion/index.html:174 -#: website/public/showcase/th04/index.html:174 +#: website/public/blog/index.html:180 +#: website/public/blog/reverse-engineering-models/index.html:180 +#: website/public/blog/touhou-reconstruction/index.html:180 +#: website/public/contributors/index.html:181 +#: website/public/examples/dino-lab/index.html:181 +#: website/public/faq/index.html:180 +#: website/public/first-investigation/index.html:180 +#: website/public/get-started/index.html:180 +#: website/public/guides/browser/index.html:180 +#: website/public/guides/index.html:180 +#: website/public/guides/javascript/index.html:180 +#: website/public/guides/native/index.html:180 website/public/index.html:182 +#: website/public/showcase/aegis/index.html:181 +#: website/public/showcase/ctf/index.html:180 +#: website/public/showcase/dx-ball/index.html:180 +#: website/public/showcase/index.html:180 +#: website/public/showcase/notion/index.html:180 +#: website/public/showcase/th04/index.html:180 msgctxt "shared" msgid "Follow REA on X" msgstr "在 X 上關注 REA" -#: website/public/blog/index.html:250 +#: website/public/blog/index.html:256 msgctxt "page:blog/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/blog/touhou-reconstruction/index.html:107 +#: website/public/blog/touhou-reconstruction/index.html:113 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -259,35 +259,35 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:199 +#: website/public/blog/touhou-reconstruction/index.html:205 #, 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:203 +#: website/public/blog/touhou-reconstruction/index.html:209 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Essay · Touhou reconstruction" msgstr "隨筆 · 東方遊戲重建" -#: website/public/blog/touhou-reconstruction/index.html:204 +#: website/public/blog/touhou-reconstruction/index.html:210 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The industrial revolution in reverse engineering." msgstr "逆向工程的工業革命。" -#: website/public/blog/touhou-reconstruction/index.html:205 +#: website/public/blog/touhou-reconstruction/index.html:211 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "By N0zoM1z0 · 10 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 10 日" -#: website/public/blog/touhou-reconstruction/index.html:207 +#: website/public/blog/touhou-reconstruction/index.html:213 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Takeaway" msgstr "要點" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:209 +#: website/public/blog/touhou-reconstruction/index.html:215 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -297,7 +297,7 @@ msgstr "{ph0}讓程式設計助手自主開展調查。{ph1}明確目標和驗 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:214 +#: website/public/blog/touhou-reconstruction/index.html:220 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -309,7 +309,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:219 +#: website/public/blog/touhou-reconstruction/index.html:225 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -319,7 +319,7 @@ msgstr "{ph0}結論要由證據決定。{ph1}說得再肯定,也需要驗證 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:224 +#: website/public/blog/touhou-reconstruction/index.html:230 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -329,7 +329,7 @@ msgstr "{ph0}驗證基準本身也要測試。{ph1}故意給它應當拒絕的 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:229 +#: website/public/blog/touhou-reconstruction/index.html:235 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -337,65 +337,65 @@ msgid "" "methods are still taking shape. There is plenty left to explore." msgstr "{ph0}我們正處於逆向工程工業革命的早期。{ph1}方法還在成形,還有很多值得探索的地方。" -#: website/public/blog/touhou-reconstruction/index.html:241 +#: website/public/blog/touhou-reconstruction/index.html:247 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "How experience compounds" msgstr "經驗如何產生複利" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:242 +#: website/public/blog/touhou-reconstruction/index.html:248 #, 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:330 +#: website/public/blog/touhou-reconstruction/index.html:336 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Autonomy" msgstr "自主探索" -#: website/public/blog/touhou-reconstruction/index.html:331 +#: website/public/blog/touhou-reconstruction/index.html:337 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Agent" msgstr "程式設計助手" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:332 +#: website/public/blog/touhou-reconstruction/index.html:338 #, 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:335 +#: website/public/blog/touhou-reconstruction/index.html:341 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Verification" msgstr "驗證" -#: website/public/blog/touhou-reconstruction/index.html:336 +#: website/public/blog/touhou-reconstruction/index.html:342 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Oracle" msgstr "驗證基準" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:337 +#: website/public/blog/touhou-reconstruction/index.html:343 #, 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:340 +#: website/public/blog/touhou-reconstruction/index.html:346 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Repository" msgstr "程式碼儲存庫" -#: website/public/blog/touhou-reconstruction/index.html:341 +#: website/public/blog/touhou-reconstruction/index.html:347 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Working memory" msgstr "工作記憶" #. {ph0}:
-#: website/public/blog/touhou-reconstruction/index.html:342 +#: website/public/blog/touhou-reconstruction/index.html:348 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Code, evidence,{ph0}checks and lessons." @@ -404,7 +404,7 @@ msgstr "程式碼、證據、{ph0}檢查和經驗。" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:344 +#: website/public/blog/touhou-reconstruction/index.html:350 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}" @@ -413,40 +413,40 @@ msgstr "不匹配{ph0}{ph1}修正假設{ph2}" #. {ph0}:
#. {ph1}: #. {ph2}: -#: website/public/blog/touhou-reconstruction/index.html:347 +#: website/public/blog/touhou-reconstruction/index.html:353 #, 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:350 +#: website/public/blog/touhou-reconstruction/index.html:356 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Reuse" msgstr "複用" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:351 +#: website/public/blog/touhou-reconstruction/index.html:357 #, 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:363 +#: website/public/blog/touhou-reconstruction/index.html:369 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:370 +#: website/public/blog/touhou-reconstruction/index.html:376 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "In this article" msgstr "在本文中" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:372 +#: website/public/blog/touhou-reconstruction/index.html:378 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}August 2026{ph1}" @@ -454,7 +454,7 @@ msgstr "{ph0}2026年8月{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:373 +#: website/public/blog/touhou-reconstruction/index.html:379 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH08: the continuation{ph1}" @@ -462,7 +462,7 @@ msgstr "{ph0}TH08:接續前人的工作{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:374 +#: website/public/blog/touhou-reconstruction/index.html:380 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}Two approaches{ph1}" @@ -470,7 +470,7 @@ msgstr "{ph0}兩種方法{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:375 +#: website/public/blog/touhou-reconstruction/index.html:381 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH095: compounding{ph1}" @@ -478,7 +478,7 @@ msgstr "{ph0}TH095:經驗的複利{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:376 +#: website/public/blog/touhou-reconstruction/index.html:382 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}TH04: across architectures{ph1}" @@ -486,7 +486,7 @@ msgstr "{ph0} TH04:跨架構{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:377 +#: website/public/blog/touhou-reconstruction/index.html:383 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}From exact to readable{ph1}" @@ -494,7 +494,7 @@ msgstr "{ph0}從精確到可讀{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:380 +#: website/public/blog/touhou-reconstruction/index.html:386 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}The industrial shift{ph1}" @@ -502,18 +502,18 @@ msgstr "{ph0}工業化的轉變{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:381 +#: website/public/blog/touhou-reconstruction/index.html:387 #, 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:386 +#: website/public/blog/touhou-reconstruction/index.html:392 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What changed in August 2026" msgstr "2026年8月發生了什麼變化" -#: website/public/blog/touhou-reconstruction/index.html:387 +#: website/public/blog/touhou-reconstruction/index.html:393 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Before this work, I had done a lot of manual reverse engineering. I would " @@ -524,7 +524,7 @@ msgid "" msgstr "" "在這之前,我做過很多手工逆向。我會反覆檢視一個函式,直到能解釋它,再對照程式驗證這個解釋。想推進專案,就得親自花更多時間研究下一個函式,腦子裡也要記住越來越多的整體關係。" -#: website/public/blog/touhou-reconstruction/index.html:394 +#: website/public/blog/touhou-reconstruction/index.html:400 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Most of my RE work is on games. I reconstruct them so their behavior can be " @@ -535,7 +535,7 @@ msgstr "" "我的逆向工作主要圍繞遊戲。我希望透過重建弄清遊戲的行為,最終做出移植版或 " "mod。這篇文章來自這些經歷。方法可以遷移到其他領域,但每個領域都需要先明確:什麼可以用可靠的基準來驗證。" -#: website/public/blog/touhou-reconstruction/index.html:401 +#: website/public/blog/touhou-reconstruction/index.html:407 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In August 2026, I started exploring agent-driven RE seriously. I wanted to " @@ -545,7 +545,7 @@ msgid "" msgstr "" "2026 年 8 月,我開始認真探索讓程式設計助手做逆向。有了程式本身和常用開發工具,它究竟能走多遠?東方遊戲重建給了我一個足夠完整的專案來尋找答案。" -#: website/public/blog/touhou-reconstruction/index.html:407 +#: website/public/blog/touhou-reconstruction/index.html:413 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The early progress was startling. An investigation could keep moving without" @@ -557,7 +557,7 @@ msgid "" msgstr "" "早期的進展讓我吃驚。我不再需要為每一步作選擇,調查也能持續推進。對比失敗後,助手可能轉去檢視另一個呼叫方,寫一段診斷程式,再根據結果決定下一步。這種自主性改變了我的工作:我可以更多關注專案方向,以及檢查是否可靠。" -#: website/public/blog/touhou-reconstruction/index.html:416 +#: website/public/blog/touhou-reconstruction/index.html:422 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace got my attention first. Then I began wondering what would survive " @@ -565,7 +565,7 @@ msgid "" "had just learned?" msgstr "速度先引起了我的注意。隨後我開始想:當前專案結束後,什麼會留下來?下一個遊戲能不能用上我們剛學到的經驗?" -#: website/public/blog/touhou-reconstruction/index.html:423 +#: website/public/blog/touhou-reconstruction/index.html:429 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH08: building on human work" msgstr "TH08:接續前人的工作" @@ -574,7 +574,7 @@ msgstr "TH08:接續前人的工作" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:424 +#: website/public/blog/touhou-reconstruction/index.html:430 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -586,7 +586,7 @@ msgstr "" "{ph0}TH08{ph1},也就是《東方永夜抄》,從接續{ph2}GensokyoClub " "的重建工作{ph3}開始。他們的公開原始碼提供了紮實的基礎,也留下了構建經驗和貢獻歷史。我在後續工作中保留了這些歷史。" -#: website/public/blog/touhou-reconstruction/index.html:433 +#: website/public/blog/touhou-reconstruction/index.html:439 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The imported history ends at the public 10 August checkpoint. My independent" @@ -596,7 +596,7 @@ msgstr "" "匯入的歷史截至 8 月 10 日的公開檢查點。我的獨立續作從 8 月 13 日開始。到 8 月 19 日,進度臺賬中已識別的 1,107 " "個遊戲函式都有了原始碼。" -#: website/public/blog/touhou-reconstruction/index.html:438 +#: website/public/blog/touhou-reconstruction/index.html:444 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A playable Linux reconstruction port was committed on 24 August, roughly " @@ -606,7 +606,7 @@ msgstr "" "8 月 24 日,我們提交了可玩的 Linux 重建移植版,距離開始續作約十一天。隨後做出了 Web 版。8 月 30 日,原生 Linux 64 " "位版釋出。" -#: website/public/blog/touhou-reconstruction/index.html:443 +#: website/public/blog/touhou-reconstruction/index.html:449 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "What struck me was that the work had reached a program people could run. " @@ -618,7 +618,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:450 +#: website/public/blog/touhou-reconstruction/index.html:456 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -631,12 +631,12 @@ msgid "" msgstr "" "這讓對照檢查成為工作的核心。我把這些基準稱為{ph0}驗證基準(oracle){ph1}。程式碼對比可以檢查重建函式是否復現原始指令;執行時檢查可以確認已走過的路徑是否到達預期狀態。助手提出解釋,再驗證它。發現不匹配,就有了具體的調查方向。" -#: website/public/blog/touhou-reconstruction/index.html:458 +#: website/public/blog/touhou-reconstruction/index.html:464 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "An exact match with the wrong constant" msgstr "常量錯了,卻仍然“精確匹配”" -#: website/public/blog/touhou-reconstruction/index.html:459 +#: website/public/blog/touhou-reconstruction/index.html:465 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "An oracle is software someone wrote. TH08 gave me a clear reminder of how " @@ -645,7 +645,7 @@ msgstr "校驗工具也是人寫的軟體。TH08 讓我清楚地看到,多少 #. {ph0}: 0.0 #. {ph1}: 128.0 -#: website/public/blog/touhou-reconstruction/index.html:463 +#: website/public/blog/touhou-reconstruction/index.html:469 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -656,7 +656,7 @@ msgstr "" "9 月,下游 Switch 移植版報告了一個 bug,最後追溯到道具自動收集。重建原始碼把玩家火力與 {ph0} 比較,而原版用的是 " "{ph1},即滿火力的閾值。" -#: website/public/blog/touhou-reconstruction/index.html:469 +#: website/public/blog/touhou-reconstruction/index.html:475 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Normal power is non-negative, so the reconstructed power check was " @@ -668,13 +668,13 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:476 +#: website/public/blog/touhou-reconstruction/index.html:482 #, 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:482 +#: website/public/blog/touhou-reconstruction/index.html:488 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A rebuild can put a constant at a different address. The comparison tool " @@ -686,7 +686,7 @@ msgstr "" #. {ph0}: 128.0 #. {ph1}: 0.0 -#: website/public/blog/touhou-reconstruction/index.html:489 +#: website/public/blog/touhou-reconstruction/index.html:495 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -699,7 +699,7 @@ msgstr "漏洞就在這裡:工具可以把重建指令的引用地址調整為 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:495 +#: website/public/blog/touhou-reconstruction/index.html:501 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -711,7 +711,7 @@ msgstr "" "{ph0}9 月 2 日的修復{ph1}糾正了原始碼,並讓比較工具檢查被引用常量的實際位元組。隨後進行的{ph2}全面審計{ph3}檢查了 1,548 " "處浮點常量引用,又在五個已透過驗收的函式中發現十二處錯誤引用。" -#: website/public/blog/touhou-reconstruction/index.html:506 +#: website/public/blog/touhou-reconstruction/index.html:512 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The comparison now checks every such floating literal. Its tests include " @@ -721,7 +721,7 @@ msgstr "現在工具會檢查每一處這樣的浮點常量。測試還會故意 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:511 +#: website/public/blog/touhou-reconstruction/index.html:517 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -729,7 +729,7 @@ msgid "" "repairing the game." msgstr "{ph0}驗證基準本身也需要重建。{ph1}修復它,就是修復遊戲的一部分。" -#: website/public/blog/touhou-reconstruction/index.html:515 +#: website/public/blog/touhou-reconstruction/index.html:521 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That matters when the team is mostly one person working with agents. I " @@ -742,7 +742,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:523 +#: website/public/blog/touhou-reconstruction/index.html:529 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -755,7 +755,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:532 +#: website/public/blog/touhou-reconstruction/index.html:538 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -763,7 +763,7 @@ msgid "" " for the next batch.{ph1}" msgstr "{ph0}每完成一批工作,我們既得到了還原的程式碼,也改善了下一批工作的環境。{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:540 +#: website/public/blog/touhou-reconstruction/index.html:546 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Two different ideas of reconstruction" msgstr "兩種不同的重建理念" @@ -772,7 +772,7 @@ msgstr "兩種不同的重建理念" #. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important- #. notice" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:541 +#: website/public/blog/touhou-reconstruction/index.html:547 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -783,14 +783,14 @@ msgstr "" "GensokyoClub 的{ph0}公開 " "README{ph1}明確表達了對這種工作的異議。公告說,專案完成前,後續開發將在私下進行。其中有這樣一段話:" -#: website/public/blog/touhou-reconstruction/index.html:552 +#: website/public/blog/touhou-reconstruction/index.html:558 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The rise of grifters (AI decompilations and ports) in this space taking from" " our work paints a bad image for future decompilation efforts…" msgstr "“這個領域裡出現了利用我們成果的投機者(AI 反編譯和移植專案),給未來的反編譯工作留下了不好的印象……”" -#: website/public/blog/touhou-reconstruction/index.html:558 +#: website/public/blog/touhou-reconstruction/index.html:564 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The notice also describes the psychological toll on the maintainers. Their " @@ -803,7 +803,7 @@ msgstr "" "公告也提到了維護者承受的心理壓力。他們的貢獻政策不接受主要由 AI 生成的 " "PR。他們用業餘時間投入了艱難的工作,這些成果讓我的續作成為可能。我尊重他們付出的努力。我想討論的分歧,是重建應當如何推進,以及貢獻應當如何評價。" -#: website/public/blog/touhou-reconstruction/index.html:567 +#: website/public/blog/touhou-reconstruction/index.html:573 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In the manual workflow I knew, developing an understanding of a function and" @@ -813,7 +813,7 @@ msgid "" msgstr "" "在我熟悉的手工流程中,理解一個函式和重建它,通常由同一個人完成。專案非常依賴這個人的專業能力。很多推理發生在工作過程中,所以對貢獻者本人的信任很重要。" -#: website/public/blog/touhou-reconstruction/index.html:574 +#: website/public/blog/touhou-reconstruction/index.html:580 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Existing projects already preserve knowledge in their source and build " @@ -821,7 +821,7 @@ msgid "" "pursue the next investigation on its own." msgstr "已有專案本就會在原始碼和構建工具中儲存知識。對我而言,變化在於:程式設計助手能利用這些知識,自主推進下一次調查。" -#: website/public/blog/touhou-reconstruction/index.html:579 +#: website/public/blog/touhou-reconstruction/index.html:585 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "In my continuation, I decide the objective and the standard for accepting a " @@ -832,7 +832,7 @@ msgid "" msgstr "" "在我的續作中,我來確定目標和驗收標準,助手有充分的調查自由。它提出的重建方案必須透過相應檢查。我希望其他人能夠看懂我們為什麼選擇這個實現,即使大部分工作由助手完成。" -#: website/public/blog/touhou-reconstruction/index.html:586 +#: website/public/blog/touhou-reconstruction/index.html:592 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This can be a difficult transition. Years of careful work may become the " @@ -842,7 +842,7 @@ msgid "" msgstr "" "這可能是一個艱難的轉變。多年的細緻工作,可能成為一個推進得更快的續作的基礎。這會帶來真實的歸屬與署名問題,也改變維護者在接受貢獻前需要了解的事情。" -#: website/public/blog/touhou-reconstruction/index.html:592 +#: website/public/blog/touhou-reconstruction/index.html:598 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The industrial analogy helps me think about this. In a craft, much of the " @@ -853,7 +853,7 @@ msgid "" msgstr "" "工業化的比喻有助於理解這一點。手工作業的過程往往依賴操作者的技藝。機器改變了這些技藝發揮作用的位置,但仍然需要人設計流程、識別錯誤產出。不同社群可以選擇接受多少這樣的變化。" -#: website/public/blog/touhou-reconstruction/index.html:600 +#: website/public/blog/touhou-reconstruction/index.html:606 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "My choice is to continue openly, with the inherited work credited and its " @@ -874,7 +874,7 @@ msgstr "我的選擇是公開繼續,註明繼承的工作並保留其歷史。 #. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits- #. and-provenance" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:606 +#: website/public/blog/touhou-reconstruction/index.html:612 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -885,14 +885,14 @@ msgstr "" "來源:GensokyoClub 的{ph0}README 公告{ph1}(於 2026 年 10 月 10 " "日核對)及其{ph2}貢獻政策{ph3}。上面的引文為節選譯文。TH08 的{ph4}貢獻署名與來源記錄{ph5}說明了獨立續作的起點。" -#: website/public/blog/touhou-reconstruction/index.html:624 +#: website/public/blog/touhou-reconstruction/index.html:630 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH095: experience starts compounding" msgstr "TH095:經驗開始產生複利" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:625 +#: website/public/blog/touhou-reconstruction/index.html:631 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -904,7 +904,7 @@ msgstr "" "{ph0}TH095{ph1},也就是《東方文花帖》,讓這些經驗的價值更容易看清。儲存庫於 8 月 29 " "日建立,當時臺賬中確認的遊戲函式數量為零。我們仍需研究遊戲本身,但已經更清楚如何開始重建,以及怎樣持續推進。" -#: website/public/blog/touhou-reconstruction/index.html:633 +#: website/public/blog/touhou-reconstruction/index.html:639 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "By 7 September, all 697 identified game functions had source. By 8 " @@ -915,7 +915,7 @@ msgstr "" "到 9 月 7 日,全部 697 個已識別遊戲函式都有了原始碼。9 月 8 日,其中 696 個透過了精確對比。9 月 9 日,整個程式完成連結。9 月" " 10 日,Windows i386 重建版被記錄為可玩,距離初始化約十二天。" -#: website/public/blog/touhou-reconstruction/index.html:640 +#: website/public/blog/touhou-reconstruction/index.html:646 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I found this more exciting than the first project's speed. A fresh target " @@ -923,7 +923,7 @@ msgid "" "present in the tools and in the way the project was organized." msgstr "這比第一個專案的速度更讓我興奮。新目標能受益於另一個遊戲的工作。經驗已經進入工具,也進入了專案的組織方式。" -#: website/public/blog/touhou-reconstruction/index.html:646 +#: website/public/blog/touhou-reconstruction/index.html:652 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For example, TH08 had taught us to pay attention to the assembled program " @@ -935,7 +935,7 @@ msgstr "" "例如,TH08 教會我們儘早關注整個程式。如果幾個還原函式依賴同一份狀態,分別對比它們仍然會留下一個關鍵問題:它們能否一起正常工作?這條經驗影響了 " "TH095 的整程式構建方式。" -#: website/public/blog/touhou-reconstruction/index.html:653 +#: website/public/blog/touhou-reconstruction/index.html:659 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" @@ -945,7 +945,7 @@ msgid "" msgstr "" "經驗只記在我腦子裡,我在場時它才有用。變成其他會話能執行的檢查後,即使我離開,它仍能幫助專案。下一個助手可以利用檢查結果,不用重複當初得出這條經驗的調查。" -#: website/public/blog/touhou-reconstruction/index.html:659 +#: website/public/blog/touhou-reconstruction/index.html:665 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The floating-literal bug belongs in that memory too. It explains why " @@ -957,7 +957,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:665 +#: website/public/blog/touhou-reconstruction/index.html:671 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -966,7 +966,7 @@ msgid "" "actually new about its target." msgstr "{ph0}方法本身成了下一個遊戲的起始材料。{ph1}我們可以把更多精力放在新目標真正不同的地方。" -#: website/public/blog/touhou-reconstruction/index.html:673 +#: website/public/blog/touhou-reconstruction/index.html:679 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The same benefit is available to people joining later. They can inspect a " @@ -975,7 +975,7 @@ msgid "" "the way it does." msgstr "後來加入的人也能受益。他們可以檢視某個決定,重新執行檢查,再繼續工作。不用先重走整個專案的歷史,才能理解原始碼為何這樣寫。" -#: website/public/blog/touhou-reconstruction/index.html:681 +#: website/public/blog/touhou-reconstruction/index.html:687 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "TH04: the workflow survives a different architecture" msgstr "TH04:換了架構,工作方式仍然適用" @@ -984,7 +984,7 @@ msgstr "TH04:換了架構,工作方式仍然適用" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:682 +#: website/public/blog/touhou-reconstruction/index.html:688 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -997,7 +997,7 @@ msgstr "" "{ph0}TH04{ph1},也就是《東方幻想鄉》,把這套工作帶到了 PC-98 DOS 時代。這次是一個由四個程式協作的 16 " "位環境。理解硬體行為,需要和 Windows 遊戲不同的證據。已有的{ph2}ReC98 工作{ph3}同樣提供了寶貴的知識與原始碼材料。" -#: website/public/blog/touhou-reconstruction/index.html:691 +#: website/public/blog/touhou-reconstruction/index.html:697 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The DOS reconstruction is now working. In my manual testing, I played " @@ -1008,7 +1008,7 @@ msgstr "" "DOS 重建版現在已經能執行。我手工打完了完整的 Normal 路線,看到結局,並檢查了存檔。目前正在做原生 64 位移植。先得到一個正常工作的 DOS" " 版,就為移植提供了參照。" -#: website/public/blog/touhou-reconstruction/index.html:697 +#: website/public/blog/touhou-reconstruction/index.html:703 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The architecture changed what we needed to investigate. It also changed the " @@ -1017,7 +1017,7 @@ msgid "" "next experiment." msgstr "架構改變了要調查的問題,也改變了用來驗證的編譯器和執行時。但助手依然能沿著問題找到結果,再用結果指導下一次實驗。" -#: website/public/blog/touhou-reconstruction/index.html:703 +#: website/public/blog/touhou-reconstruction/index.html:709 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Consider the transition from gameplay to an ending. We need to know what " @@ -1029,7 +1029,7 @@ msgstr "" "比如從遊戲過程切換到結局:哪些狀態需要跨越這個邊界?哪個程式負責它們?我們可以對照 DOS 原版調查。只要證據和檢查可用,助手就能像研究 Windows" " 遊戲一樣推進這個問題。" -#: website/public/blog/touhou-reconstruction/index.html:711 +#: website/public/blog/touhou-reconstruction/index.html:717 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This is why TH04 matters to the argument. A substantial platform change did " @@ -1037,7 +1037,7 @@ msgid "" "defined the problem; the workflow still gave us a way to solve it." msgstr "這就是 TH04 對這篇文章的意義。大幅的平臺變化,並沒有迫使我們重新發明一套工作方式。架構決定了問題,工作流程仍然提供瞭解決問題的方法。" -#: website/public/blog/touhou-reconstruction/index.html:717 +#: website/public/blog/touhou-reconstruction/index.html:723 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "For the 64-bit port, we can now examine the new implementation against " @@ -1051,7 +1051,7 @@ msgstr "做 64 位移植時,我們可以把新實現與 DOS 上已經還原的 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:722 +#: website/public/blog/touhou-reconstruction/index.html:728 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1059,19 +1059,19 @@ msgid "" "testing{ph1} · {ph2}64-bit port{ph3}. The port remains in development." msgstr "截至 2026 年 10 月 10 日:{ph0}DOS 重建與手工測試{ph1} · {ph2}64 位移植{ph3}。移植仍在開發中。" -#: website/public/blog/touhou-reconstruction/index.html:735 +#: website/public/blog/touhou-reconstruction/index.html:741 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "From exact code to readable code" msgstr "從精確還原到可讀原始碼" -#: website/public/blog/touhou-reconstruction/index.html:736 +#: website/public/blog/touhou-reconstruction/index.html:742 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:740 +#: website/public/blog/touhou-reconstruction/index.html:746 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "To me, assembly and raw offsets can feel like old friends. I realise this is" @@ -1083,7 +1083,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:746 +#: website/public/blog/touhou-reconstruction/index.html:752 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1095,7 +1095,7 @@ msgid "" msgstr "" "這就需要{ph0}語義重建{ph1}。一個還原欄位可能仍然只有偏移作為標識。我們追蹤遊戲如何使用它,直到能解釋其作用,再依據證據賦予合適的名稱和型別。推理過程和原始碼一起儲存,後來的人就能知道這個解釋從何而來。" -#: website/public/blog/touhou-reconstruction/index.html:754 +#: website/public/blog/touhou-reconstruction/index.html:760 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "This becomes especially important for a port. An absolute address tells me " @@ -1107,14 +1107,14 @@ msgstr "" "移植時,語義尤其重要。絕對地址能告訴我資料在舊程式中的位置,卻很難幫助 64 " "位實現決定哪個物件應當持有這份狀態。要正確遷移行為,就得還原舊記憶體訪問背後的關係。" -#: website/public/blog/touhou-reconstruction/index.html:761 +#: website/public/blog/touhou-reconstruction/index.html:767 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The order I now use is:" msgstr "我現在採用這樣的順序:" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:763 +#: website/public/blog/touhou-reconstruction/index.html:769 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1127,7 +1127,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:770 +#: website/public/blog/touhou-reconstruction/index.html:776 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1140,7 +1140,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:777 +#: website/public/blog/touhou-reconstruction/index.html:783 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1153,7 +1153,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:786 +#: website/public/blog/touhou-reconstruction/index.html:792 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1164,7 +1164,7 @@ msgstr "{ph0}再做現代平臺移植。{ph1}把已經確定的行為帶入新 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:793 +#: website/public/blog/touhou-reconstruction/index.html:799 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1176,7 +1176,7 @@ msgid "" msgstr "" "第二階段的可玩構建,在第三階段成為{ph0}第二套驗證基準{ph1}。第一套檢查修改後的原始碼是否仍然復現原版相關程式碼和資料;第二套檢查重建程式是否能構建,並在實際測試的路徑上保持正確行為。" -#: website/public/blog/touhou-reconstruction/index.html:801 +#: website/public/blog/touhou-reconstruction/index.html:807 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "They catch different mistakes. A type change can alter the generated " @@ -1186,7 +1186,7 @@ msgid "" msgstr "" "它們能發現不同型別的錯誤。型別修改可能改變生成的指令。狀態歸屬的修改,可能讓遊戲的兩部分各自使用一份狀態。保留兩套檢查,助手就能在繼續重構之前,針對具體的失敗展開調查。" -#: website/public/blog/touhou-reconstruction/index.html:808 +#: website/public/blog/touhou-reconstruction/index.html:814 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "A name needs evidence of its own. An exact comparison cannot tell us whether" @@ -1200,7 +1200,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:815 +#: website/public/blog/touhou-reconstruction/index.html:821 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1215,7 +1215,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:826 +#: website/public/blog/touhou-reconstruction/index.html:832 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1223,12 +1223,12 @@ msgid "" "makes the recovered knowledge usable.{ph1} A port can then build on both." msgstr "{ph0}精確重建提供基準,語義重建讓還原的知識可用。{ph1}移植隨後建立在兩者之上。" -#: website/public/blog/touhou-reconstruction/index.html:835 +#: website/public/blog/touhou-reconstruction/index.html:841 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "What makes this an industrial shift" msgstr "為什麼這是工業化的轉變" -#: website/public/blog/touhou-reconstruction/index.html:836 +#: website/public/blog/touhou-reconstruction/index.html:842 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "These projects changed where I spent my attention. Once agents could carry " @@ -1238,7 +1238,7 @@ msgid "" msgstr "" "這些專案改變了我投入注意力的地方。助手能自主推進大部分調查之後,改善它們的工作環境,就成了我最值得做的事情之一。一項工具的改進,可以幫助之後所有需要它的函式。" -#: website/public/blog/touhou-reconstruction/index.html:843 +#: website/public/blog/touhou-reconstruction/index.html:849 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Autonomy matters here. The useful next step often becomes clear only after a" @@ -1248,7 +1248,7 @@ msgid "" msgstr "" "自主性在這裡很重要。下一步該怎麼做,常常在實驗失敗後才清楚。助手需要足夠的自由,沿著結果探索意料之外的方向。如果每一步都要等我指定,大部分工作仍然綁在我的注意力上。" -#: website/public/blog/touhou-reconstruction/index.html:850 +#: website/public/blog/touhou-reconstruction/index.html:856 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "I expect the agent to make wrong hypotheses. What matters is whether we can " @@ -1258,7 +1258,7 @@ msgid "" msgstr "" "我預期助手會提出錯誤假設。關鍵是我們能否驗證它們,並從結果中學習。失敗的檢查應該幫助它理解錯誤,再次嘗試。我仍要判斷:累積的證據是否足以支援某個專案里程碑。" -#: website/public/blog/touhou-reconstruction/index.html:857 +#: website/public/blog/touhou-reconstruction/index.html:863 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "REA gives the agent access to analysis tools. A question about a function's " @@ -1270,7 +1270,7 @@ msgstr "" "REA " "讓助手能夠使用分析工具。調查某函式的呼叫方時,它可以直接繼續檢查那個呼叫方。重建專案提供編譯器和自己的對照檢查。助手用它們驗證提出的原始碼,看看解釋在哪些地方成立。" -#: website/public/blog/touhou-reconstruction/index.html:864 +#: website/public/blog/touhou-reconstruction/index.html:870 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The TH08 bug shows why those checks deserve engineering attention of their " @@ -1285,7 +1285,7 @@ msgstr "" #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:871 +#: website/public/blog/touhou-reconstruction/index.html:877 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1301,7 +1301,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:884 +#: website/public/blog/touhou-reconstruction/index.html:890 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1313,7 +1313,7 @@ msgid "" msgstr "" "{ph0}我們正處於這場工業化轉變的早期。{ph1}許多基礎設施還不成熟。助手推進工作的速度,可能超過原有檢查的承受能力,所以流程也要一起發展。共享工具出現缺陷時,要修好它,並重查受影響的結果。下一個專案才能繼承更可靠的工具。" -#: website/public/blog/touhou-reconstruction/index.html:894 +#: website/public/blog/touhou-reconstruction/index.html:900 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "There is also a practical limit to any one conversation. It will end before " @@ -1325,7 +1325,7 @@ msgstr "任何一段對話都有實際的長度限制。大型重建完成之前 #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:900 +#: website/public/blog/touhou-reconstruction/index.html:906 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1336,7 +1336,7 @@ msgstr "" "{ph0}Touhou Reconstruction " "Factory{ph1}正是為此而建立。它提供一種共用方式,讓專案把檢查和經驗傳遞下去。一個遊戲的工作,可以改善另一個遊戲的起點。" -#: website/public/blog/touhou-reconstruction/index.html:910 +#: website/public/blog/touhou-reconstruction/index.html:916 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That is what makes the industrial analogy meaningful to me. Experience " @@ -1344,12 +1344,12 @@ msgid "" "changes how much the next person—or the next agent—can get done." msgstr "這就是工業化比喻對我的意義:經驗開始進入別人也能使用的工具。改善工具,就能改變下一個人或下一個助手能完成多少工作。" -#: website/public/blog/touhou-reconstruction/index.html:918 +#: website/public/blog/touhou-reconstruction/index.html:924 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "The projects we can now consider" msgstr "現在值得嘗試的專案" -#: website/public/blog/touhou-reconstruction/index.html:919 +#: website/public/blog/touhou-reconstruction/index.html:925 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The pace matters because it changes the decision to begin. A game could be " @@ -1357,7 +1357,7 @@ msgid "" "than I could realistically give it. Many projects would stay ideas." msgstr "速度的意義在於,它改變了是否開始一個專案的決定。某個遊戲也許很值得逆向,卻需要我投入遠超現實所能承受的精力。很多專案因此一直停留在想法裡。" -#: website/public/blog/touhou-reconstruction/index.html:925 +#: website/public/blog/touhou-reconstruction/index.html:931 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "Now I can see a way to keep such a project moving through repeated " @@ -1371,7 +1371,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/touhou-reconstruction/index.html:932 +#: website/public/blog/touhou-reconstruction/index.html:938 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1379,7 +1379,7 @@ msgid "" "accumulated knowledge would let an agent work on this reliably?{ph1}" msgstr "現在看到一個陌生程式,我會問:{ph0}怎樣的工具訪問、反饋和知識積累,能讓助手可靠地推進這個專案?{ph1}" -#: website/public/blog/touhou-reconstruction/index.html:939 +#: website/public/blog/touhou-reconstruction/index.html:945 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "That question makes me consider projects I would previously have left alone." @@ -1387,12 +1387,12 @@ msgid "" " how far that can take us." msgstr "這個問題讓我考慮以前會放棄的專案。每個專案都能改善下一個專案的工作方式。我想繼續探索,這能帶我們走多遠。" -#: website/public/blog/touhou-reconstruction/index.html:947 +#: website/public/blog/touhou-reconstruction/index.html:953 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Project milestones and sources" msgstr "專案里程碑與來源" -#: website/public/blog/touhou-reconstruction/index.html:948 +#: website/public/blog/touhou-reconstruction/index.html:954 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" "The dates describe recorded project checkpoints, checked against public " @@ -1424,7 +1424,7 @@ msgstr "" #. {ph10}: #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:956 +#: website/public/blog/touhou-reconstruction/index.html:962 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1457,7 +1457,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md" #. > #. {ph11}: -#: website/public/blog/touhou-reconstruction/index.html:979 +#: website/public/blog/touhou-reconstruction/index.html:985 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1474,7 +1474,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md" #. > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1002 +#: website/public/blog/touhou-reconstruction/index.html:1008 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1497,7 +1497,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78" #. > #. {ph7}: -#: website/public/blog/touhou-reconstruction/index.html:1011 +#: website/public/blog/touhou-reconstruction/index.html:1017 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1518,7 +1518,7 @@ msgstr "" #. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic- #. reconstruction.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1025 +#: website/public/blog/touhou-reconstruction/index.html:1031 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1532,7 +1532,7 @@ msgstr "{ph0}語義重建:{ph1}{ph2}TH08 可讀性指南{ph3}和{ph4}Factory #. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts- #. steam-engine-indicator" > #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1037 +#: website/public/blog/touhou-reconstruction/index.html:1043 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1551,7 +1551,7 @@ msgstr "{ph0}工業史:{ph1}{ph2}英國科學博物館集團的蒸汽機示功 #. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge- #. base.md" > #. {ph5}: -#: website/public/blog/touhou-reconstruction/index.html:1046 +#: website/public/blog/touhou-reconstruction/index.html:1052 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "" @@ -1563,7 +1563,7 @@ msgstr "{ph0}方法:{ph1}Factory 的{ph2}助手自主性{ph3}與{ph4}跨遊戲 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/touhou-reconstruction/index.html:1061 +#: website/public/blog/touhou-reconstruction/index.html:1067 #, python-brace-format msgctxt "page:blog/touhou-reconstruction/index.html" msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}" @@ -1582,27 +1582,27 @@ msgid "" msgstr "" "N0zoM1z0 回顧從手工逆向到程式設計助手參與的東方遊戲重建,以及經驗如何在 TH08、TH095 和 PC-98 TH04 之間積累。" -#: website/public/blog/touhou-reconstruction/index.html:355 +#: website/public/blog/touhou-reconstruction/index.html:361 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Experience carried between projects" msgstr "在專案之間傳遞經驗" -#: website/public/blog/touhou-reconstruction/index.html:369 +#: website/public/blog/touhou-reconstruction/index.html:375 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/blog/touhou-reconstruction/index.html:384 +#: website/public/blog/touhou-reconstruction/index.html:390 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Touhou reconstruction essay" msgstr "東方遊戲重建隨筆" -#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/blog/touhou-reconstruction/index.html:1092 msgctxt "page:blog/touhou-reconstruction/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/examples/dino-lab/index.html:108 +#: website/public/examples/dino-lab/index.html:114 msgctxt "page:examples/dino-lab/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -1611,18 +1611,18 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:200 +#: website/public/examples/dino-lab/index.html:206 #, 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:203 +#: website/public/examples/dino-lab/index.html:209 msgctxt "page:examples/dino-lab/index.html" msgid "Inspect → rebuild → change" msgstr "檢查→重建→更改" -#: website/public/examples/dino-lab/index.html:204 +#: website/public/examples/dino-lab/index.html:210 msgctxt "page:examples/dino-lab/index.html" msgid "Rebuild the dinosaur’s speed rule." msgstr "重建恐龍的速度規則。" @@ -1631,7 +1631,7 @@ msgstr "重建恐龍的速度規則。" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:205 +#: website/public/examples/dino-lab/index.html:211 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1642,15 +1642,15 @@ msgstr "" "要重新建立遊戲的加速,首先找到控制其速度的規則。 {ph0} REA返回執行指令碼;{ph1} 我們用它的規則來構建這個迷你遊戲。 " "{ph2}速度可調。{ph3}" -#: website/public/examples/dino-lab/index.html:214 -#: website/public/examples/dino-lab/index.html:213 +#: website/public/examples/dino-lab/index.html:220 +#: website/public/examples/dino-lab/index.html:219 msgctxt "page:examples/dino-lab/index.html" msgid "On this page" msgstr "在本頁" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:216 +#: website/public/examples/dino-lab/index.html:222 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Play and change the speed{ph1}" @@ -1658,7 +1658,7 @@ msgstr "{ph0}播放和改變速度{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:217 +#: website/public/examples/dino-lab/index.html:223 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Read the recovered rule{ph1}" @@ -1666,7 +1666,7 @@ msgstr "{ph0}讀取恢復的規則{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:218 +#: website/public/examples/dino-lab/index.html:224 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -1674,18 +1674,18 @@ msgstr "{ph0}檢查重建{ph1}" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:219 +#: website/public/examples/dino-lab/index.html:225 #, 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:224 +#: website/public/examples/dino-lab/index.html:230 msgctxt "page:examples/dino-lab/index.html" msgid "Play and change the speed" msgstr "播放和改變速度" -#: website/public/examples/dino-lab/index.html:225 +#: website/public/examples/dino-lab/index.html:231 msgctxt "page:examples/dino-lab/index.html" msgid "" "Press Play, then jump over the cactus. Move the speed slider to try a slower" @@ -1693,54 +1693,54 @@ msgid "" "start at 6 and gradually accelerate again." msgstr "按播放,然後跳過仙人掌。 移動速度滑塊嘗試更慢或更快的遊戲;它切換到固定的速度。 選擇恢復的規則從6開始,然後再次逐漸加速。" -#: website/public/examples/dino-lab/index.html:231 +#: website/public/examples/dino-lab/index.html:237 msgctxt "page:examples/dino-lab/index.html" msgid "Play the reconstruction" msgstr "試玩重建版" -#: website/public/examples/dino-lab/index.html:263 +#: website/public/examples/dino-lab/index.html:269 msgctxt "page:examples/dino-lab/index.html" msgid "Play" msgstr "開始" -#: website/public/examples/dino-lab/index.html:266 +#: website/public/examples/dino-lab/index.html:272 msgctxt "page:examples/dino-lab/index.html" msgid "Jump ↑" msgstr "跳躍 ↑" -#: website/public/examples/dino-lab/index.html:267 +#: website/public/examples/dino-lab/index.html:273 msgctxt "page:examples/dino-lab/index.html" msgid "Restart" msgstr "重新開始" -#: website/public/examples/dino-lab/index.html:270 +#: website/public/examples/dino-lab/index.html:276 msgctxt "page:examples/dino-lab/index.html" msgid "Speed" msgstr "速度" -#: website/public/examples/dino-lab/index.html:280 +#: website/public/examples/dino-lab/index.html:286 msgctxt "page:examples/dino-lab/index.html" msgid "Use the recovered acceleration rule" msgstr "使用恢復的加速規則" -#: website/public/examples/dino-lab/index.html:284 +#: website/public/examples/dino-lab/index.html:290 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:287 +#: website/public/examples/dino-lab/index.html:293 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:292 +#: website/public/examples/dino-lab/index.html:298 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:300 +#: website/public/examples/dino-lab/index.html:306 msgctxt "page:examples/dino-lab/index.html" msgid "Read the script REA returned" msgstr "讀取指令碼REA返回" @@ -1748,7 +1748,7 @@ msgstr "讀取指令碼REA返回" #. {ph0}: #. {ph1}: #. {ph2}: index.js -#: website/public/examples/dino-lab/index.html:301 +#: website/public/examples/dino-lab/index.html:307 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1761,7 +1761,7 @@ msgstr "" #. {ph0}: SPEED: 6 #. {ph1}: ACCELERATION: 0.001 #. {ph2}: MAX_SPEED: 13 -#: website/public/examples/dino-lab/index.html:317 +#: website/public/examples/dino-lab/index.html:323 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1769,18 +1769,18 @@ msgid "" "update without a collision." msgstr "設定是 {ph0}, {ph1} 和 {ph2}. 遊戲在沒有碰撞的更新上執行此分支。" -#: website/public/examples/dino-lab/index.html:322 +#: website/public/examples/dino-lab/index.html:328 msgctxt "page:examples/dino-lab/index.html" msgid "Use the same rule in the new game" msgstr "在新遊戲中使用相同的規則" -#: website/public/examples/dino-lab/index.html:328 -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:334 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy" msgstr "複製" -#: website/public/examples/dino-lab/index.html:341 +#: website/public/examples/dino-lab/index.html:347 msgctxt "page:examples/dino-lab/index.html" msgid "" "The mini-game uses this function for automatic acceleration. Moving the " @@ -1795,18 +1795,18 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:347 +#: website/public/examples/dino-lab/index.html:353 #, 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:355 +#: website/public/examples/dino-lab/index.html:361 msgctxt "page:examples/dino-lab/index.html" msgid "Check the reconstruction" msgstr "檢查重建" -#: website/public/examples/dino-lab/index.html:356 +#: website/public/examples/dino-lab/index.html:362 msgctxt "page:examples/dino-lab/index.html" msgid "" "We called the original game’s update function with obstacles and automatic " @@ -1814,41 +1814,41 @@ msgid "" "recovered rule." msgstr "我們稱原來的遊戲的更新功能與障礙和自動排程禁用。 將這些記錄的速度與恢復規則的重播進行比較。" -#: website/public/examples/dino-lab/index.html:365 +#: website/public/examples/dino-lab/index.html:371 msgctxt "page:examples/dino-lab/index.html" msgid "Updates" msgstr "更新資料" -#: website/public/examples/dino-lab/index.html:366 +#: website/public/examples/dino-lab/index.html:372 msgctxt "page:examples/dino-lab/index.html" msgid "Original game" msgstr "原創遊戲" -#: website/public/examples/dino-lab/index.html:367 +#: website/public/examples/dino-lab/index.html:373 msgctxt "page:examples/dino-lab/index.html" msgid "Reconstructed rule" msgstr "重建規則" -#: website/public/examples/dino-lab/index.html:394 +#: website/public/examples/dino-lab/index.html:400 msgctxt "page:examples/dino-lab/index.html" msgid "Run the speed check" msgstr "執行速度檢查" -#: website/public/examples/dino-lab/index.html:397 +#: website/public/examples/dino-lab/index.html:403 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:403 +#: website/public/examples/dino-lab/index.html:409 msgctxt "page:examples/dino-lab/index.html" msgid "Try the analysis yourself" msgstr "自己試試分析" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:405 +#: website/public/examples/dino-lab/index.html:411 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}Set up REA{ph1} with your coding agent." @@ -1857,14 +1857,14 @@ msgstr "{ph0}設立 REA{ph1} 用你的程式設計助手。" #. {ph0}: #. {ph1}: #. {ph2}: https://wayou.github.io/t-rex-runner/ -#: website/public/examples/dino-lab/index.html:409 +#: website/public/examples/dino-lab/index.html:415 #, 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:416 +#: website/public/examples/dino-lab/index.html:422 msgctxt "page:examples/dino-lab/index.html" msgid "" "Give your agent the page URL and local debugging endpoint, then copy this " @@ -1879,7 +1879,7 @@ msgstr "為你的程式設計助手提供頁面URL和本地除錯端點,然後 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/examples/dino-lab/index.html:423 +#: website/public/examples/dino-lab/index.html:429 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -1891,7 +1891,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的程式設計助手" #. {ph3}: #. {ph4}: -#: website/public/examples/dino-lab/index.html:436 +#: website/public/examples/dino-lab/index.html:442 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1904,7 +1904,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/examples/dino-lab/index.html:445 +#: website/public/examples/dino-lab/index.html:451 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1917,7 +1917,7 @@ msgstr "要求跟進: {ph0}\"跳躍高度在哪裡計算? 在新版本中新 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/examples/dino-lab/index.html:452 +#: website/public/examples/dino-lab/index.html:458 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "" @@ -1940,64 +1940,64 @@ msgid "" "speed and play." msgstr "閱讀恐龍游戲的速度規則與REA,重建它,然後改變速度和發揮。" -#: website/public/examples/dino-lab/index.html:222 +#: website/public/examples/dino-lab/index.html:228 msgctxt "page:examples/dino-lab/index.html" msgid "Dinosaur speed reconstruction" msgstr "恐龍速度重建" -#: website/public/examples/dino-lab/index.html:253 +#: website/public/examples/dino-lab/index.html:259 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:328 +#: website/public/examples/dino-lab/index.html:334 msgctxt "page:examples/dino-lab/index.html" msgid "Copy reconstructed speed rule" msgstr "複製重建速度規則" -#: website/public/examples/dino-lab/index.html:427 +#: website/public/examples/dino-lab/index.html:433 msgctxt "page:examples/dino-lab/index.html" msgid "Copy dinosaur analysis prompt" msgstr "複製恐龍分析提示" -#: website/public/examples/dino-lab/index.html:481 +#: website/public/examples/dino-lab/index.html:487 msgctxt "page:examples/dino-lab/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/faq/index.html:107 +#: website/public/faq/index.html:113 msgctxt "page:faq/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:199 +#: website/public/faq/index.html:205 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Home{ph1} / FAQ" msgstr "{ph0}首頁{ph1} / FAQ" -#: website/public/faq/index.html:200 +#: website/public/faq/index.html:206 msgctxt "page:faq/index.html" msgid "REA FAQ." msgstr "REA 常見問題。" -#: website/public/faq/index.html:201 +#: website/public/faq/index.html:207 msgctxt "page:faq/index.html" msgid "Setup, updates, analysis and troubleshooting." msgstr "安裝、更新、分析和故障排查。" -#: website/public/faq/index.html:205 +#: website/public/faq/index.html:211 msgctxt "page:faq/index.html" msgid "Topics" msgstr "主題" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:207 +#: website/public/faq/index.html:213 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Setup and updates{ph1}" @@ -2005,7 +2005,7 @@ msgstr "{ph0}安裝與更新{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:208 +#: website/public/faq/index.html:214 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Analysis{ph1}" @@ -2013,7 +2013,7 @@ msgstr "{ph0}分析{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:209 +#: website/public/faq/index.html:215 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Troubleshooting{ph1}" @@ -2021,31 +2021,31 @@ msgstr "{ph0}故障排除{ph1}" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:210 +#: website/public/faq/index.html:216 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Data and sharing{ph1}" msgstr "{ph0}資料與分享{ph1}" -#: website/public/faq/index.html:219 +#: website/public/faq/index.html:225 msgctxt "page:faq/index.html" msgid "Setup and updates" msgstr "安裝與更新" -#: website/public/faq/index.html:222 +#: website/public/faq/index.html:228 msgctxt "page:faq/index.html" msgid "How do I install REA?" msgstr "如何安裝 REA?" -#: website/public/faq/index.html:230 +#: website/public/faq/index.html:236 msgctxt "page:faq/index.html" msgid "Terminal · agent setup" msgstr "終端 · 配置程式設計助手" -#: website/public/faq/index.html:231 website/public/faq/index.html:272 -#: website/public/faq/index.html:290 website/public/faq/index.html:374 -#: website/public/faq/index.html:421 website/public/faq/index.html:461 -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:237 website/public/faq/index.html:278 +#: website/public/faq/index.html:296 website/public/faq/index.html:380 +#: website/public/faq/index.html:427 website/public/faq/index.html:467 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy" msgstr "複製" @@ -2053,7 +2053,7 @@ msgstr "複製" # Reviewed for readable setup and analysis terminology. #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:242 +#: website/public/faq/index.html:248 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2065,12 +2065,12 @@ msgstr "" "setup 會註冊 REA 的 MCP " "連線,並安裝配套的調查技能。完成後重啟助手,再提供目標路徑和問題。{ph0}檢視安裝指南{ph1},瞭解前置條件和第一次分析的步驟。" -#: website/public/faq/index.html:251 +#: website/public/faq/index.html:257 msgctxt "page:faq/index.html" msgid "Which coding agents can use REA?" msgstr "哪些程式設計助手能使用 REA?" -#: website/public/faq/index.html:252 +#: website/public/faq/index.html:258 msgctxt "page:faq/index.html" msgid "" "Any agent that supports local MCP servers. Setup includes Claude Code, " @@ -2084,31 +2084,31 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:259 +#: website/public/faq/index.html:265 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Connect your coding agent{ph1}." msgstr "{ph0}連線程式設計助手{ph1}。" -#: website/public/faq/index.html:264 +#: website/public/faq/index.html:270 msgctxt "page:faq/index.html" msgid "How do I update REA?" msgstr "如何更新 REA?" -#: website/public/faq/index.html:265 +#: website/public/faq/index.html:271 msgctxt "page:faq/index.html" msgid "" "REA releases frequently, including bug fixes. If you installed the CLI with " "npm:" msgstr "REA 更新很頻繁,也會持續修復 bug。如果你透過 npm 安裝了 CLI:" -#: website/public/faq/index.html:271 +#: website/public/faq/index.html:277 msgctxt "page:faq/index.html" msgid "Terminal · installed CLI" msgstr "終端 · 已安裝的 CLI" #. {ph0}: npx -#: website/public/faq/index.html:283 +#: website/public/faq/index.html:289 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2116,14 +2116,14 @@ msgid "" "agent through {ph0}, run:" msgstr "更新後,按照輸出中的命令重新整理配置。如果之前透過 {ph0} 配置助手,執行:" -#: website/public/faq/index.html:289 +#: website/public/faq/index.html:295 msgctxt "page:faq/index.html" msgid "Terminal · refresh agent setup" msgstr "終端 · 重新整理助手配置" # Reviewed for readable setup and analysis terminology. #. {ph0}: npx -y rea-agents@latest -#: website/public/faq/index.html:301 +#: website/public/faq/index.html:307 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2134,14 +2134,14 @@ msgstr "" "檢查變更後,重啟程式設計助手。REA 的連線配置指定了包版本,重新執行 setup 才會讓助手使用新版本。臨時執行 CLI 命令時,在 {ph0} " "後面接具體命令即可。" -#: website/public/faq/index.html:309 +#: website/public/faq/index.html:315 msgctxt "page:faq/index.html" msgid "Is installing the skill from skills.sh enough?" msgstr "只從 skills.sh 安裝技能就夠了嗎?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:312 +#: website/public/faq/index.html:318 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2151,24 +2151,24 @@ msgid "" msgstr "" "技能告訴助手如何開展調查。還需要執行 {ph0}REA setup{ph1},連線 MCP 伺服器並安裝配套技能。隨後重啟助手,它才能呼叫工具。" -#: website/public/faq/index.html:323 +#: website/public/faq/index.html:329 msgctxt "page:faq/index.html" msgid "Analysis" msgstr "分析" -#: website/public/faq/index.html:326 +#: website/public/faq/index.html:332 msgctxt "page:faq/index.html" msgid "What can I analyze with REA?" msgstr "REA 可以分析什麼?" -#: website/public/faq/index.html:327 +#: website/public/faq/index.html:333 msgctxt "page:faq/index.html" msgid "Start with the kind of software you have:" msgstr "根據手裡的軟體型別選擇:" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:329 +#: website/public/faq/index.html:335 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2178,7 +2178,7 @@ msgstr "{ph0}原生可執行檔案和庫{ph1}:函式、彙編、虛擬碼和 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:334 +#: website/public/faq/index.html:340 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2188,7 +2188,7 @@ msgstr "{ph0}JavaScript 和 Electron 應用{ph1}:模組、匯入、IPC 和原 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:339 +#: website/public/faq/index.html:345 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations." @@ -2196,7 +2196,7 @@ msgstr "{ph0}瀏覽器頁面{ph1}:指令碼、請求和執行時觀察。" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:344 +#: website/public/faq/index.html:350 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2205,12 +2205,12 @@ msgid "" "investigations." msgstr "REA 也提供託管程式集、Android APK、韌體和打包資源的分析流程。{ph0}檢視案例{ph1},瞭解完整的調查過程。" -#: website/public/faq/index.html:352 +#: website/public/faq/index.html:358 msgctxt "page:faq/index.html" msgid "Do I need Hopper, Ghidra or IDA?" msgstr "需要 Hopper、Ghidra 或 IDA 嗎?" -#: website/public/faq/index.html:353 +#: website/public/faq/index.html:359 msgctxt "page:faq/index.html" msgid "" "Deep native analysis uses one of them. Static JavaScript and .NET inspection" @@ -2219,7 +2219,7 @@ msgstr "深度原生分析需要其中一個工具。靜態 JavaScript 和 .NET #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:358 +#: website/public/faq/index.html:364 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2230,26 +2230,26 @@ msgstr "" "連線已有的 Ghidra 或 IDA 安裝,或讓 setup 檢測 Hopper " "並提出安裝計劃。可用的分析後端取決於你的系統和分析目標。{ph0}配置原生分析{ph1}。" -#: website/public/faq/index.html:366 +#: website/public/faq/index.html:372 msgctxt "page:faq/index.html" msgid "Can I use REA without a coding agent?" msgstr "不用程式設計助手,也能用 REA 嗎?" -#: website/public/faq/index.html:367 +#: website/public/faq/index.html:373 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:373 +#: website/public/faq/index.html:379 msgctxt "page:faq/index.html" msgid "Terminal · static application analysis" msgstr "終端 · 靜態應用分析" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:386 +#: website/public/faq/index.html:392 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2258,13 +2258,13 @@ msgid "" msgstr "把路徑換成解包後的應用目錄或 ASAR 檔案。{ph0}檢視 CLI 的安裝方式{ph1}。" # Reviewed for readable setup and analysis terminology. -#: website/public/faq/index.html:393 +#: website/public/faq/index.html:399 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:394 +#: website/public/faq/index.html:400 msgctxt "page:faq/index.html" msgid "" "Native analysis returns assembly and pseudocode, with calls, references and " @@ -2276,7 +2276,7 @@ msgstr "原生程式分析返回彙編、虛擬碼、函式呼叫、引用和相 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:399 +#: website/public/faq/index.html:405 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2286,12 +2286,12 @@ msgid "" msgstr "" "助手根據這些結果解釋行為,或編寫實現並測試。{ph0}DX-Ball 計算規則{ph1}和{ph2}CTF flag 檢查器{ph3}展示了這個過程。" -#: website/public/faq/index.html:410 +#: website/public/faq/index.html:416 msgctxt "page:faq/index.html" msgid "What should I ask my agent?" msgstr "應該向助手提什麼問題?" -#: website/public/faq/index.html:411 +#: website/public/faq/index.html:417 msgctxt "page:faq/index.html" msgid "" "Give it a local target and one behavior to investigate. For a JavaScript or " @@ -2306,7 +2306,7 @@ msgstr "提供一個本地目標,以及一個想調查的行為。比如 JavaS #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/faq/index.html:417 +#: website/public/faq/index.html:423 #, python-brace-format msgctxt "page:faq/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -2314,7 +2314,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的程式設計助手" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:440 +#: website/public/faq/index.html:446 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2322,18 +2322,18 @@ msgid "" "native, Electron and browser examples." msgstr "把路徑換成自己的目標。{ph0}指南{ph1}提供了原生、Electron 和瀏覽器示例的 prompt。" -#: website/public/faq/index.html:450 +#: website/public/faq/index.html:456 msgctxt "page:faq/index.html" msgid "Troubleshooting" msgstr "故障排除" -#: website/public/faq/index.html:453 +#: website/public/faq/index.html:459 msgctxt "page:faq/index.html" msgid "Why can't my agent see the REA tools?" msgstr "為什麼助手看不到 REA 工具?" #. {ph0}: doctor -#: website/public/faq/index.html:454 +#: website/public/faq/index.html:460 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2341,7 +2341,7 @@ msgid "" " {ph0}; for Codex:" msgstr "安裝後重啟或重新連線助手。用 {ph0} 檢查 REA 註冊情況。以 Codex 為例:" -#: website/public/faq/index.html:460 +#: website/public/faq/index.html:466 msgctxt "page:faq/index.html" msgid "Terminal · check one client" msgstr "終端 · 檢查一個客戶端" @@ -2349,7 +2349,7 @@ msgstr "終端 · 檢查一個客戶端" #. {ph0}: codex #. {ph1}: claude_code #. {ph2}: cursor -#: website/public/faq/index.html:472 +#: website/public/faq/index.html:478 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2357,14 +2357,14 @@ msgid "" "shows a missing or stale registration, run setup for that client:" msgstr "把 {ph0} 換成客戶端 ID,例如 {ph1} 或 {ph2}。如果報告顯示註冊缺失或過期,為這個客戶端執行 setup:" -#: website/public/faq/index.html:480 +#: website/public/faq/index.html:486 msgctxt "page:faq/index.html" msgid "Terminal · repair one client's setup" msgstr "終端 · 修復一個客戶端的配置" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:492 +#: website/public/faq/index.html:498 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2373,14 +2373,14 @@ msgid "" "diagnostics{ph1}." msgstr "確認計劃後重啟客戶端。如果註冊正常但工具仍未出現,檢查客戶端的 MCP 連線錯誤。{ph0}檢視更多配置診斷{ph1}。" -#: website/public/faq/index.html:500 +#: website/public/faq/index.html:506 msgctxt "page:faq/index.html" msgid "Do I need to start Hopper first?" msgstr "需要先啟動 Hopper 嗎?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:501 +#: website/public/faq/index.html:507 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2391,14 +2391,14 @@ msgstr "" "REA 會在操作需要時啟動 Hopper。在 macOS " "上,首次使用時先完成演示模式或許可證啟用的選擇,再進行無人值守分析。{ph0}檢視原生分析配置{ph1}。" -#: website/public/faq/index.html:510 +#: website/public/faq/index.html:516 msgctxt "page:faq/index.html" msgid "What should I do if I hit a bug?" msgstr "遇到 bug 怎麼辦?" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:511 +#: website/public/faq/index.html:517 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2408,7 +2408,7 @@ msgstr "先{ph0}更新 REA{ph1},重啟助手,再試一次相同任務。新 #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:515 +#: website/public/faq/index.html:521 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2418,24 +2418,24 @@ msgid "" msgstr "" "如果問題仍然存在,{ph0}提交 issue{ph1},附上 REA 版本、作業系統、目標型別、復現步驟和錯誤輸出。涉及原生分析時,也寫明分析後端。" -#: website/public/faq/index.html:529 +#: website/public/faq/index.html:535 msgctxt "page:faq/index.html" msgid "Data and sharing" msgstr "資料與分享" -#: website/public/faq/index.html:532 +#: website/public/faq/index.html:538 msgctxt "page:faq/index.html" msgid "Does REA upload my app?" msgstr "REA 會上傳我的應用嗎?" -#: website/public/faq/index.html:533 +#: website/public/faq/index.html:539 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:540 +#: website/public/faq/index.html:546 msgctxt "page:faq/index.html" msgid "How can I share an example or contribute?" msgstr "如何分享案例或參與貢獻?" @@ -2444,7 +2444,7 @@ msgstr "如何分享案例或參與貢獻?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/faq/index.html:541 +#: website/public/faq/index.html:547 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2458,7 +2458,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/faq/index.html:553 +#: website/public/faq/index.html:559 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -2478,91 +2478,91 @@ msgid "" "coding agents, troubleshooting and sharing examples." msgstr "解答 REA 的常見問題:安裝、更新、分析工具、程式設計助手、故障排查和分享案例。" -#: website/public/faq/index.html:204 +#: website/public/faq/index.html:210 msgctxt "page:faq/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/faq/index.html:213 +#: website/public/faq/index.html:219 msgctxt "page:faq/index.html" msgid "Frequently asked questions about REA" msgstr "REA 常見問題" -#: website/public/faq/index.html:231 +#: website/public/faq/index.html:237 msgctxt "page:faq/index.html" msgid "Copy REA setup command" msgstr "複製REA設定命令" -#: website/public/faq/index.html:272 +#: website/public/faq/index.html:278 msgctxt "page:faq/index.html" msgid "Copy REA update command" msgstr "複製REA更新命令" -#: website/public/faq/index.html:290 +#: website/public/faq/index.html:296 msgctxt "page:faq/index.html" msgid "Copy agent setup refresh command" msgstr "複製程式設計助手設定重新整理命令" -#: website/public/faq/index.html:374 +#: website/public/faq/index.html:380 msgctxt "page:faq/index.html" msgid "Copy REA CLI analysis command" msgstr "複製REA CLI分析命令" -#: website/public/faq/index.html:421 +#: website/public/faq/index.html:427 msgctxt "page:faq/index.html" msgid "Copy example analysis prompt" msgstr "複製示例分析提示" -#: website/public/faq/index.html:461 +#: website/public/faq/index.html:467 msgctxt "page:faq/index.html" msgid "Copy client diagnosis command" msgstr "複製客戶端診斷命令" -#: website/public/faq/index.html:481 +#: website/public/faq/index.html:487 msgctxt "page:faq/index.html" msgid "Copy scoped setup command" msgstr "複製作用域設定命令" -#: website/public/faq/index.html:579 +#: website/public/faq/index.html:585 msgctxt "page:faq/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/first-investigation/index.html:107 +#: website/public/first-investigation/index.html:113 msgctxt "page:first-investigation/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:199 +#: website/public/first-investigation/index.html:205 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Home{ph1} / Your first investigation" msgstr "{ph0}首頁{ph1} / 第一次調查" #. {ph0}:
-#: website/public/first-investigation/index.html:202 +#: website/public/first-investigation/index.html:208 #, 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:203 +#: website/public/first-investigation/index.html:209 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 檢查一個小應用,追蹤 Export notes 按鈕,再親自驗證一個細節。" -#: website/public/first-investigation/index.html:214 +#: website/public/first-investigation/index.html:220 msgctxt "page:first-investigation/index.html" msgid "In this exercise" msgstr "在這個練習中" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:216 +#: website/public/first-investigation/index.html:222 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}1. Set up{ph1}" @@ -2570,7 +2570,7 @@ msgstr "{ph0}1. 配置{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:217 +#: website/public/first-investigation/index.html:223 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}2. Ask about export{ph1}" @@ -2578,7 +2578,7 @@ msgstr "{ph0}2. 詢問匯出過程{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:218 +#: website/public/first-investigation/index.html:224 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}3. Follow the answer{ph1}" @@ -2586,7 +2586,7 @@ msgstr "{ph0}3. 追蹤回答{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:219 +#: website/public/first-investigation/index.html:225 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}4. Check a prediction{ph1}" @@ -2594,13 +2594,13 @@ msgstr "{ph0}4. 檢查預測{ph1}" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:220 +#: website/public/first-investigation/index.html:226 #, 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:225 +#: website/public/first-investigation/index.html:231 msgctxt "page:first-investigation/index.html" msgid "1. Connect your agent to REA" msgstr "1. 把助手連線到 REA" @@ -2613,44 +2613,44 @@ msgstr "1. 把助手連線到 REA" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:234 -#: website/public/first-investigation/index.html:284 -#: website/public/first-investigation/index.html:406 +#: website/public/first-investigation/index.html:240 +#: website/public/first-investigation/index.html:290 +#: website/public/first-investigation/index.html:412 #, 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:239 -#: website/public/first-investigation/index.html:261 -#: website/public/first-investigation/index.html:289 -#: website/public/first-investigation/index.html:411 -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:245 +#: website/public/first-investigation/index.html:267 +#: website/public/first-investigation/index.html:295 +#: website/public/first-investigation/index.html:417 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy" msgstr "複製" -#: website/public/first-investigation/index.html:258 +#: website/public/first-investigation/index.html:264 msgctxt "page:first-investigation/index.html" msgid "Or run this command in your terminal:" msgstr "或者在終端中執行此命令:" -#: website/public/first-investigation/index.html:270 +#: website/public/first-investigation/index.html:276 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:276 +#: website/public/first-investigation/index.html:282 msgctxt "page:first-investigation/index.html" msgid "2. Ask where the CSV is written" msgstr "2. 問清 CSV 寫到哪裡" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:277 +#: website/public/first-investigation/index.html:283 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2661,7 +2661,7 @@ msgstr "" "示例是一個包含六個檔案的 Electron 應用,帶有{ph0}Export notes(匯出筆記){ph1}按鈕。助手無需安裝或啟動 Electron" " 就能檢查程式碼。" -#: website/public/first-investigation/index.html:312 +#: website/public/first-investigation/index.html:318 msgctxt "page:first-investigation/index.html" msgid "" "Your agent downloads the files and gives the unpacked folder to REA for " @@ -2671,14 +2671,14 @@ msgstr "助手會下載並解壓檔案,再把目錄交給 REA 檢查。" #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:316 +#: website/public/first-investigation/index.html:322 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下載示例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:324 +#: website/public/first-investigation/index.html:330 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2686,12 +2686,12 @@ msgid "" " path to the {ph0} folder and the same export question." msgstr "如果助手不能下載檔案,你也可以手動解壓。把 {ph0} 資料夾的路徑交給它,再問同一個匯出問題。" -#: website/public/first-investigation/index.html:331 +#: website/public/first-investigation/index.html:337 msgctxt "page:first-investigation/index.html" msgid "3. Follow the answer back to the code" msgstr "3. 從回答追蹤到程式碼" -#: website/public/first-investigation/index.html:332 +#: website/public/first-investigation/index.html:338 msgctxt "page:first-investigation/index.html" msgid "Look for a short explanation with file and line references:" msgstr "尋找帶檔案和行號的簡短解釋:" @@ -2700,7 +2700,7 @@ msgstr "尋找帶檔案和行號的簡短解釋:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/first-investigation/index.html:334 +#: website/public/first-investigation/index.html:340 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2709,19 +2709,19 @@ msgid "" "{ph3}." msgstr "按鈕傳送 {ph0} 訊息。主程序把筆記轉換為 CSV,並將 {ph1} 寫到使用者的下載資料夾。列名為 {ph2} 和 {ph3}。" -#: website/public/first-investigation/index.html:342 +#: website/public/first-investigation/index.html:348 msgctxt "page:first-investigation/index.html" msgid "From the button to the file writer" msgstr "從按鈕到檔案寫入" -#: website/public/first-investigation/index.html:371 +#: website/public/first-investigation/index.html:377 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:387 +#: website/public/first-investigation/index.html:393 msgctxt "page:first-investigation/index.html" msgid "" "The file path, formatter and write call are together in this handler. Ask " @@ -2730,54 +2730,54 @@ msgstr "檔案路徑、格式化函式和寫入呼叫都在這個處理函式中 #. {ph0}: #. {ph1}: -#: website/public/first-investigation/index.html:392 +#: website/public/first-investigation/index.html:398 #, 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:399 +#: website/public/first-investigation/index.html:405 msgctxt "page:first-investigation/index.html" msgid "4. Check a prediction" msgstr "4. 檢查預測" -#: website/public/first-investigation/index.html:400 +#: website/public/first-investigation/index.html:406 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:444 +#: website/public/first-investigation/index.html:450 msgctxt "page:first-investigation/index.html" msgid "Run the check yourself" msgstr "自己檢查一下" #. {ph0}: notes-example -#: website/public/first-investigation/index.html:445 +#: website/public/first-investigation/index.html:451 #, 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:486 +#: website/public/first-investigation/index.html:492 msgctxt "page:first-investigation/index.html" msgid "5. Ask another question" msgstr "5. 再問一個問題" -#: website/public/first-investigation/index.html:487 +#: website/public/first-investigation/index.html:493 msgctxt "page:first-investigation/index.html" msgid "Try a follow-up in the same conversation:" msgstr "在同一段對話中繼續提問:" -#: website/public/first-investigation/index.html:489 +#: website/public/first-investigation/index.html:495 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:494 +#: website/public/first-investigation/index.html:500 msgctxt "page:first-investigation/index.html" msgid "" "Or give your agent an app of your own and ask about one button, file or " @@ -2788,7 +2788,7 @@ msgstr "也可以提供自己的應用,詢問其中一個按鈕、檔案或行 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:499 +#: website/public/first-investigation/index.html:505 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2800,7 +2800,7 @@ msgstr "{ph0}Notion 如何複製文字和 HTML{ph1}{ph2}追蹤打包 Electron #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:505 +#: website/public/first-investigation/index.html:511 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2812,7 +2812,7 @@ msgstr "{ph0}DX-Ball 如何計算聲音左右位置{ph1}{ph2}檢視原始指令 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/first-investigation/index.html:513 +#: website/public/first-investigation/index.html:519 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -2832,119 +2832,119 @@ msgid "" "go, and check the CSV formatter with a sample title." msgstr "用小型 Notes 應用嘗試 REA。配置助手,詢問匯出的筆記寫到哪裡,再用一個示例標題驗證 CSV 格式化函式。" -#: website/public/first-investigation/index.html:213 +#: website/public/first-investigation/index.html:219 msgctxt "page:first-investigation/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/first-investigation/index.html:223 +#: website/public/first-investigation/index.html:229 msgctxt "page:first-investigation/index.html" msgid "Your first REA investigation" msgstr "你的第一次REA調查" -#: website/public/first-investigation/index.html:239 +#: website/public/first-investigation/index.html:245 msgctxt "page:first-investigation/index.html" msgid "Copy REA installation prompt" msgstr "複製REA安裝提示" -#: website/public/first-investigation/index.html:261 +#: website/public/first-investigation/index.html:267 msgctxt "page:first-investigation/index.html" msgid "Copy setup command" msgstr "複製安裝命令" -#: website/public/first-investigation/index.html:289 +#: website/public/first-investigation/index.html:295 msgctxt "page:first-investigation/index.html" msgid "Copy Notes investigation prompt" msgstr "複製筆記調查提示" -#: website/public/first-investigation/index.html:411 +#: website/public/first-investigation/index.html:417 msgctxt "page:first-investigation/index.html" msgid "Copy CSV check prompt" msgstr "複製CSV檢查提示" -#: website/public/first-investigation/index.html:452 -#: website/public/first-investigation/index.html:469 +#: website/public/first-investigation/index.html:458 +#: website/public/first-investigation/index.html:475 msgctxt "page:first-investigation/index.html" msgid "Copy formatter check command" msgstr "複製格式化程式檢查命令" -#: website/public/first-investigation/index.html:540 +#: website/public/first-investigation/index.html:546 msgctxt "page:first-investigation/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/get-started/index.html:107 +#: website/public/get-started/index.html:113 msgctxt "page:get-started/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:199 +#: website/public/get-started/index.html:205 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Home{ph1} / Get started" msgstr "{ph0}首頁{ph1} / 開始使用" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. -#: website/public/get-started/index.html:200 +#: website/public/get-started/index.html:206 msgctxt "page:get-started/index.html" msgid "Set up REA." msgstr "設定 REA。" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. -#: website/public/get-started/index.html:265 +#: website/public/get-started/index.html:271 msgctxt "page:get-started/index.html" msgid "Open a terminal and check:" msgstr "開啟終端機並檢查:" -#: website/public/get-started/index.html:268 +#: website/public/get-started/index.html:274 msgctxt "page:get-started/index.html" msgid "Terminal" msgstr "終端機" -#: website/public/get-started/index.html:269 -#: website/public/get-started/index.html:292 -#: website/public/get-started/index.html:322 -#: website/public/get-started/index.html:347 -#: website/public/get-started/index.html:370 -#: website/public/get-started/index.html:385 -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:774 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:895 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1565 -#: website/public/get-started/index.html:1624 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1708 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:275 +#: website/public/get-started/index.html:298 +#: website/public/get-started/index.html:328 +#: website/public/get-started/index.html:353 +#: website/public/get-started/index.html:376 +#: website/public/get-started/index.html:391 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:780 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:901 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1571 +#: website/public/get-started/index.html:1630 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1714 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy" msgstr "複製" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. #. {ph0}: node -v -#: website/public/get-started/index.html:303 +#: website/public/get-started/index.html:309 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2955,7 +2955,7 @@ msgstr "如果要求你接受條款,請輸入 Y。關閉 PowerShell 後重新 # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. #. {ph0}: nodejs #. {ph1}: node -v -#: website/public/get-started/index.html:398 +#: website/public/get-started/index.html:404 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2966,7 +2966,7 @@ msgstr "發行版提供的 {ph0} 套件通常早於 22.23.4。如果使用它, # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:404 +#: website/public/get-started/index.html:410 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -2976,7 +2976,7 @@ msgstr "偏好一般的安裝程式?到 {ph0}nodejs.org{ph1} 下載 LTS 版本 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:219 +#: website/public/get-started/index.html:225 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Use the CLI{ph1}" @@ -2984,7 +2984,7 @@ msgstr "{ph0}使用CLI {ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:220 +#: website/public/get-started/index.html:226 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Getting help{ph1}" @@ -2998,18 +2998,18 @@ msgstr "{ph0}尋求幫助{ph1}" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:769 +#: website/public/get-started/index.html:775 #, 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:795 +#: website/public/get-started/index.html:801 msgctxt "page:get-started/index.html" msgid "Or run setup yourself" msgstr "也可以自己執行 setup" -#: website/public/get-started/index.html:231 +#: website/public/get-started/index.html:237 msgctxt "page:get-started/index.html" msgid "How do I open a terminal?" msgstr "怎麼開啟終端?" @@ -3019,7 +3019,7 @@ msgstr "怎麼開啟終端?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:233 +#: website/public/get-started/index.html:239 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3033,7 +3033,7 @@ msgstr "{ph0}Windows:{ph1}開啟「開始」功能表,輸入 {ph2}PowerShell #. {ph3}: Space #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:237 +#: website/public/get-started/index.html:243 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3045,7 +3045,7 @@ msgstr "{ph0}macOS:{ph1}按 {ph2} {ph3},輸入 {ph4}Terminal{ph5},按 Ente #. {ph2}: Ctrl #. {ph3}: Alt #. {ph4}: T -#: website/public/get-started/index.html:241 +#: website/public/get-started/index.html:247 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops." @@ -3058,7 +3058,7 @@ msgstr "{ph0}Linux:{ph1}多數桌面環境可以按 {ph2} {ph3} {ph4}。" #. {ph4}: Ctrl #. {ph5}: Shift #. {ph6}: V -#: website/public/get-started/index.html:246 +#: website/public/get-started/index.html:252 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3068,7 +3068,7 @@ msgstr "" "用 {ph0} {ph1} 貼上命令(macOS:{ph2} {ph3};Linux 終端:{ph4} {ph5} {ph6}),再按 Enter。" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. -#: website/public/get-started/index.html:831 +#: website/public/get-started/index.html:837 msgctxt "page:get-started/index.html" msgid "" "Choose your client and review the setup plan. REA adds its MCP connection " @@ -3076,7 +3076,7 @@ msgid "" "configuration. It asks before applying the changes." msgstr "選擇你的用戶端並檢查設定計畫。REA 會加入它的 MCP 連線和對應的調查 skill,並備份現有的設定。套用變更前,它會先詢問你。" -#: website/public/get-started/index.html:845 +#: website/public/get-started/index.html:851 msgctxt "page:get-started/index.html" msgid "How do I restart my client?" msgstr "如何重啟客戶端?" @@ -3085,7 +3085,7 @@ msgstr "如何重啟客戶端?" #. {ph1}: #. {ph2}: ⌘ #. {ph3}: Q -#: website/public/get-started/index.html:846 +#: website/public/get-started/index.html:852 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3099,7 +3099,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:853 +#: website/public/get-started/index.html:859 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3107,7 +3107,7 @@ msgid "" " and start it again." msgstr "{ph0}終端助手{ph1}(Claude Code、Codex、Gemini CLI):退出當前會話,再啟動一次。" -#: website/public/get-started/index.html:957 +#: website/public/get-started/index.html:963 msgctxt "page:get-started/index.html" msgid "How do I get a folder's full path?" msgstr "怎麼取得資料夾的完整路徑?" @@ -3116,7 +3116,7 @@ msgstr "怎麼取得資料夾的完整路徑?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:959 +#: website/public/get-started/index.html:965 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3130,7 +3130,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:964 +#: website/public/get-started/index.html:970 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3140,7 +3140,7 @@ msgstr "{ph0}macOS:{ph1}在 Finder 中右鍵資料夾,按住 Option,選擇 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:968 +#: website/public/get-started/index.html:974 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3148,27 +3148,27 @@ msgid "" "appears." msgstr "{ph0}所有系統:{ph1}把資料夾拖進終端視窗,也能顯示路徑。" -#: website/public/get-started/index.html:973 -#: website/public/get-started/index.html:1731 +#: website/public/get-started/index.html:979 +#: website/public/get-started/index.html:1737 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:1558 +#: website/public/get-started/index.html:1564 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:1564 +#: website/public/get-started/index.html:1570 msgctxt "page:get-started/index.html" msgid "Static application analysis" msgstr "靜態應用分析" #. {ph0}: .asar #. {ph1}: "D:/apps/example" -#: website/public/get-started/index.html:1576 +#: website/public/get-started/index.html:1582 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3176,13 +3176,13 @@ msgid "" "Windows, a path such as {ph1} works here." msgstr "把路徑換成解包後的應用目錄或 {ph0} 檔案。Windows 上也可以使用 {ph1} 這樣的路徑。" -#: website/public/get-started/index.html:1582 +#: website/public/get-started/index.html:1588 msgctxt "page:get-started/index.html" msgid "Where do I find an app's .asar file?" msgstr "在哪裡找到應用的 .asar 檔案?" #. {ph0}: resources -#: website/public/get-started/index.html:1583 +#: website/public/get-started/index.html:1589 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Electron apps usually keep it in a {ph0} folder:" @@ -3193,7 +3193,7 @@ msgstr "Electron 應用通常把它放在 {ph0} 資料夾中:" #. {ph2}: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar -#: website/public/get-started/index.html:1588 +#: website/public/get-started/index.html:1594 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Windows:{ph1} {ph2}" @@ -3205,7 +3205,7 @@ msgstr "{ph0} Windows :{ph1} {ph2}" #. >/Applications/<App>.app/Contents/Resources/app.asar #. {ph3}: #. {ph4}: -#: website/public/get-started/index.html:1594 +#: website/public/get-started/index.html:1600 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3216,20 +3216,20 @@ msgstr "{ph0}macOS:{ph1}{ph2}(右鍵應用,選擇{ph3}“顯示包內容 #. {ph0}: #. {ph1}: #. {ph2}: /opt/<App>/resources/app.asar -#: website/public/get-started/index.html:1602 +#: website/public/get-started/index.html:1608 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux:{ph1} often {ph2}" msgstr "{ph0}Linux:{ph1}通常位於 {ph2}" #. {ph0}: app.asar -#: website/public/get-started/index.html:1607 +#: website/public/get-started/index.html:1613 #, 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:1612 +#: website/public/get-started/index.html:1618 msgctxt "page:get-started/index.html" msgid "" "The result identifies the app, shows connections between modules and gives " @@ -3238,36 +3238,36 @@ msgid "" msgstr "結果會識別應用,展示模組之間的關係,並給出原始碼位置。REA 無法解析的關係會在結果中註明。" #. {ph0}: rea -#: website/public/get-started/index.html:1617 +#: website/public/get-started/index.html:1623 #, python-brace-format msgctxt "page:get-started/index.html" msgid "If you'd like a permanent {ph0} command in your shell:" msgstr "如果希望在 shell 中直接使用 {ph0} 命令:" -#: website/public/get-started/index.html:1623 +#: website/public/get-started/index.html:1629 msgctxt "page:get-started/index.html" msgid "Install the CLI" msgstr "安裝CLI" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1635 +#: website/public/get-started/index.html:1641 #, 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:1152 +#: website/public/get-started/index.html:1158 msgctxt "page:get-started/index.html" msgid "Connect your Ghidra installation" msgstr "連線已有的 Ghidra" -#: website/public/get-started/index.html:1122 +#: website/public/get-started/index.html:1128 msgctxt "page:get-started/index.html" msgid "Connect Ghidra on Windows" msgstr "在 Windows 上連線 Ghidra" -#: website/public/get-started/index.html:1123 +#: website/public/get-started/index.html:1129 msgctxt "page:get-started/index.html" msgid "" "Windows x64 has experimental, read-only support for native x86 and x64 PE " @@ -3277,31 +3277,31 @@ msgstr "" "Windows x64 提供實驗性的只讀支援:分析固定本地 NTFS 驅動器上的原生 x86、x64 PE 應用和 DLL。使用已有的 Ghidra " "12.1.x 和 64 位 JDK 21 或更新版本:" -#: website/public/get-started/index.html:1146 +#: website/public/get-started/index.html:1152 msgctxt "page:get-started/index.html" msgid "" "Replace the two paths with your installations, then review setup's plan." msgstr "把兩個路徑換成安裝位置,再檢視 setup 計劃。" -#: website/public/get-started/index.html:1028 +#: website/public/get-started/index.html:1034 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 "在 macOS 或 Linux 上連線 Hopper。執行上面的 setup 命令,它會檢測已有安裝,或提出安裝計劃供你確認。" -#: website/public/get-started/index.html:1689 +#: website/public/get-started/index.html:1695 msgctxt "page:get-started/index.html" msgid "Getting help" msgstr "尋求幫助" -#: website/public/get-started/index.html:1691 +#: website/public/get-started/index.html:1697 msgctxt "page:get-started/index.html" msgid "If your agent doesn't see REA" msgstr "助手看不到 REA 工具時" #. {ph0}: doctor -#: website/public/get-started/index.html:1692 +#: website/public/get-started/index.html:1698 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3309,22 +3309,22 @@ msgid "" "{ph0}; for Codex:" msgstr "配置後重啟或重新連線客戶端。用 {ph0} 檢查 REA 連線。以 Codex 為例:" -#: website/public/get-started/index.html:1703 +#: website/public/get-started/index.html:1709 msgctxt "page:get-started/index.html" msgid "If a provider needs attention" msgstr "分析後端出現問題時" -#: website/public/get-started/index.html:1704 +#: website/public/get-started/index.html:1710 msgctxt "page:get-started/index.html" msgid "Check the provider you're using. For Ghidra:" msgstr "檢查正在使用的分析後端。以 Ghidra 為例:" -#: website/public/get-started/index.html:1707 +#: website/public/get-started/index.html:1713 msgctxt "page:get-started/index.html" msgid "Check one provider" msgstr "檢查一個分析後端" -#: website/public/get-started/index.html:1719 +#: website/public/get-started/index.html:1725 msgctxt "page:get-started/index.html" msgid "The report gives the failed check and a suggested next step." msgstr "報告會列出失敗的檢查和建議的下一步。" @@ -3333,7 +3333,7 @@ msgstr "報告會列出失敗的檢查和建議的下一步。" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1784 +#: website/public/get-started/index.html:1790 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3344,7 +3344,7 @@ msgstr "{ph0}REA FAQ{ph1}{ph2}關於更新、助手和分析的常見解答。{p #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1788 +#: website/public/get-started/index.html:1794 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3356,7 +3356,7 @@ msgstr "{ph0}選擇調查指南{ph1}{ph2}二進位制、Electron 應用和瀏覽 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1795 +#: website/public/get-started/index.html:1801 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3368,7 +3368,7 @@ msgstr "{ph0}GitHub issues{ph1}{ph2}附上命令與診斷結果,反饋問題 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1799 +#: website/public/get-started/index.html:1805 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -3389,69 +3389,69 @@ msgid "" msgstr "把 REA 連線到程式設計助手,或用終端檢查本地 JavaScript、Electron 應用。包含配置、首次提問和原生分析後端指南。" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. -#: website/public/get-started/index.html:269 +#: website/public/get-started/index.html:275 msgctxt "page:get-started/index.html" msgid "Copy Node.js version check" msgstr "複製 Node.js 版本檢查命令" # Adapted from Kaoru0822's Traditional Chinese draft in PR #1737. -#: website/public/get-started/index.html:292 +#: website/public/get-started/index.html:298 msgctxt "page:get-started/index.html" msgid "Copy Node.js installation command for Windows" msgstr "複製 Windows 的 Node.js 安裝命令" -#: website/public/get-started/index.html:347 +#: website/public/get-started/index.html:353 msgctxt "page:get-started/index.html" msgid "Copy Homebrew Node.js installation command" msgstr "複製 Homebrew Node.js 安裝命令" -#: website/public/get-started/index.html:370 +#: website/public/get-started/index.html:376 msgctxt "page:get-started/index.html" msgid "Copy fnm installation command for Linux" msgstr "複製Linux的fnm安裝命令" -#: website/public/get-started/index.html:385 +#: website/public/get-started/index.html:391 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:212 -#: website/public/get-started/index.html:211 +#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:217 msgctxt "page:get-started/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/get-started/index.html:223 +#: website/public/get-started/index.html:229 msgctxt "page:get-started/index.html" msgid "REA getting started guide" msgstr "REA入門指南" -#: website/public/get-started/index.html:774 +#: website/public/get-started/index.html:780 msgctxt "page:get-started/index.html" msgid "Copy REA installation prompt" msgstr "複製REA安裝提示" -#: website/public/get-started/index.html:1565 +#: website/public/get-started/index.html:1571 msgctxt "page:get-started/index.html" msgid "Copy JavaScript analysis command" msgstr "複製JavaScript分析命令" -#: website/public/get-started/index.html:1624 +#: website/public/get-started/index.html:1630 msgctxt "page:get-started/index.html" msgid "Copy CLI installation command" msgstr "複製CLI安裝命令" -#: website/public/get-started/index.html:1708 +#: website/public/get-started/index.html:1714 msgctxt "page:get-started/index.html" msgid "Copy provider diagnosis command" msgstr "複製提供者診斷命令" -#: website/public/get-started/index.html:1823 +#: website/public/get-started/index.html:1829 msgctxt "page:get-started/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/guides/browser/index.html:107 +#: website/public/guides/browser/index.html:113 msgctxt "page:guides/browser/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -3460,34 +3460,34 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/browser/index.html:199 +#: website/public/guides/browser/index.html:205 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation" msgstr "{ph0}首頁{ph1} / {ph2}指南{ph3} /瀏覽器觀察" #. {ph0}:
-#: website/public/guides/browser/index.html:203 +#: website/public/guides/browser/index.html:209 #, 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:204 +#: website/public/guides/browser/index.html:210 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:211 +#: website/public/guides/browser/index.html:217 msgctxt "page:guides/browser/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:213 +#: website/public/guides/browser/index.html:219 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}The example{ph1}" @@ -3495,7 +3495,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:214 +#: website/public/guides/browser/index.html:220 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Open the browser{ph1}" @@ -3503,7 +3503,7 @@ msgstr "{ph0}開啟瀏覽器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:215 +#: website/public/guides/browser/index.html:221 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -3511,7 +3511,7 @@ msgstr "{ph0}問問你的程式設計助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:216 +#: website/public/guides/browser/index.html:222 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}Capture from CLI{ph1}" @@ -3519,13 +3519,13 @@ msgstr "{ph0}從CLI捕獲 {ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:217 +#: website/public/guides/browser/index.html:223 #, 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:222 +#: website/public/guides/browser/index.html:228 msgctxt "page:guides/browser/index.html" msgid "What happens when you click Export?" msgstr "單擊匯出時會發生什麼?" @@ -3535,7 +3535,7 @@ msgstr "單擊匯出時會發生什麼?" #. {ph2}: #. {ph3}: #. {ph4}: notes.json -#: website/public/guides/browser/index.html:223 +#: website/public/guides/browser/index.html:229 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3546,7 +3546,7 @@ msgstr "" "{ph0}Notes 瀏覽器示例{ph1}有一個{ph2}Export notes(匯出筆記){ph3}按鈕。點選後載入 {ph4},把兩條筆記格式化為" " CSV,再開始下載。" -#: website/public/guides/browser/index.html:231 +#: website/public/guides/browser/index.html:237 msgctxt "page:guides/browser/index.html" msgid "From the click to the CSV download" msgstr "從點選到CSV下載" @@ -3557,7 +3557,7 @@ msgstr "從點選到CSV下載" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:233 +#: website/public/guides/browser/index.html:239 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3571,7 +3571,7 @@ msgstr "{ph0}01 · 你{ph1}{ph2}點選 Export notes{ph3}{ph4}在捕獲進行時 #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/browser/index.html:241 +#: website/public/guides/browser/index.html:247 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3587,7 +3587,7 @@ msgstr "{ph0}02*REA {ph1}{ph2}記錄請求{ph3}{ph4}從所選頁面捕獲請求U #. {ph5}: fetch("./notes.json") #. {ph6}: export.js #. {ph7}: -#: website/public/guides/browser/index.html:249 +#: website/public/guides/browser/index.html:255 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3597,52 +3597,52 @@ msgstr "" "{ph0}03 · 程式設計助手{ph1}{ph2}讀取匯出程式碼{ph3}{ph4}把觀察到的請求與 {ph6} 中的 {ph5} " "關聯起來。{ph7}" -#: website/public/guides/browser/index.html:262 +#: website/public/guides/browser/index.html:268 msgctxt "page:guides/browser/index.html" msgid "Start the capture before clicking Export notes." msgstr "在單擊匯出註釋之前開始捕獲。" -#: website/public/guides/browser/index.html:268 +#: website/public/guides/browser/index.html:274 msgctxt "page:guides/browser/index.html" msgid "Open Chrome with remote debugging" msgstr "使用遠端除錯開啟Chrome" -#: website/public/guides/browser/index.html:269 +#: website/public/guides/browser/index.html:275 msgctxt "page:guides/browser/index.html" msgid "" "Open the hosted Notes example with a separate browser profile and a local " "debugging port. On Linux:" msgstr "用獨立的瀏覽器配置和本地除錯埠開啟線上 Notes 示例。Linux 上:" -#: website/public/guides/browser/index.html:275 +#: website/public/guides/browser/index.html:281 msgctxt "page:guides/browser/index.html" msgid "Start the example browser" msgstr "啟動示例瀏覽器" -#: website/public/guides/browser/index.html:276 -#: website/public/guides/browser/index.html:308 -#: website/public/guides/browser/index.html:342 -#: website/public/guides/browser/index.html:361 -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:282 +#: website/public/guides/browser/index.html:314 +#: website/public/guides/browser/index.html:348 +#: website/public/guides/browser/index.html:367 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy" msgstr "複製" -#: website/public/guides/browser/index.html:290 +#: website/public/guides/browser/index.html:296 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:295 +#: website/public/guides/browser/index.html:301 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:301 +#: website/public/guides/browser/index.html:307 msgctxt "page:guides/browser/index.html" msgid "Ask your agent to watch one action" msgstr "讓你的程式設計助手看一個動作" @@ -3655,7 +3655,7 @@ msgstr "讓你的程式設計助手看一個動作" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/browser/index.html:304 +#: website/public/guides/browser/index.html:310 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent" @@ -3667,7 +3667,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}你的程式設計助手" #. {ph3}: #. {ph4}: -#: website/public/guides/browser/index.html:317 +#: website/public/guides/browser/index.html:323 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3678,7 +3678,7 @@ msgstr "" "是怎樣生成的?{ph3}{ph4}{ph5}" #. {ph0}: http://127.0.0.1:9222 -#: website/public/guides/browser/index.html:325 +#: website/public/guides/browser/index.html:331 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3686,7 +3686,7 @@ msgid "" "URL. Let it start the capture before you click." msgstr "示例 prompt。把除錯地址 {ph0} 和頁面網址交給助手。等它開始捕獲,再點選按鈕。" -#: website/public/guides/browser/index.html:330 +#: website/public/guides/browser/index.html:336 msgctxt "page:guides/browser/index.html" msgid "" "Your agent discovers the page target, starts an observation window, and " @@ -3694,23 +3694,23 @@ msgid "" "export." msgstr "你的程式設計助手發現頁面目標,啟動觀察視窗,並讀取生成的證據。 然後,它可以檢查匯出後面的指令碼。" -#: website/public/guides/browser/index.html:337 +#: website/public/guides/browser/index.html:343 msgctxt "page:guides/browser/index.html" msgid "Or capture from the terminal" msgstr "或從終端捕獲" -#: website/public/guides/browser/index.html:338 +#: website/public/guides/browser/index.html:344 msgctxt "page:guides/browser/index.html" msgid "Find the page's target ID:" msgstr "查詢頁面的目標ID:" -#: website/public/guides/browser/index.html:341 +#: website/public/guides/browser/index.html:347 msgctxt "page:guides/browser/index.html" msgid "Find the page" msgstr "查詢頁面" #. {ph0}: TARGET_ID -#: website/public/guides/browser/index.html:354 +#: website/public/guides/browser/index.html:360 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3718,14 +3718,14 @@ msgid "" "ID, then run:" msgstr "選擇網址為 Notes 示例的目標,把下面的 {ph0} 換成目標 ID,再執行:" -#: website/public/guides/browser/index.html:360 +#: website/public/guides/browser/index.html:366 msgctxt "page:guides/browser/index.html" msgid "Capture the next ten seconds" msgstr "捕捉接下來的十秒" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:376 +#: website/public/guides/browser/index.html:382 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3733,7 +3733,7 @@ msgid "" " in that browser. The result arrives after the observation window ends." msgstr "讓命令連線幾秒鐘,再在瀏覽器中點選{ph0}Export notes{ph1}。觀察時間視窗結束後會返回結果。" -#: website/public/guides/browser/index.html:381 +#: website/public/guides/browser/index.html:387 msgctxt "page:guides/browser/index.html" msgid "" "The captured result includes the selected page, network activity during that" @@ -3741,49 +3741,49 @@ msgid "" "this capture." msgstr "捕獲的結果包括所選頁面、該視窗期間的網路活動以及JSON響應的形狀。 較早的請求在此捕獲之外。" -#: website/public/guides/browser/index.html:388 +#: website/public/guides/browser/index.html:394 msgctxt "page:guides/browser/index.html" msgid "Read the request and export script" msgstr "讀取請求和匯出指令碼" -#: website/public/guides/browser/index.html:391 +#: website/public/guides/browser/index.html:397 msgctxt "page:guides/browser/index.html" msgid "Recorded with REA 4.1.0 on the local Notes example" msgstr "在本地筆記示例中用REA4.1.0記錄" -#: website/public/guides/browser/index.html:396 +#: website/public/guides/browser/index.html:402 msgctxt "page:guides/browser/index.html" msgid "Captured fact" msgstr "捕獲的事實" -#: website/public/guides/browser/index.html:397 +#: website/public/guides/browser/index.html:403 msgctxt "page:guides/browser/index.html" msgid "Value" msgstr "數值" -#: website/public/guides/browser/index.html:402 +#: website/public/guides/browser/index.html:408 msgctxt "page:guides/browser/index.html" msgid "Request" msgstr "請求" -#: website/public/guides/browser/index.html:406 +#: website/public/guides/browser/index.html:412 msgctxt "page:guides/browser/index.html" msgid "Response" msgstr "回應" -#: website/public/guides/browser/index.html:410 +#: website/public/guides/browser/index.html:416 msgctxt "page:guides/browser/index.html" msgid "Request initiator" msgstr "請求發起者" #. {ph0}: export.js -#: website/public/guides/browser/index.html:411 +#: website/public/guides/browser/index.html:417 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · script" msgstr "{ph0} · 指令碼" -#: website/public/guides/browser/index.html:414 +#: website/public/guides/browser/index.html:420 msgctxt "page:guides/browser/index.html" msgid "Response structure" msgstr "響應結構" @@ -3791,19 +3791,19 @@ msgstr "響應結構" #. {ph0}: notes[] #. {ph1}: id #. {ph2}: title -#: website/public/guides/browser/index.html:415 +#: website/public/guides/browser/index.html:421 #, 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:425 +#: website/public/guides/browser/index.html:431 msgctxt "page:guides/browser/index.html" msgid "Read the loaded scripts" msgstr "閱讀載入的指令碼" #. {ph0}: export.js -#: website/public/guides/browser/index.html:439 +#: website/public/guides/browser/index.html:445 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3812,7 +3812,7 @@ msgid "" msgstr "請求指出了資料來源,REA 記錄的請求發起方是 {ph0}。讀取捕獲的指令碼原始碼,看看它如何使用資料:" #. {ph0}: notes.json -#: website/public/guides/browser/index.html:459 +#: website/public/guides/browser/index.html:465 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3822,7 +3822,7 @@ msgid "" msgstr "下載是使用JSON響應在頁面中構建的。 CSV格式化步驟來自指令碼;網路捕獲建立此單擊請求 {ph0}." #. {ph0}: notes.json -#: website/public/guides/browser/index.html:475 +#: website/public/guides/browser/index.html:481 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3832,7 +3832,7 @@ msgstr "查詢請求的指令碼 {ph0}. 它如何轉義包含逗號或引號的 #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:480 +#: website/public/guides/browser/index.html:486 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -3852,161 +3852,161 @@ msgid "" "inspect the request and follow the export script." msgstr "觀察一個筆記匯出與 REA:選擇瀏覽器頁面,捕獲單擊,檢查請求並遵循匯出指令碼。" -#: website/public/guides/browser/index.html:210 +#: website/public/guides/browser/index.html:216 msgctxt "page:guides/browser/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/guides/browser/index.html:220 +#: website/public/guides/browser/index.html:226 msgctxt "page:guides/browser/index.html" msgid "Browser observation" msgstr "瀏覽器觀察" -#: website/public/guides/browser/index.html:276 +#: website/public/guides/browser/index.html:282 msgctxt "page:guides/browser/index.html" msgid "Copy start the example browser" msgstr "複製啟動示例瀏覽器" -#: website/public/guides/browser/index.html:308 +#: website/public/guides/browser/index.html:314 msgctxt "page:guides/browser/index.html" msgid "Copy example prompt" msgstr "複製示例提示" -#: website/public/guides/browser/index.html:342 +#: website/public/guides/browser/index.html:348 msgctxt "page:guides/browser/index.html" msgid "Copy find the page" msgstr "複製查詢頁面" -#: website/public/guides/browser/index.html:361 +#: website/public/guides/browser/index.html:367 msgctxt "page:guides/browser/index.html" msgid "Copy capture the next ten seconds" msgstr "複製捕獲接下來的十秒鐘" -#: website/public/guides/browser/index.html:426 +#: website/public/guides/browser/index.html:432 msgctxt "page:guides/browser/index.html" msgid "Copy read the loaded scripts" msgstr "複製讀取載入的指令碼" -#: website/public/guides/browser/index.html:513 +#: website/public/guides/browser/index.html:519 msgctxt "page:guides/browser/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/guides/index.html:107 +#: website/public/guides/index.html:113 msgctxt "page:guides/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:199 +#: website/public/guides/index.html:205 #, python-brace-format msgctxt "page:guides/index.html" msgid "{ph0}Home{ph1} / Guides" msgstr "{ph0}首頁{ph1} /指南" -#: website/public/guides/index.html:200 +#: website/public/guides/index.html:206 msgctxt "page:guides/index.html" msgid "REA guides." msgstr "REA 分析指南。" -#: website/public/guides/index.html:201 +#: website/public/guides/index.html:207 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:208 +#: website/public/guides/index.html:214 msgctxt "page:guides/index.html" msgid "First investigation" msgstr "第一次調查" -#: website/public/guides/index.html:210 +#: website/public/guides/index.html:216 msgctxt "page:guides/index.html" msgid "Set up REA" msgstr "設定REA" -#: website/public/guides/index.html:211 +#: website/public/guides/index.html:217 msgctxt "page:guides/index.html" msgid "Connect your coding agent or use REA from the terminal." msgstr "連線你的程式設計助手或使用 REA 從終端。" -#: website/public/guides/index.html:212 +#: website/public/guides/index.html:218 msgctxt "page:guides/index.html" msgid "Get started with REA" msgstr "開始使用 REA" -#: website/public/guides/index.html:216 +#: website/public/guides/index.html:222 msgctxt "page:guides/index.html" msgid "Native binaries" msgstr "原生二進位制" -#: website/public/guides/index.html:218 +#: website/public/guides/index.html:224 msgctxt "page:guides/index.html" msgid "Recover a sound-pan calculation" msgstr "恢復左/右聲音位置的計算" -#: website/public/guides/index.html:219 +#: website/public/guides/index.html:225 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:229 +#: website/public/guides/index.html:235 msgctxt "page:guides/index.html" msgid "Native analysis guide" msgstr "原生分析指南" -#: website/public/guides/index.html:233 +#: website/public/guides/index.html:239 msgctxt "page:guides/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/index.html:235 +#: website/public/guides/index.html:241 msgctxt "page:guides/index.html" msgid "Follow a CSV export" msgstr "追蹤 CSV 匯出" -#: website/public/guides/index.html:236 +#: website/public/guides/index.html:242 msgctxt "page:guides/index.html" msgid "" "A small Notes app spreads one feature across the renderer, preload and main " "process. Use REA to connect the API, IPC channel and file writer." msgstr "一個小Notes應用程式在渲染器,預載入和主程序中傳播一個功能。 使用REA連線API,IPC通道和檔案編寫器。" -#: website/public/guides/index.html:246 +#: website/public/guides/index.html:252 msgctxt "page:guides/index.html" msgid "JavaScript & Electron guide" msgstr "JavaScript&Electron指南" #. {ph0}: #. {ph1}: -#: website/public/guides/index.html:249 +#: website/public/guides/index.html:255 #, 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:256 +#: website/public/guides/index.html:262 msgctxt "page:guides/index.html" msgid "Browser behavior" msgstr "瀏覽器行為" -#: website/public/guides/index.html:258 +#: website/public/guides/index.html:264 msgctxt "page:guides/index.html" msgid "Observe a click" msgstr "觀察點選" -#: website/public/guides/index.html:259 +#: website/public/guides/index.html:265 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:268 +#: website/public/guides/index.html:274 msgctxt "page:guides/index.html" msgid "Browser observation guide" msgstr "瀏覽器觀察指南" @@ -4023,12 +4023,12 @@ msgid "" "CSV export and a browser request." msgstr "透過簡短的示例學習REA:本機計算,Electron CSV匯出和瀏覽器請求。" -#: website/public/guides/index.html:288 +#: website/public/guides/index.html:294 msgctxt "page:guides/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/guides/javascript/index.html:107 +#: website/public/guides/javascript/index.html:113 msgctxt "page:guides/javascript/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -4037,34 +4037,34 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:199 +#: website/public/guides/javascript/index.html:205 #, 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}:
-#: website/public/guides/javascript/index.html:203 +#: website/public/guides/javascript/index.html:209 #, 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:204 +#: website/public/guides/javascript/index.html:210 msgctxt "page:guides/javascript/index.html" msgid "" "Follow a button click from the page API, through Electron IPC, to the CSV " "file writer." msgstr "按照一個按鈕點選從頁面API,透過Electron IPC,到CSV檔案編寫器。" -#: website/public/guides/javascript/index.html:211 +#: website/public/guides/javascript/index.html:217 msgctxt "page:guides/javascript/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:213 +#: website/public/guides/javascript/index.html:219 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}The example{ph1}" @@ -4072,7 +4072,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:214 +#: website/public/guides/javascript/index.html:220 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4080,7 +4080,7 @@ msgstr "{ph0}問問你的程式設計助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:215 +#: website/public/guides/javascript/index.html:221 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Trace the export code{ph1}" @@ -4088,7 +4088,7 @@ msgstr "{ph0}跟蹤匯出程式碼{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:216 +#: website/public/guides/javascript/index.html:222 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Try the example{ph1}" @@ -4096,20 +4096,20 @@ msgstr "{ph0}試試這個例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:217 +#: website/public/guides/javascript/index.html:223 #, 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:222 +#: website/public/guides/javascript/index.html:228 msgctxt "page:guides/javascript/index.html" msgid "Where does “Export notes” go?" msgstr "\"Export notes(匯出筆記)\"去哪兒了?" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:223 +#: website/public/guides/javascript/index.html:229 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4120,7 +4120,7 @@ msgstr "" "本指南使用一個小型 Electron 應用。點選{ph0}Export notes(匯出筆記){ph1}後,頁面呼叫 " "API,透過程序邊界進入主程序,最後寫出 CSV。這個行為分散在幾個檔案中。" -#: website/public/guides/javascript/index.html:230 +#: website/public/guides/javascript/index.html:236 msgctxt "page:guides/javascript/index.html" msgid "The CSV export across Electron processes" msgstr "該 CSV 跨匯出 Electron 過程" @@ -4134,7 +4134,7 @@ msgstr "該 CSV 跨匯出 Electron 過程" #. {ph6}: renderer.js #. {ph7}: preload.js #. {ph8}: -#: website/public/guides/javascript/index.html:234 +#: website/public/guides/javascript/index.html:240 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4149,7 +4149,7 @@ msgstr "{ph0}渲染器→預載入{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} 呼叫由 {ph7} #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/guides/javascript/index.html:242 +#: website/public/guides/javascript/index.html:248 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4164,7 +4164,7 @@ msgstr "{ph0}程序之間{ph1}{ph2}{ph3}{ph4}{ph5}預載入呼叫IPC通道:主 #. {ph4}: #. {ph5}: main.js #. {ph6}: -#: website/public/guides/javascript/index.html:250 +#: website/public/guides/javascript/index.html:256 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4175,13 +4175,13 @@ msgstr "{ph0}主程序{ph1}{ph2}匯出處理函式{ph3}{ph4}{ph5}處理這個通 #. {ph0}: csv.js #. {ph1}: main.js #. {ph2}: downloads/notes.csv -#: website/public/guides/javascript/index.html:259 +#: website/public/guides/javascript/index.html:265 #, 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:263 +#: website/public/guides/javascript/index.html:269 msgctxt "page:guides/javascript/index.html" msgid "" "REA matches the literal IPC call to its handler and identifies the exposed " @@ -4189,14 +4189,14 @@ msgid "" "executes." msgstr "REA將字面IPC呼叫與其處理程式相匹配,並標識公開的API。 路徑是從程式碼中推斷出來的;執行時捕獲可以檢查執行的內容。" -#: website/public/guides/javascript/index.html:271 +#: website/public/guides/javascript/index.html:277 msgctxt "page:guides/javascript/index.html" msgid "Ask about the CSV export" msgstr "詢問有關 CSV 匯出" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:272 +#: website/public/guides/javascript/index.html:278 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4212,14 +4212,14 @@ msgstr "{ph0}將你的程式設計助手連線到 REA{ph1} 並給它的應用程 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/javascript/index.html:278 +#: website/public/guides/javascript/index.html:284 #, 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:282 -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:288 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy" msgstr "複製" @@ -4230,7 +4230,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/guides/javascript/index.html:291 +#: website/public/guides/javascript/index.html:297 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4239,7 +4239,7 @@ msgid "" msgstr "{ph0}›{ph1}{ph2}用 REA 找出這個應用匯出筆記時發生了什麼。CSV 檔案在哪裡建立?{ph3}{ph4}{ph5}" #. {ph0}: app.asar -#: website/public/guides/javascript/index.html:299 +#: website/public/guides/javascript/index.html:305 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4247,7 +4247,7 @@ msgid "" "{ph0}." msgstr "示例提示。 包括應用程式資料夾的絕對路徑或 {ph0}." -#: website/public/guides/javascript/index.html:303 +#: website/public/guides/javascript/index.html:309 msgctxt "page:guides/javascript/index.html" msgid "" "REA reads the application files and builds a map of entrypoints, modules and" @@ -4255,17 +4255,17 @@ msgid "" " the export feature." msgstr "REA讀取應用程式檔案並構建入口點,模組和流程邊界的對映。 你的程式設計助手使用該對映將調查範圍縮小到匯出功能。" -#: website/public/guides/javascript/index.html:310 +#: website/public/guides/javascript/index.html:316 msgctxt "page:guides/javascript/index.html" msgid "Trace the export code" msgstr "跟蹤匯出程式碼" -#: website/public/guides/javascript/index.html:311 +#: website/public/guides/javascript/index.html:317 msgctxt "page:guides/javascript/index.html" msgid "The page calls a small API" msgstr "頁面呼叫一個小API" -#: website/public/guides/javascript/index.html:324 +#: website/public/guides/javascript/index.html:330 msgctxt "page:guides/javascript/index.html" msgid "" "The page knows the method name. The implementation lives in the preload, " @@ -4274,7 +4274,7 @@ msgstr "頁面知道方法名稱。 實現存在於預載入中,預載入將 #. {ph0}: notes.exportCsv #. {ph1}: notes:export -#: website/public/guides/javascript/index.html:338 +#: website/public/guides/javascript/index.html:344 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4284,7 +4284,7 @@ msgstr "REA 記錄 {ph0} 和直接寫在程式碼中的通道名 {ph1},並將 #. {ph0}: csv.js #. {ph1}: notes.csv -#: website/public/guides/javascript/index.html:355 +#: website/public/guides/javascript/index.html:361 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4292,14 +4292,14 @@ msgid "" "and the main process writes {ph1} into the user's Downloads folder." msgstr "讀取處理函式就能回答最初的問題:{ph0} 格式化筆記,主程序將 {ph1} 寫入使用者的下載資料夾。" -#: website/public/guides/javascript/index.html:372 +#: website/public/guides/javascript/index.html:378 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:378 +#: website/public/guides/javascript/index.html:384 msgctxt "page:guides/javascript/index.html" msgid "Analyze the example yourself" msgstr "自己分析例子" @@ -4307,25 +4307,25 @@ msgstr "自己分析例子" #. {ph0}: #. {ph1}: -#: website/public/guides/javascript/index.html:385 +#: website/public/guides/javascript/index.html:391 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下載示例ZIP{ph1}" -#: website/public/guides/javascript/index.html:394 +#: website/public/guides/javascript/index.html:400 msgctxt "page:guides/javascript/index.html" msgid "Browse the six source files" msgstr "瀏覽六個原始檔" -#: website/public/guides/javascript/index.html:430 +#: website/public/guides/javascript/index.html:436 msgctxt "page:guides/javascript/index.html" msgid "Static application analysis" msgstr "靜態應用分析" #. {ph0}: normalized_result.summary.ipc #. {ph1}: normalized_result.graph -#: website/public/guides/javascript/index.html:443 +#: website/public/guides/javascript/index.html:449 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4333,7 +4333,7 @@ msgid "" "channel and one matching handler in {ph0}. Source locations are in {ph1}." msgstr "將路徑替換為你解壓縮的資料夾。 你應該在以下位置找到一個IPC通道和一個匹配的處理程式 {ph0}. 源位置在 {ph1}." -#: website/public/guides/javascript/index.html:449 +#: website/public/guides/javascript/index.html:455 msgctxt "page:guides/javascript/index.html" msgid "" "For your own app, use the same command with its directory or ASAR path. An " @@ -4342,13 +4342,13 @@ msgid "" msgstr "" "對於你自己的應用程式,請對其目錄或ASARpath使用相同的命令。 程式設計助手可以使用REA的功能跟蹤工具跟隨文字字串,API名稱或IPC通道。" -#: website/public/guides/javascript/index.html:456 +#: website/public/guides/javascript/index.html:462 msgctxt "page:guides/javascript/index.html" msgid "Inspect the CSV writer" msgstr "檢查CSV寫入器" #. {ph0}: notes:export -#: website/public/guides/javascript/index.html:458 +#: website/public/guides/javascript/index.html:464 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4356,7 +4356,7 @@ msgid "" "happens if writing the file fails?" msgstr "追蹤 {ph0} 到處理函式。哪些輸入傳給 CSV 寫入函式?如果寫入失敗,會怎樣?" -#: website/public/guides/javascript/index.html:464 +#: website/public/guides/javascript/index.html:470 msgctxt "page:guides/javascript/index.html" msgid "" "Use the source locations to inspect those details. Computed channel names " @@ -4368,7 +4368,7 @@ msgstr "使用源位置檢查這些詳細資訊。 計算的通道名稱和不 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:470 +#: website/public/guides/javascript/index.html:476 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4380,7 +4380,7 @@ msgstr "{ph0}追蹤 Notion 剪貼簿橋接程式碼{ph1}{ph2}把同樣的方法 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:476 +#: website/public/guides/javascript/index.html:482 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4392,7 +4392,7 @@ msgstr "{ph0}觀察瀏覽器匯出{ph1}{ph2}捕獲一個真正的點選,看看 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/javascript/index.html:482 +#: website/public/guides/javascript/index.html:488 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -4413,32 +4413,32 @@ msgid "" "result." msgstr "透過具有REA的渲染器API,預載入和IPC處理程式跟蹤Notes CSV匯出。 包括可下載的示例檔案和經過驗證的分析結果。" -#: website/public/guides/javascript/index.html:210 +#: website/public/guides/javascript/index.html:216 msgctxt "page:guides/javascript/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/guides/javascript/index.html:220 +#: website/public/guides/javascript/index.html:226 msgctxt "page:guides/javascript/index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/guides/javascript/index.html:282 +#: website/public/guides/javascript/index.html:288 msgctxt "page:guides/javascript/index.html" msgid "Copy example prompt" msgstr "複製示例提示" -#: website/public/guides/javascript/index.html:431 +#: website/public/guides/javascript/index.html:437 msgctxt "page:guides/javascript/index.html" msgid "Copy static application analysis" msgstr "複製靜態應用程式分析" -#: website/public/guides/javascript/index.html:509 +#: website/public/guides/javascript/index.html:515 msgctxt "page:guides/javascript/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/guides/native/index.html:107 +#: website/public/guides/native/index.html:113 msgctxt "page:guides/native/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -4447,34 +4447,34 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:199 +#: website/public/guides/native/index.html:205 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis" msgstr "{ph0}首頁{ph1} / {ph2}指南{ph3} /原生分析" #. {ph0}:
-#: website/public/guides/native/index.html:202 +#: website/public/guides/native/index.html:208 #, 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:203 +#: website/public/guides/native/index.html:209 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:210 +#: website/public/guides/native/index.html:216 msgctxt "page:guides/native/index.html" msgid "In this guide" msgstr "在本指南中" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:212 +#: website/public/guides/native/index.html:218 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}The example{ph1}" @@ -4482,7 +4482,7 @@ msgstr "{ph0}例子{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:213 +#: website/public/guides/native/index.html:219 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -4490,7 +4490,7 @@ msgstr "{ph0}問問你的程式設計助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:214 +#: website/public/guides/native/index.html:220 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Read the REA results{ph1}" @@ -4498,7 +4498,7 @@ msgstr "{ph0}閱讀REA結果{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:215 +#: website/public/guides/native/index.html:221 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "{ph0}Recover and check{ph1}" @@ -4506,18 +4506,18 @@ msgstr "{ph0}恢復和檢查{ph1}" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:216 +#: website/public/guides/native/index.html:222 #, 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:221 +#: website/public/guides/native/index.html:227 msgctxt "page:guides/native/index.html" msgid "Calculate left/right sound panning" msgstr "計算左/右立體聲聲音定位" -#: website/public/guides/native/index.html:222 +#: website/public/guides/native/index.html:228 msgctxt "page:guides/native/index.html" msgid "" "In DX-Ball, a brick hit supplies a horizontal screen position. The sound " @@ -4526,7 +4526,7 @@ msgstr "在DX-Ball中,磚擊提供水平螢幕位置。 聲音程式碼將其 #. {ph0}: 0x00406400 #. {ph1}: __ftol() -#: website/public/guides/native/index.html:226 +#: website/public/guides/native/index.html:232 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4536,7 +4536,7 @@ msgid "" msgstr "" "啟動函式, {ph0},有一個簡短的反編譯器結果:呼叫 {ph1}. REA 還返回其指令和呼叫者,這給程式設計助手一種方法來調查丟失的算術。" -#: website/public/guides/native/index.html:233 +#: website/public/guides/native/index.html:239 msgctxt "page:guides/native/index.html" msgid "New to these terms?" msgstr "新的這些條款?" @@ -4545,7 +4545,7 @@ msgstr "新的這些條款?" #. {ph1}: #. {ph2}: MOV #. {ph3}: ADD -#: website/public/guides/native/index.html:235 +#: website/public/guides/native/index.html:241 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4555,7 +4555,7 @@ msgstr "{ph0}指令:{ph1}處理器執行的步驟,以 {ph2}、{ph3} 這樣 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:240 +#: website/public/guides/native/index.html:246 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4565,7 +4565,7 @@ msgstr "{ph0}反編譯器結果/虛擬碼:{ph1} 分析工具試圖將指令轉 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:245 +#: website/public/guides/native/index.html:251 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4576,7 +4576,7 @@ msgstr "{ph0}呼叫方:{ph1}呼叫當前函式的函式,可以看出傳入 #. {ph0}: #. {ph1}: #. {ph2}: 0x00406400 -#: website/public/guides/native/index.html:249 +#: website/public/guides/native/index.html:255 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4586,7 +4586,7 @@ msgstr "{ph0}地址:{ph1} 程式中的一個位置,用十六進位制編寫, #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:253 +#: website/public/guides/native/index.html:259 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4594,7 +4594,7 @@ msgid "" "and decoded." msgstr "{ph0}常量:{ph1} 固定數字儲存在程式中,讀取為原始位元組和解碼。" -#: website/public/guides/native/index.html:260 +#: website/public/guides/native/index.html:266 msgctxt "page:guides/native/index.html" msgid "Three pieces of evidence, one calculation" msgstr "三件證據,一個計算" @@ -4605,7 +4605,7 @@ msgstr "三件證據,一個計算" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/guides/native/index.html:264 +#: website/public/guides/native/index.html:270 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4620,7 +4620,7 @@ msgstr "{ph0}01 · 指令{ph1}{ph2}整數輸入{ph3}{ph4}從棧讀取一個值 #. {ph4}: #. {ph5}: 20 + 30 × tile_x #. {ph6}: -#: website/public/guides/native/index.html:272 +#: website/public/guides/native/index.html:278 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4636,7 +4636,7 @@ msgstr "{ph0}02 · 呼叫方{ph1}{ph2}螢幕座標{ph3}{ph4}磚塊碰撞處理 #. {ph5}: 1.5625 #. {ph6}: 500.0 #. {ph7}: -#: website/public/guides/native/index.html:280 +#: website/public/guides/native/index.html:286 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4645,14 +4645,14 @@ msgid "" msgstr "" "{ph0}03 · 資料位元組{ph1}{ph2}數值常量{ph3}{ph4}引用的位元組解碼為 {ph5}、{ph6} 和一個縮放係數。{ph7}" -#: website/public/guides/native/index.html:292 +#: website/public/guides/native/index.html:298 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:299 +#: website/public/guides/native/index.html:305 msgctxt "page:guides/native/index.html" msgid "Ask about the behavior" msgstr "詢問行為" @@ -4661,7 +4661,7 @@ msgstr "詢問行為" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:300 +#: website/public/guides/native/index.html:306 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4669,19 +4669,19 @@ msgid "" "analysis tool{ph3}, provide the local executable and a question:" msgstr "{ph0}將 REA 連線到助手{ph1}並{ph2}配置原生分析工具{ph3}後,提供本地可執行檔案和一個問題:" -#: website/public/guides/native/index.html:311 +#: website/public/guides/native/index.html:317 msgctxt "page:guides/native/index.html" msgid "Which analysis tool should I use?" msgstr "我應該使用哪種分析工具?" -#: website/public/guides/native/index.html:312 +#: website/public/guides/native/index.html:318 msgctxt "page:guides/native/index.html" msgid "REA needs one of these to read native programs:" msgstr "REA需要其中一個來閱讀原生程式:" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:314 +#: website/public/guides/native/index.html:320 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4694,7 +4694,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:320 +#: website/public/guides/native/index.html:326 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4706,7 +4706,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:325 +#: website/public/guides/native/index.html:331 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4715,7 +4715,7 @@ msgstr "{ph0} IDA {ph1} (Windows):用於具有MCP註冊的現有IDA設定。" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:330 +#: website/public/guides/native/index.html:336 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "See {ph0}Set up native analysis{ph1} for the steps." @@ -4729,14 +4729,14 @@ msgstr "見 {ph0}設定原生分析{ph1} 為步驟。" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/guides/native/index.html:338 +#: website/public/guides/native/index.html:344 #, 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:342 -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:348 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy" msgstr "複製" @@ -4747,7 +4747,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/guides/native/index.html:351 +#: website/public/guides/native/index.html:357 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4756,7 +4756,7 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}用 REA 找出 DX-Ball 如何計算聲音的左右位置。解釋計算過程,並展示程式碼。{ph3}{ph4}{ph5}" -#: website/public/guides/native/index.html:359 +#: website/public/guides/native/index.html:365 msgctxt "page:guides/native/index.html" msgid "" "Example prompt. Give your agent the path to your local DX-Ball 1.07 " @@ -4766,7 +4766,7 @@ msgstr "" "示例 prompt。把本地 DX-Ball 1.07 可執行檔案的路徑交給助手。REA 不附帶遊戲,需要用自己的副本,也可以換成手裡的其他小型 " "Windows 程式,問同類問題。" -#: website/public/guides/native/index.html:366 +#: website/public/guides/native/index.html:372 msgctxt "page:guides/native/index.html" msgid "How do I get a file's full path?" msgstr "如何獲取檔案的完整路徑?" @@ -4775,7 +4775,7 @@ msgstr "如何獲取檔案的完整路徑?" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:368 +#: website/public/guides/native/index.html:374 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4789,7 +4789,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/guides/native/index.html:373 +#: website/public/guides/native/index.html:379 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4799,7 +4799,7 @@ msgstr "{ph0} macOS :{ph1} 在Finder中,右鍵單擊檔案,按住選項並 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:377 +#: website/public/guides/native/index.html:383 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4807,30 +4807,30 @@ msgid "" "appears." msgstr "{ph0}任何系統:{ph1} 將檔案拖到終端視窗中並顯示其路徑。" -#: website/public/guides/native/index.html:385 +#: website/public/guides/native/index.html:391 msgctxt "page:guides/native/index.html" msgid "Read the REA results" msgstr "閱讀REA結果" -#: website/public/guides/native/index.html:386 +#: website/public/guides/native/index.html:392 msgctxt "page:guides/native/index.html" msgid "Read the input" msgstr "閱讀輸入" -#: website/public/guides/native/index.html:395 +#: website/public/guides/native/index.html:401 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:400 +#: website/public/guides/native/index.html:406 msgctxt "page:guides/native/index.html" msgid "Follow the caller" msgstr "跟隨呼叫方" #. {ph0}: 0x14 -#: website/public/guides/native/index.html:409 +#: website/public/guides/native/index.html:415 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4838,24 +4838,24 @@ msgid "" "tile coordinate by 30; adding {ph0} (20) gives the brick's screen position." msgstr "REA 找到磚塊碰撞處理函式。它先把磚塊橫座標乘以 30,再加上 {ph0}(20),得到磚塊的螢幕位置。" -#: website/public/guides/native/index.html:414 +#: website/public/guides/native/index.html:420 msgctxt "page:guides/native/index.html" msgid "Read the referenced constants" msgstr "讀取引用的常量" -#: website/public/guides/native/index.html:425 +#: website/public/guides/native/index.html:431 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:432 +#: website/public/guides/native/index.html:438 msgctxt "page:guides/native/index.html" msgid "Write and check the recovered function" msgstr "寫入並檢查恢復的函式" -#: website/public/guides/native/index.html:441 +#: website/public/guides/native/index.html:447 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 " @@ -4863,7 +4863,7 @@ msgid "" "the center of the stereo field." msgstr "比例為1.0時,螢幕位置0、320和640在整數轉換之前對映到-500、0和500。 計算將螢幕的中心置於立體場的中心。" -#: website/public/guides/native/index.html:446 +#: website/public/guides/native/index.html:452 msgctxt "page:guides/native/index.html" msgid "" "The agent used REA's findings to write the C. Separate checks compared 3,205" @@ -4873,20 +4873,20 @@ msgstr "程式設計助手使用REA的發現來編寫C.單獨的檢查將3,205 #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:451 +#: website/public/guides/native/index.html:457 #, 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:458 +#: website/public/guides/native/index.html:464 msgctxt "page:guides/native/index.html" msgid "Try it with your own binary" msgstr "用你自己的二進位制檔案試試" #. {ph0}: #. {ph1}: -#: website/public/guides/native/index.html:459 +#: website/public/guides/native/index.html:465 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4898,20 +4898,20 @@ msgstr "" "{ph0}連線原生分析提供程式{ph1},然後給你的程式設計助手一個本地可執行檔案或庫和一個要調查的函式。 " "有用的起始問題包括\"如何解析此檔案?\"或\"哪個函式處理此選單操作?”" -#: website/public/guides/native/index.html:466 +#: website/public/guides/native/index.html:472 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:472 +#: website/public/guides/native/index.html:478 msgctxt "page:guides/native/index.html" msgid "Function analysis" msgstr "函式分析" #. {ph0}: main -#: website/public/guides/native/index.html:485 +#: website/public/guides/native/index.html:491 #, python-brace-format msgctxt "page:guides/native/index.html" msgid "" @@ -4923,7 +4923,7 @@ msgstr "" "替換目標路徑和 {ph0} 使用你自己的函式名稱或地址。 每個 CLI 呼叫匯入並分析二進位制檔案,然後關閉其會話。 你的程式設計助手 MCP " "查詢在該會話開啟時重用匯入的二進位制檔案。" -#: website/public/guides/native/index.html:491 +#: website/public/guides/native/index.html:497 msgctxt "page:guides/native/index.html" msgid "" "Read the pseudocode alongside instructions and references. When a result " @@ -4942,50 +4942,50 @@ msgid "" "caller, read constants and check reconstructed C." msgstr "使用REA恢復本機計算:檢查指令,遵循呼叫者,讀取常量並檢查重構的C。" -#: website/public/guides/native/index.html:209 +#: website/public/guides/native/index.html:215 msgctxt "page:guides/native/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/guides/native/index.html:219 +#: website/public/guides/native/index.html:225 msgctxt "page:guides/native/index.html" msgid "Native analysis" msgstr "機器程式碼程式分析" -#: website/public/guides/native/index.html:342 +#: website/public/guides/native/index.html:348 msgctxt "page:guides/native/index.html" msgid "Copy example prompt" msgstr "複製示例提示" -#: website/public/guides/native/index.html:473 +#: website/public/guides/native/index.html:479 msgctxt "page:guides/native/index.html" msgid "Copy function analysis" msgstr "複製函式分析" -#: website/public/guides/native/index.html:515 +#: website/public/guides/native/index.html:521 msgctxt "page:guides/native/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/index.html:109 +#: website/public/index.html:115 msgctxt "page:index.html" msgid "Skip to content" msgstr "跳轉到內容" -#: website/public/index.html:201 website/public/index.html:211 -#: website/public/index.html:209 +#: website/public/index.html:207 website/public/index.html:217 +#: website/public/index.html:215 msgctxt "page:index.html" msgid "On this page" msgstr "在本頁" -#: website/public/index.html:202 website/public/index.html:250 +#: website/public/index.html:208 website/public/index.html:256 msgctxt "page:index.html" msgid "Set up REA" msgstr "安裝與配置 REA" #. {ph0}: #. {ph1}: -#: website/public/index.html:213 +#: website/public/index.html:219 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Set up REA{ph1}" @@ -4993,7 +4993,7 @@ msgstr "{ph0}安裝與配置 REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:215 +#: website/public/index.html:221 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Dinosaur game{ph1}" @@ -5001,7 +5001,7 @@ msgstr "{ph0}恐龍游戲{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:216 +#: website/public/index.html:222 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Calculator{ph1}" @@ -5009,7 +5009,7 @@ msgstr "{ph0}計算器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:218 +#: website/public/index.html:224 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Try REA{ph1}" @@ -5017,25 +5017,25 @@ msgstr "{ph0}試試REA {ph1}" #. {ph0}: #. {ph1}: -#: website/public/index.html:219 +#: website/public/index.html:225 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Go deeper{ph1}" msgstr "{ph0}更深入{ph1}" -#: website/public/index.html:228 +#: website/public/index.html:234 msgctxt "page:index.html" msgid "Reverse engineering, with your coding agent" msgstr "和程式設計助手一起做逆向工程" #. {ph0}:
-#: website/public/index.html:229 +#: website/public/index.html:235 #, python-brace-format msgctxt "page:index.html" msgid "Find out how{ph0}software works." msgstr "弄清楚{ph0}軟體如何工作。" -#: website/public/index.html:251 +#: website/public/index.html:257 msgctxt "page:index.html" msgid "Copy this into your coding agent:" msgstr "把這段話複製給程式設計助手:" @@ -5048,33 +5048,33 @@ msgstr "把這段話複製給程式設計助手:" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:254 +#: website/public/index.html:260 #, 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:259 website/public/index.html:283 -#: website/public/index.html:519 website/public/index.html:600 -#: website/public/index.html:824 website/public/index.html:1136 -#: website/public/index.html:1164 +#: website/public/index.html:265 website/public/index.html:289 +#: website/public/index.html:525 website/public/index.html:606 +#: website/public/index.html:830 website/public/index.html:1142 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy" msgstr "複製" -#: website/public/index.html:280 +#: website/public/index.html:286 msgctxt "page:index.html" msgid "Or run this in your terminal:" msgstr "也可以在終端執行:" -#: website/public/index.html:292 +#: website/public/index.html:298 msgctxt "page:index.html" msgid "Approve the setup plan, then restart your agent." msgstr "確認安裝計劃後,重啟程式設計助手。" #. {ph0}: #. {ph1}: -#: website/public/index.html:368 +#: website/public/index.html:374 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}01{ph1} Decode branches" @@ -5082,7 +5082,7 @@ msgstr "{ph0}01{ph1} 分析分支" #. {ph0}: #. {ph1}: -#: website/public/index.html:376 +#: website/public/index.html:382 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}02{ph1} Trace calls" @@ -5090,7 +5090,7 @@ msgstr "{ph0}02{ph1} 追蹤函式呼叫" #. {ph0}: #. {ph1}: -#: website/public/index.html:384 +#: website/public/index.html:390 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}03{ph1} Recover the rule" @@ -5100,20 +5100,20 @@ msgstr "{ph0}03{ph1} 還原計算規則" #. {ph1}: #. {ph2}: -#: website/public/index.html:395 +#: website/public/index.html:401 #, 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:437 +#: website/public/index.html:443 msgctxt "page:index.html" msgid "01 · Which branch?" msgstr "01 · 走哪個分支?" #. {ph0}: #. {ph1}: -#: website/public/index.html:438 +#: website/public/index.html:444 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5121,29 +5121,29 @@ msgid "" "these?”" msgstr "“{ph0}0x5b?0x5c?{ph1}兩個跳轉去了同一個位置。它們對應哪些運算子?”" -#: website/public/index.html:442 +#: website/public/index.html:448 msgctxt "page:index.html" msgid "Look up the command IDs, then label the branch." msgstr "查詢命令 ID,再標明分支含義。" -#: website/public/index.html:448 +#: website/public/index.html:454 msgctxt "page:index.html" msgid "Divide ÷" msgstr "除÷" -#: website/public/index.html:452 +#: website/public/index.html:458 msgctxt "page:index.html" msgid "Multiply ×" msgstr "乘×" -#: website/public/index.html:457 +#: website/public/index.html:463 msgctxt "page:index.html" msgid "02 · What do the calls do?" msgstr "02 · 這些函式呼叫做什麼?" #. {ph0}: #. {ph1}: -#: website/public/index.html:458 +#: website/public/index.html:464 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5151,24 +5151,24 @@ msgid "" "value goes in?{ph1}”" msgstr "“100 很明確,但函式呼叫只有地址。{ph0}哪個負責除法?傳進去的是哪個值?{ph1}”" -#: website/public/index.html:464 +#: website/public/index.html:470 msgctxt "page:index.html" msgid "Inspect the helpers and trace the stored values." msgstr "檢查輔助函式,追蹤儲存的數值。" -#: website/public/index.html:474 +#: website/public/index.html:480 msgctxt "page:index.html" msgid "Divide" msgstr "除法" -#: website/public/index.html:479 +#: website/public/index.html:485 msgctxt "page:index.html" msgid "03 · What is the rule?" msgstr "03 · 規則是什麼?" #. {ph0}: #. {ph1}: -#: website/public/index.html:480 +#: website/public/index.html:486 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5176,19 +5176,19 @@ msgid "" "after +.”" msgstr "“這個分支乘上了另一個輸入。所以在 + 之後,{ph0}10% 表示 200 的 10%{ph1}。”" -#: website/public/index.html:484 +#: website/public/index.html:490 msgctxt "page:index.html" msgid "Name the operands and check both operator paths." msgstr "確定運算元的含義,並檢查兩條運算路徑。" -#: website/public/index.html:500 website/public/index.html:427 +#: website/public/index.html:506 website/public/index.html:433 msgctxt "page:index.html" msgid "Illustrative expert reasoning" msgstr "專家思考過程示意" #. {ph0}: #. {ph1}: -#: website/public/index.html:503 +#: website/public/index.html:509 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5204,87 +5204,87 @@ msgstr "{ph0}你需要讀懂指令、追蹤呼叫,再還原計算過程。{ph1 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:514 +#: website/public/index.html:520 #, 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}示例 prompt · 計算器" -#: website/public/index.html:536 +#: website/public/index.html:542 msgctxt "page:index.html" msgid "Example answer · based on the findings" msgstr "示例回答 · 根據分析結果" #. {ph0}: #. {ph1}: -#: website/public/index.html:539 +#: website/public/index.html:545 #, 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:552 +#: website/public/index.html:558 msgctxt "page:index.html" msgid "REA supplies" msgstr "REA 提供" -#: website/public/index.html:553 +#: website/public/index.html:559 msgctxt "page:index.html" msgid "The handler’s instructions, decompiled code and calls." msgstr "處理函式的指令、反編譯程式碼和呼叫關係。" -#: website/public/index.html:558 +#: website/public/index.html:564 msgctxt "page:index.html" msgid "Your agent explains" msgstr "程式設計助手解釋" -#: website/public/index.html:559 +#: website/public/index.html:565 msgctxt "page:index.html" msgid "Which branch applies, what it calculates and how to rebuild it." msgstr "走哪個分支、怎樣計算,以及如何重新實現。" -#: website/public/index.html:583 +#: website/public/index.html:589 msgctxt "page:index.html" msgid "Example 01 · Chrome’s dinosaur game" msgstr "示例 01 · Chrome 小恐龍游戲" -#: website/public/index.html:584 +#: website/public/index.html:590 msgctxt "page:index.html" msgid "Why does the dinosaur get faster?" msgstr "為什麼恐龍變得更快?" -#: website/public/index.html:663 +#: website/public/index.html:669 msgctxt "page:index.html" msgid "Play" msgstr "開始" -#: website/public/index.html:666 +#: website/public/index.html:672 msgctxt "page:index.html" msgid "Jump ↑" msgstr "跳躍 ↑" -#: website/public/index.html:667 +#: website/public/index.html:673 msgctxt "page:index.html" msgid "Restart" msgstr "重新開始" -#: website/public/index.html:670 +#: website/public/index.html:676 msgctxt "page:index.html" msgid "Speed" msgstr "速度" -#: website/public/index.html:680 +#: website/public/index.html:686 msgctxt "page:index.html" msgid "Use the recovered acceleration rule" msgstr "使用還原的加速規則" -#: website/public/index.html:684 +#: website/public/index.html:690 msgctxt "page:index.html" msgid "Original rule: start at 6, then increase toward 13." msgstr "原版規則:速度從 6 開始,逐漸增加到 13。" -#: website/public/index.html:687 +#: website/public/index.html:693 msgctxt "page:index.html" msgid "Move the slider to set your own speed. Space or Jump clears a cactus." msgstr "拖動滑塊,選擇自己的速度。按空格鍵或“跳躍”越過仙人掌。" @@ -5295,7 +5295,7 @@ msgstr "拖動滑塊,選擇自己的速度。按空格鍵或“跳躍”越過 #. {ph3}: #. {ph4}: -#: website/public/index.html:609 +#: website/public/index.html:615 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5308,18 +5308,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:707 +#: website/public/index.html:713 #, python-brace-format msgctxt "page:index.html" msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}." msgstr "分析目標:{ph0}wayou 基於 Chromium 製作的瀏覽器版本{ph1}。" -#: website/public/index.html:698 +#: website/public/index.html:704 msgctxt "page:index.html" msgid "Open the speed lab →" msgstr "開啟速度實驗室 →" -#: website/public/index.html:729 +#: website/public/index.html:735 msgctxt "page:index.html" msgid "What each part does" msgstr "各部分負責什麼" @@ -5330,7 +5330,7 @@ msgstr "各部分負責什麼" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:731 +#: website/public/index.html:737 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5344,7 +5344,7 @@ msgstr "{ph0}01 · REA{ph1}{ph2}讀取正在執行的遊戲指令碼{ph3}{ph4} #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:738 +#: website/public/index.html:744 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5359,7 +5359,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:746 +#: website/public/index.html:752 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5367,13 +5367,13 @@ msgid "" "acceleration, then choose your own pace.{ph5}" msgstr "{ph0}03 · 你{ph1}{ph2}調整速度,親自試玩{ph3}{ph4}先體驗原版加速,再選擇自己的節奏。{ph5}" -#: website/public/index.html:704 +#: website/public/index.html:710 msgctxt "page:index.html" msgid "See the script, checks and how to try the analysis" msgstr "檢視指令碼、驗證過程和分析步驟" #. {ph0}: index.js -#: website/public/index.html:756 +#: website/public/index.html:762 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5381,7 +5381,7 @@ msgid "" "and returned the loaded {ph0}, including its source and digest." msgstr "REA 透過本地除錯連線檢查 HTTP 瀏覽器版本,返回了已載入的 {ph0},包含原始碼和摘要。" -#: website/public/index.html:769 +#: website/public/index.html:775 msgctxt "page:index.html" msgid "" "We called the original game’s update function in a controlled browser check," @@ -5393,7 +5393,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:775 +#: website/public/index.html:781 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5406,7 +5406,7 @@ msgstr "新小遊戲保留了這條速度規則。繪圖、跳躍和碰撞程式 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:781 +#: website/public/index.html:787 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5421,41 +5421,41 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/index.html:790 +#: website/public/index.html:796 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}" msgstr "{ph0}分析的速度程式碼{ph1} · {ph2}Chromium Authors · BSD 許可證{ph3}" -#: website/public/index.html:807 +#: website/public/index.html:813 msgctxt "page:index.html" msgid "Example 02 · Windows Calculator" msgstr "示例 02 · Windows 計算器" -#: website/public/index.html:808 +#: website/public/index.html:814 msgctxt "page:index.html" msgid "Rebuild Calculator’s % button." msgstr "重新實現計算器的 % 按鈕。" -#: website/public/index.html:913 +#: website/public/index.html:919 msgctxt "page:index.html" msgid "Reset" msgstr "重置" -#: website/public/index.html:921 +#: website/public/index.html:927 msgctxt "page:index.html" msgid "10% of 200 = 20. Then 200 + 20 = 220." msgstr "200的10%=20. 則200+20=220。" -#: website/public/index.html:924 +#: website/public/index.html:930 msgctxt "page:index.html" msgid "Interactive illustration of the inspected percentage rule." msgstr "根據實際分析得到的百分比規則製作的互動示例。" #. {ph0}: previous = 200 #. {ph1}: current = 10 -#: website/public/index.html:932 +#: website/public/index.html:938 #, python-brace-format msgctxt "page:index.html" msgid "For this example, {ph0} and {ph1}." @@ -5467,7 +5467,7 @@ msgstr "對於這個例子, {ph0} 和 {ph1}." #. {ph3}: #. {ph4}: -#: website/public/index.html:833 +#: website/public/index.html:839 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5478,7 +5478,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 檢查 Windows 計算器的 % 按鈕。還原 + 和 × " "後的規則,再做一個同時採用這兩條規則的小計算器。{ph3}{ph4}{ph5}" -#: website/public/index.html:849 +#: website/public/index.html:855 msgctxt "page:index.html" msgid "With +" msgstr "在 + 之後" @@ -5486,13 +5486,13 @@ msgstr "在 + 之後" #. {ph0}: #. {ph1}: #. {ph2}: 10% of 200 = 20 → 200 + 20 = 220 -#: website/public/index.html:850 +#: website/public/index.html:856 #, 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:856 +#: website/public/index.html:862 msgctxt "page:index.html" msgid "With ×" msgstr "在 × 之後" @@ -5500,13 +5500,13 @@ msgstr "在 × 之後" #. {ph0}: #. {ph1}: #. {ph2}: 200 × 0.1 = 20 -#: website/public/index.html:857 +#: website/public/index.html:863 #, 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:947 +#: website/public/index.html:953 msgctxt "page:index.html" msgid "From the installed app to a working % button" msgstr "從已安裝的應用,到能執行的 % 按鈕" @@ -5518,7 +5518,7 @@ msgstr "從已安裝的應用,到能執行的 % 按鈕" #. {ph4}: #. {ph5}: 100 #. {ph6}: -#: website/public/index.html:960 +#: website/public/index.html:966 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5534,7 +5534,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:968 +#: website/public/index.html:974 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5545,12 +5545,12 @@ msgstr "" "{ph0}03 · 程式設計助手解釋{ph1}{ph2}解釋並復現規則{ph3}{ph4}對照 Microsoft 的原始碼核實分支,再試試上面的 + " "和 ×。{ph5}" -#: website/public/index.html:931 +#: website/public/index.html:937 msgctxt "page:index.html" msgid "See the real code and how the answer was checked" msgstr "檢視實際程式碼和驗證方式" -#: website/public/index.html:1003 +#: website/public/index.html:1009 msgctxt "page:index.html" msgid "" "Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable " @@ -5570,7 +5570,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/index.html:1008 +#: website/public/index.html:1014 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -5578,80 +5578,80 @@ msgid "" "{ph4}Native setup guide{ph5}" msgstr "{ph0}百分比實現{ph1} · {ph2}Microsoft 測試用例{ph3} · {ph4}原生分析配置指南{ph5}" -#: website/public/index.html:1077 +#: website/public/index.html:1083 msgctxt "page:index.html" msgid "Your first investigation" msgstr "第一次調查" -#: website/public/index.html:1078 +#: website/public/index.html:1084 msgctxt "page:index.html" msgid "Try REA on a small app." msgstr "用一個小應用試試 REA。" -#: website/public/index.html:1079 +#: website/public/index.html:1085 msgctxt "page:index.html" msgid "" "Download our Notes example, trace its CSV export, and check one changed " "input." msgstr "下載 Notes 示例,追蹤 CSV 匯出,再修改一個輸入來驗證。" -#: website/public/index.html:1084 +#: website/public/index.html:1090 msgctxt "page:index.html" msgid "Try the guided example" msgstr "跟著示例開始" -#: website/public/index.html:1101 +#: website/public/index.html:1107 msgctxt "page:index.html" msgid "Native binaries" msgstr "原生二進位制" -#: website/public/index.html:1102 +#: website/public/index.html:1108 msgctxt "page:index.html" msgid "" "Inspect functions, strings, references and call relationships in executables" " and libraries." msgstr "檢查可執行檔案和庫中的函式、字串、引用和函式呼叫關係。" -#: website/public/index.html:1106 +#: website/public/index.html:1112 msgctxt "page:index.html" msgid "Native analysis guide" msgstr "原生分析指南" -#: website/public/index.html:1109 +#: website/public/index.html:1115 msgctxt "page:index.html" msgid "JavaScript & Electron" msgstr "JavaScript&Electron" -#: website/public/index.html:1110 +#: website/public/index.html:1116 msgctxt "page:index.html" msgid "" "Map modules, routes, IPC and native dependencies from an application folder " "or ASAR archive." msgstr "從應用目錄或 ASAR 檔案中分析模組、路由、IPC 和原生依賴。" -#: website/public/index.html:1114 +#: website/public/index.html:1120 msgctxt "page:index.html" msgid "Application workflows" msgstr "應用分析流程" -#: website/public/index.html:1117 +#: website/public/index.html:1123 msgctxt "page:index.html" msgid "Browser & runtime activity" msgstr "瀏覽器與執行時活動" -#: website/public/index.html:1118 +#: website/public/index.html:1124 msgctxt "page:index.html" msgid "" "Capture selected browser or process activity, then compare the results " "across runs." msgstr "記錄指定的瀏覽器或程序活動,再比較不同執行的結果。" -#: website/public/index.html:1122 +#: website/public/index.html:1128 msgctxt "page:index.html" msgid "Browser observation guide" msgstr "瀏覽器觀察指南" -#: website/public/index.html:1193 +#: website/public/index.html:1199 msgctxt "page:index.html" msgid "Any questions?" msgstr "有什麼問題嗎?" @@ -5668,54 +5668,54 @@ msgid "" " Follow clear guides and try interactive examples with REA." msgstr "和程式設計助手一起分析應用、二進位制檔案和瀏覽器行為。跟著清晰的指南,體驗 REA 的互動示例。" -#: website/public/index.html:259 +#: website/public/index.html:265 msgctxt "page:index.html" msgid "Copy REA installation prompt" msgstr "複製REA安裝提示" -#: website/public/index.html:283 +#: website/public/index.html:289 msgctxt "page:index.html" msgid "Copy setup command" msgstr "複製安裝命令" -#: website/public/index.html:363 +#: website/public/index.html:369 msgctxt "page:index.html" msgid "Follow the manual Calculator analysis" msgstr "按照手動計算器分析" -#: website/public/index.html:519 +#: website/public/index.html:525 msgctxt "page:index.html" msgid "Copy Calculator percentage question" msgstr "複製計算器百分比問題" -#: website/public/index.html:653 +#: website/public/index.html:659 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:600 +#: website/public/index.html:606 msgctxt "page:index.html" msgid "Copy dinosaur analysis prompt" msgstr "複製恐龍分析提示" -#: website/public/index.html:870 +#: website/public/index.html:876 msgctxt "page:index.html" msgid "Choose the calculation" msgstr "選擇計算" -#: website/public/index.html:824 +#: website/public/index.html:830 msgctxt "page:index.html" msgid "Copy Calculator analysis prompt" msgstr "複製計算器分析提示" -#: website/public/index.html:1228 +#: website/public/index.html:1234 msgctxt "page:index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/aegis/index.html:108 +#: website/public/showcase/aegis/index.html:114 msgctxt "page:showcase/aegis/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -5724,43 +5724,43 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:200 +#: website/public/showcase/aegis/index.html:206 #, 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:203 +#: website/public/showcase/aegis/index.html:209 msgctxt "page:showcase/aegis/index.html" msgid "Case study · Aegis Authenticator" msgstr "案例研究 · Aegis驗證器" #. {ph0}:
-#: website/public/showcase/aegis/index.html:204 +#: website/public/showcase/aegis/index.html:210 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "How does an authenticator{ph0}generate a login code?" msgstr "身份驗證器如何{ph0}生成登入程式碼?" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:205 +#: website/public/showcase/aegis/index.html:211 msgctxt "page:showcase/aegis/index.html" msgid "" "A six-digit code changes every 30 seconds. Use REA to find the calculation " "in an Android APK, then rebuild it with a clock you can control." msgstr "六位驗證碼每 30 秒變化一次。用 REA 在 Android APK 中找出計算方法,再重建一個可調節時鐘的演示。" -#: website/public/showcase/aegis/index.html:210 +#: website/public/showcase/aegis/index.html:216 msgctxt "page:showcase/aegis/index.html" msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB" msgstr "Aegis 3.4.3 · Android · 正式釋出 APK ·6.9MB" -#: website/public/showcase/aegis/index.html:213 +#: website/public/showcase/aegis/index.html:219 msgctxt "page:showcase/aegis/index.html" msgid "View Aegis on GitHub" msgstr "在GitHub上檢視Aegis" -#: website/public/showcase/aegis/index.html:219 +#: website/public/showcase/aegis/index.html:225 msgctxt "page:showcase/aegis/index.html" msgid "From an APK to a code you can reproduce" msgstr "從 APK 還原可復現的驗證碼" @@ -5772,7 +5772,7 @@ msgstr "從 APK 還原可復現的驗證碼" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:221 +#: website/public/showcase/aegis/index.html:227 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5790,7 +5790,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:230 +#: website/public/showcase/aegis/index.html:236 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5808,7 +5808,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:238 +#: website/public/showcase/aegis/index.html:244 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5818,14 +5818,14 @@ msgid "" msgstr "" "{ph0}03 · 重建並驗證{ph1}{ph2}調整時鐘,檢視驗證碼。{ph3}{ph4}新的瀏覽器演示覆現規則,再用公開對照用例檢查。{ph5}" -#: website/public/showcase/aegis/index.html:251 +#: website/public/showcase/aegis/index.html:257 msgctxt "page:showcase/aegis/index.html" msgid "In this case study" msgstr "在本個案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:253 +#: website/public/showcase/aegis/index.html:259 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Ask your agent{ph1}" @@ -5833,7 +5833,7 @@ msgstr "{ph0}問問你的程式設計助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:254 +#: website/public/showcase/aegis/index.html:260 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Try the code generator{ph1}" @@ -5841,7 +5841,7 @@ msgstr "{ph0}試試程式碼生成器{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:255 +#: website/public/showcase/aegis/index.html:261 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Find the code with REA{ph1}" @@ -5849,7 +5849,7 @@ msgstr "{ph0}用REA查詢程式碼 {ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:256 +#: website/public/showcase/aegis/index.html:262 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Read the calculation{ph1}" @@ -5857,7 +5857,7 @@ msgstr "{ph0}閱讀計算{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:257 +#: website/public/showcase/aegis/index.html:263 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}Check the reconstruction{ph1}" @@ -5865,20 +5865,20 @@ msgstr "{ph0}檢查重建{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:258 +#: website/public/showcase/aegis/index.html:264 #, 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:263 +#: website/public/showcase/aegis/index.html:269 msgctxt "page:showcase/aegis/index.html" msgid "Ask your agent" msgstr "問問你的程式設計助手" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:264 +#: website/public/showcase/aegis/index.html:270 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5894,14 +5894,14 @@ msgstr "該應用程式顯示更改的登入程式碼。 我們想找到 {ph0} #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/aegis/index.html:270 +#: website/public/showcase/aegis/index.html:276 #, 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:274 -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:280 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy" msgstr "複製" @@ -5909,7 +5909,7 @@ msgstr "複製" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:294 +#: website/public/showcase/aegis/index.html:300 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5918,7 +5918,7 @@ msgid "" msgstr "" "這是用於下載的 APK 的示例 prompt,需要先配置 REA 的 Android 分析後端。{ph0}獲取 APK 和分析配置 ↓{ph1}" -#: website/public/showcase/aegis/index.html:302 +#: website/public/showcase/aegis/index.html:308 msgctxt "page:showcase/aegis/index.html" msgid "Try the code generator" msgstr "試試程式碼生成器" @@ -5926,7 +5926,7 @@ msgstr "試試程式碼生成器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:303 +#: website/public/showcase/aegis/index.html:309 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -5935,33 +5935,33 @@ msgid "" "produce the same code." msgstr "應用把時間劃分為{ph0}每塊 30 秒{ph1},再結合時間塊編號和賬戶金鑰生成驗證碼。同樣的金鑰和時間塊,會得到同樣的驗證碼。" -#: website/public/showcase/aegis/index.html:310 +#: website/public/showcase/aegis/index.html:316 msgctxt "page:showcase/aegis/index.html" msgid "Move the clock across 60 seconds" msgstr "將時鐘移動60秒" -#: website/public/showcase/aegis/index.html:313 +#: website/public/showcase/aegis/index.html:319 msgctxt "page:showcase/aegis/index.html" msgid "Time" msgstr "時間" -#: website/public/showcase/aegis/index.html:315 +#: website/public/showcase/aegis/index.html:321 msgctxt "page:showcase/aegis/index.html" msgid "seconds" msgstr "秒數" -#: website/public/showcase/aegis/index.html:316 +#: website/public/showcase/aegis/index.html:322 msgctxt "page:showcase/aegis/index.html" msgid "Our adjustable example clock" msgstr "我們的可調節示例時鐘" -#: website/public/showcase/aegis/index.html:319 +#: website/public/showcase/aegis/index.html:325 msgctxt "page:showcase/aegis/index.html" msgid "30-second block" msgstr "30秒區塊" -#: website/public/showcase/aegis/index.html:321 -#: website/public/showcase/aegis/index.html:648 +#: website/public/showcase/aegis/index.html:327 +#: website/public/showcase/aegis/index.html:654 msgctxt "page:showcase/aegis/index.html" msgid "Block" msgstr "時間塊" @@ -5970,35 +5970,35 @@ msgstr "時間塊" #. {ph1}:
#. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:322 +#: website/public/showcase/aegis/index.html:328 #, 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:330 +#: website/public/showcase/aegis/index.html:336 msgctxt "page:showcase/aegis/index.html" msgid "Generated code" msgstr "生成的驗證碼" -#: website/public/showcase/aegis/index.html:338 +#: website/public/showcase/aegis/index.html:344 msgctxt "page:showcase/aegis/index.html" msgid "Account key + block → six digits" msgstr "帳戶金鑰+區塊→六位數字" -#: website/public/showcase/aegis/index.html:344 +#: website/public/showcase/aegis/index.html:350 msgctxt "page:showcase/aegis/index.html" msgid "Example time, in seconds" msgstr "示例時間,以秒為單位" -#: website/public/showcase/aegis/index.html:359 -#: website/public/showcase/aegis/index.html:659 +#: website/public/showcase/aegis/index.html:365 +#: website/public/showcase/aegis/index.html:665 msgctxt "page:showcase/aegis/index.html" msgid "59 seconds" msgstr "59秒" -#: website/public/showcase/aegis/index.html:366 -#: website/public/showcase/aegis/index.html:664 +#: website/public/showcase/aegis/index.html:372 +#: website/public/showcase/aegis/index.html:670 msgctxt "page:showcase/aegis/index.html" msgid "60 seconds" msgstr "60秒" @@ -6007,7 +6007,7 @@ msgstr "60秒" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:375 +#: website/public/showcase/aegis/index.html:381 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6017,7 +6017,7 @@ msgstr "在59秒: {ph0}287082.{ph1} 在60秒: {ph2}359152.{ph3} 在一個塊內 #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:382 +#: website/public/showcase/aegis/index.html:388 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6025,26 +6025,26 @@ msgid "" "the calculation recovered from the APK." msgstr "金鑰是固定的,公開的 {ph0}RFC6238測試資料{ph1}. 該演示實現了從APK恢復的計算。" -#: website/public/showcase/aegis/index.html:389 +#: website/public/showcase/aegis/index.html:395 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:398 +#: website/public/showcase/aegis/index.html:404 msgctxt "page:showcase/aegis/index.html" msgid "Find the code with REA" msgstr "用REA查詢程式碼" -#: website/public/showcase/aegis/index.html:401 +#: website/public/showcase/aegis/index.html:407 msgctxt "page:showcase/aegis/index.html" msgid "Narrow the APK to three classes" msgstr "將APK縮小到三個類" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: TotpInfo -#: website/public/showcase/aegis/index.html:426 +#: website/public/showcase/aegis/index.html:432 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6052,7 +6052,7 @@ msgid "" "and imported accounts. TOTP means a time-based one-time password." msgstr "{ph0} 是計算邏輯的候選方法;另外兩個涉及進度條和匯入的賬戶。TOTP 指基於時間的一次性密碼。" -#: website/public/showcase/aegis/index.html:433 +#: website/public/showcase/aegis/index.html:439 msgctxt "page:showcase/aegis/index.html" msgid "Connect the generator to the app's display" msgstr "將生成器連線到應用程式的顯示器" @@ -6060,7 +6060,7 @@ msgstr "將生成器連線到應用程式的顯示器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: EntryHolder.getOtp #. {ph1}: TotpInfo.getOtp(timestamp) -#: website/public/showcase/aegis/index.html:461 +#: website/public/showcase/aegis/index.html:467 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6069,7 +6069,7 @@ msgid "" msgstr "REA 找到接受時間戳的方法過載,並定位基礎方法的呼叫方。繼續檢查 {ph0},就能看到顯示邏輯呼叫了 {ph1}。" #. {ph0}: com.beemdevelopment.aegis -#: website/public/showcase/aegis/index.html:469 +#: website/public/showcase/aegis/index.html:475 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6077,7 +6077,7 @@ msgid "" "{ph0} prefix." msgstr "請求顯示縮短的輸入路徑。 結果類名省略常用 {ph0} 字首。" -#: website/public/showcase/aegis/index.html:476 +#: website/public/showcase/aegis/index.html:482 msgctxt "page:showcase/aegis/index.html" msgid "Read the calculation" msgstr "閱讀計算" @@ -6085,7 +6085,7 @@ msgstr "閱讀計算" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:477 +#: website/public/showcase/aegis/index.html:483 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6097,7 +6097,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:492 +#: website/public/showcase/aegis/index.html:498 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}01{ph1} Time block" @@ -6105,7 +6105,7 @@ msgstr "{ph0}01{ph1} 時間塊" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:500 +#: website/public/showcase/aegis/index.html:506 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}02{ph1} Key + block" @@ -6113,7 +6113,7 @@ msgstr "{ph0}02{ph1} 鍵+塊" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:508 +#: website/public/showcase/aegis/index.html:514 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}03{ph1} Six digits" @@ -6121,7 +6121,7 @@ msgstr "{ph0}03{ph1} 六位數" #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:567 +#: website/public/showcase/aegis/index.html:573 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6132,7 +6132,7 @@ msgstr "{ph0}時間選擇塊。{ph1} 秒30到59都給塊1。 在60秒時,塊 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:573 +#: website/public/showcase/aegis/index.html:579 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6144,7 +6144,7 @@ msgstr "{ph0}金鑰也會影響結果。{ph1} 生成函式把賬戶金鑰和時 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:580 +#: website/public/showcase/aegis/index.html:586 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6157,7 +6157,7 @@ msgstr "{ph0}保留六位數字。{ph1} 取除以 1,000,000 的餘數,位數 #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:587 +#: website/public/showcase/aegis/index.html:593 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6165,7 +6165,7 @@ msgid "" " 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:596 +#: website/public/showcase/aegis/index.html:602 msgctxt "page:showcase/aegis/index.html" msgid "Inside the generator" msgstr "驗證碼生成函式內部" @@ -6175,7 +6175,7 @@ msgstr "驗證碼生成函式內部" #. {ph1}: kotlin.ExceptionsKt #. {ph2}: TotpInfo #. {ph3}: HOTP -#: website/public/showcase/aegis/index.html:597 +#: website/public/showcase/aegis/index.html:603 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6185,7 +6185,7 @@ msgstr "" "釋出的 APK 將 {ph0} 放在 {ph1} 中。REA 從 {ph2} 追蹤呼叫,並返回這個函式體;原始原始碼把輔助函式命名為 {ph3}。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:619 +#: website/public/showcase/aegis/index.html:625 msgctxt "page:showcase/aegis/index.html" msgid "" "The last hash byte selects a position. Four bytes at that position provide a" @@ -6200,13 +6200,13 @@ msgstr "" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java" #. > #. {ph1}: -#: website/public/showcase/aegis/index.html:626 +#: website/public/showcase/aegis/index.html:632 #, 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:636 +#: website/public/showcase/aegis/index.html:642 msgctxt "page:showcase/aegis/index.html" msgid "Check the reconstruction" msgstr "檢查重建" @@ -6214,7 +6214,7 @@ msgstr "檢查重建" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:637 +#: website/public/showcase/aegis/index.html:643 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6225,22 +6225,22 @@ msgstr "" "我們將選定的 REA 返回的 Java 方法放進小型測試程式。它們的輸出與獨立重建的實現一致,共驗證 {ph0}133 " "個測試用例{ph1},包括時間塊邊界和以零開頭的驗證碼。" -#: website/public/showcase/aegis/index.html:647 +#: website/public/showcase/aegis/index.html:653 msgctxt "page:showcase/aegis/index.html" msgid "Example time" msgstr "示例時間" -#: website/public/showcase/aegis/index.html:649 +#: website/public/showcase/aegis/index.html:655 msgctxt "page:showcase/aegis/index.html" msgid "Six-digit code" msgstr "六位驗證碼" -#: website/public/showcase/aegis/index.html:654 +#: website/public/showcase/aegis/index.html:660 msgctxt "page:showcase/aegis/index.html" msgid "30 seconds" msgstr "30秒" -#: website/public/showcase/aegis/index.html:669 +#: website/public/showcase/aegis/index.html:675 msgctxt "page:showcase/aegis/index.html" msgid "1,111,111,109 seconds" msgstr "1,111,111,109秒" @@ -6248,7 +6248,7 @@ msgstr "1,111,111,109秒" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:676 +#: website/public/showcase/aegis/index.html:682 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6256,31 +6256,31 @@ msgid "" "{ph0}RFC 6238{ph1}. Check the browser implementation against them:" msgstr "生成函式還符合 {ph0}RFC 6238{ph1} 中釋出的六個 SHA-1 對照用例。可以用這些用例檢查瀏覽器實現:" -#: website/public/showcase/aegis/index.html:684 +#: website/public/showcase/aegis/index.html:690 msgctxt "page:showcase/aegis/index.html" msgid "Run reference checks" msgstr "執行對照檢查" -#: website/public/showcase/aegis/index.html:691 +#: website/public/showcase/aegis/index.html:697 msgctxt "page:showcase/aegis/index.html" msgid "Read the demo's calculation" msgstr "閱讀演示的計算" -#: website/public/showcase/aegis/index.html:695 +#: website/public/showcase/aegis/index.html:701 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:704 +#: website/public/showcase/aegis/index.html:710 msgctxt "page:showcase/aegis/index.html" msgid "" "Verification runs extracted Java methods and the new demo. The Android APK " "was inspected statically." msgstr "驗證執行提取的Java方法和新的演示。 對Android APK進行了靜態檢查。" -#: website/public/showcase/aegis/index.html:711 +#: website/public/showcase/aegis/index.html:717 msgctxt "page:showcase/aegis/index.html" msgid "Inspect the APK yourself" msgstr "親自檢查APK" @@ -6288,7 +6288,7 @@ msgstr "親自檢查APK" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:712 +#: website/public/showcase/aegis/index.html:718 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6300,7 +6300,7 @@ msgstr "" #. {ph0}: JAVA_HOME #. {ph1}: PATH -#: website/public/showcase/aegis/index.html:717 +#: website/public/showcase/aegis/index.html:723 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6308,19 +6308,19 @@ msgid "" "{ph1}. This case used JDK 21." msgstr "Android分析需要完整的JDK17或更高版本。 選擇它與 {ph0} 或 {ph1}. 本案例使用了JDK21。" -#: website/public/showcase/aegis/index.html:733 +#: website/public/showcase/aegis/index.html:739 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:736 +#: website/public/showcase/aegis/index.html:742 msgctxt "page:showcase/aegis/index.html" msgid "macOS / Linux" msgstr "macOS/Linux" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: REA_JADX_MCP_JAR -#: website/public/showcase/aegis/index.html:750 +#: website/public/showcase/aegis/index.html:756 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6330,7 +6330,7 @@ msgstr "助手可以透過 REA CLI 繼續使用上方的 prompt。如果使用 M #. {ph0}: #. {ph1}: -#: website/public/showcase/aegis/index.html:755 +#: website/public/showcase/aegis/index.html:761 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6338,7 +6338,7 @@ msgid "" "different time interval?{ph1}" msgstr "下一個問題: {ph0}當帳戶使用八位數字或不同的時間間隔時會發生什麼?{ph1}" -#: website/public/showcase/aegis/index.html:765 +#: website/public/showcase/aegis/index.html:771 msgctxt "page:showcase/aegis/index.html" msgid "Sources" msgstr "資料來源" @@ -6354,7 +6354,7 @@ msgstr "資料來源" #. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE" #. > #. {ph5}: -#: website/public/showcase/aegis/index.html:767 +#: website/public/showcase/aegis/index.html:773 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -6366,14 +6366,14 @@ msgstr "{ph0}官方Aegis3.4.3釋出{ph1} · {ph2}匹配源提交{ph3} · {ph4}GP #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/aegis/index.html:783 +#: website/public/showcase/aegis/index.html:789 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}" msgstr "{ph0}RFC6238參考案例{ph1} · {ph2}演示測試資料{ph3}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/aegis/index.html:790 +#: website/public/showcase/aegis/index.html:796 msgctxt "page:showcase/aegis/index.html" msgid "" "Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited" @@ -6394,37 +6394,37 @@ msgid "" "calculation and try a reconstruction with an adjustable clock." msgstr "用 REA 檢查 Aegis Android APK,還原六位登入驗證碼的計算,再試玩可調時鐘的重建演示。" -#: website/public/showcase/aegis/index.html:250 +#: website/public/showcase/aegis/index.html:256 msgctxt "page:showcase/aegis/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/showcase/aegis/index.html:261 +#: website/public/showcase/aegis/index.html:267 msgctxt "page:showcase/aegis/index.html" msgid "Aegis APK case study" msgstr "Aegis APK案例研究" -#: website/public/showcase/aegis/index.html:274 +#: website/public/showcase/aegis/index.html:280 msgctxt "page:showcase/aegis/index.html" msgid "Copy Aegis example prompt" msgstr "複製Aegis示例提示" -#: website/public/showcase/aegis/index.html:487 +#: website/public/showcase/aegis/index.html:493 msgctxt "page:showcase/aegis/index.html" msgid "Follow the login-code calculation" msgstr "按照登入程式碼計算" -#: website/public/showcase/aegis/index.html:737 +#: website/public/showcase/aegis/index.html:743 msgctxt "page:showcase/aegis/index.html" msgid "Copy APK inspection command" msgstr "複製APK檢查命令" -#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/aegis/index.html:820 msgctxt "page:showcase/aegis/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/ctf/index.html:107 +#: website/public/showcase/ctf/index.html:113 msgctxt "page:showcase/ctf/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -6433,26 +6433,26 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/ctf/index.html:199 +#: website/public/showcase/ctf/index.html:205 #, 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:202 +#: website/public/showcase/ctf/index.html:208 msgctxt "page:showcase/ctf/index.html" msgid "Case study · DownUnderCTF 2023" msgstr "案例研究·Downunderctf2023" #. {ph0}:
-#: website/public/showcase/ctf/index.html:203 +#: website/public/showcase/ctf/index.html:209 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "Find the flag in{ph0}a CTF binary." msgstr "找到國旗{ph0}一個CTF二進位制檔案。" #. {ph0}: Correct! -#: website/public/showcase/ctf/index.html:204 +#: website/public/showcase/ctf/index.html:210 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6460,17 +6460,17 @@ msgid "" "find an input that makes the original program print {ph0}." msgstr "使用方法 REA 要檢查一個小的flag 檢查器,將其規則轉換為方程,並找到一個使原始程式列印的輸入 {ph0}." -#: website/public/showcase/ctf/index.html:209 +#: website/public/showcase/ctf/index.html:215 msgctxt "page:showcase/ctf/index.html" msgid "masked squares flag checker · Easy · Linux x86-64" msgstr "蒙面方格旗檢查器 · 容易·Linuxx86-64" -#: website/public/showcase/ctf/index.html:212 +#: website/public/showcase/ctf/index.html:218 msgctxt "page:showcase/ctf/index.html" msgid "View the original challenge" msgstr "檢視原始挑戰" -#: website/public/showcase/ctf/index.html:220 +#: website/public/showcase/ctf/index.html:226 msgctxt "page:showcase/ctf/index.html" msgid "From a binary to a checked answer" msgstr "從二進位制到檢查答案" @@ -6481,7 +6481,7 @@ msgstr "從二進位制到檢查答案" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:222 +#: website/public/showcase/ctf/index.html:228 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6497,7 +6497,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:230 +#: website/public/showcase/ctf/index.html:236 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6514,7 +6514,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/ctf/index.html:238 +#: website/public/showcase/ctf/index.html:244 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6525,20 +6525,20 @@ msgstr "" "{ph0}03 · 解決並執行{ph1}{ph2}恢復旗→正確!{ph3}{ph4}一個Python指令碼解決方程. REA " "捕獲接受結果的原始程式。{ph5}" -#: website/public/showcase/ctf/index.html:247 +#: website/public/showcase/ctf/index.html:253 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:255 +#: website/public/showcase/ctf/index.html:261 msgctxt "page:showcase/ctf/index.html" msgid "In this case study" msgstr "在本個案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:257 +#: website/public/showcase/ctf/index.html:263 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Find the checking code{ph1}" @@ -6546,7 +6546,7 @@ msgstr "{ph0}查詢檢查程式碼{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:258 +#: website/public/showcase/ctf/index.html:264 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Read one mask{ph1}" @@ -6554,7 +6554,7 @@ msgstr "{ph0}讀一個面具{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:259 +#: website/public/showcase/ctf/index.html:265 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Assembly to readable code{ph1}" @@ -6562,7 +6562,7 @@ msgstr "{ph0}彙編到可讀程式碼{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:260 +#: website/public/showcase/ctf/index.html:266 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Solve the equations{ph1}" @@ -6570,7 +6570,7 @@ msgstr "{ph0}解方程{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:261 +#: website/public/showcase/ctf/index.html:267 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Check the answer{ph1}" @@ -6578,20 +6578,20 @@ msgstr "{ph0}檢查答案{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:262 +#: website/public/showcase/ctf/index.html:268 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}Try it yourself{ph1}" msgstr "{ph0}你自己試試吧{ph1}" -#: website/public/showcase/ctf/index.html:267 +#: website/public/showcase/ctf/index.html:273 msgctxt "page:showcase/ctf/index.html" msgid "Find the checking code" msgstr "查詢檢查程式碼" #. {ph0}: Correct! #. {ph1}: Incorrect! -#: website/public/showcase/ctf/index.html:268 +#: website/public/showcase/ctf/index.html:274 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6607,17 +6607,17 @@ msgstr "講義是一個15KB可執行檔案。 它要求一面旗幟,然後列 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/ctf/index.html:275 +#: website/public/showcase/ctf/index.html:281 #, 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:280 -#: website/public/showcase/ctf/index.html:499 -#: website/public/showcase/ctf/index.html:523 -#: website/public/showcase/ctf/index.html:593 -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:286 +#: website/public/showcase/ctf/index.html:505 +#: website/public/showcase/ctf/index.html:529 +#: website/public/showcase/ctf/index.html:599 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy" msgstr "複製" @@ -6628,7 +6628,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/showcase/ctf/index.html:289 +#: website/public/showcase/ctf/index.html:295 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6639,33 +6639,33 @@ msgstr "" "{ph0}›{ph1}{ph2}使用REA分析ms_flag_checker並找到標誌。 " "解釋檢查是如何工作的,然後用原始程式驗證答案。{ph3}{ph4}{ph5}" -#: website/public/showcase/ctf/index.html:298 +#: website/public/showcase/ctf/index.html:304 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:304 +#: website/public/showcase/ctf/index.html:310 msgctxt "page:showcase/ctf/index.html" msgid "Follow the input prompt to its function" msgstr "按照輸入提示到其函式" -#: website/public/showcase/ctf/index.html:333 +#: website/public/showcase/ctf/index.html:339 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:340 +#: website/public/showcase/ctf/index.html:346 msgctxt "page:showcase/ctf/index.html" msgid "Read the checker and its two helpers" msgstr "閱讀檢查器和它的兩個助手" #. {ph0}: 0x18 #. {ph1}: 0x270 -#: website/public/showcase/ctf/index.html:368 +#: website/public/showcase/ctf/index.html:374 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6676,19 +6676,19 @@ msgstr "" "第一個迴圈複製36個字元程式碼。 檢查迴圈解碼掩碼,對所選程式碼求和,並將結果與儲存的數字進行比較。 其 {ph0}-位元組跨步 {ph1} " "位元組給出26個掩碼。" -#: website/public/showcase/ctf/index.html:376 +#: website/public/showcase/ctf/index.html:382 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:384 +#: website/public/showcase/ctf/index.html:390 msgctxt "page:showcase/ctf/index.html" msgid "One check reveals one character" msgstr "一張檢查顯示一個字元" -#: website/public/showcase/ctf/index.html:385 +#: website/public/showcase/ctf/index.html:391 msgctxt "page:showcase/ctf/index.html" msgid "" "The checker arranges the input in a 6×6 grid. A mask chooses which cells " @@ -6698,13 +6698,13 @@ msgstr "檢查器將輸入排列在6×6網格中。 掩碼選擇哪些單元格 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:405 +#: website/public/showcase/ctf/index.html:411 #, 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:412 +#: website/public/showcase/ctf/index.html:418 msgctxt "page:showcase/ctf/index.html" msgid "Read the mask and its target from the binary" msgstr "從二進位制檔案中讀取掩碼及其目標" @@ -6713,7 +6713,7 @@ msgstr "從二進位制檔案中讀取掩碼及其目標" #. {ph1}: eb #. {ph2}: code[21] = 55 #. {ph3}: 7 -#: website/public/showcase/ctf/index.html:434 +#: website/public/showcase/ctf/index.html:440 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6724,12 +6724,12 @@ msgstr "" "指示 {ph0} 將掩碼位元組讀取為有符號值。 這就是為什麼 {ph1} 表示-21. 目標是一個小端整數。 這些位元組一起告訴程式設計助手 " "{ph2},所以該字元是 {ph3}." -#: website/public/showcase/ctf/index.html:443 +#: website/public/showcase/ctf/index.html:449 msgctxt "page:showcase/ctf/index.html" msgid "From instructions to a readable check" msgstr "從指令到可讀的檢查" -#: website/public/showcase/ctf/index.html:444 +#: website/public/showcase/ctf/index.html:450 msgctxt "page:showcase/ctf/index.html" msgid "" "Select a step to connect the summing helper and its caller to the same rule " @@ -6738,7 +6738,7 @@ msgstr "選擇一個步驟將求和幫助程式及其呼叫者連線到C中的 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:454 +#: website/public/showcase/ctf/index.html:460 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01{ph1} Start" @@ -6746,7 +6746,7 @@ msgstr "{ph0}01{ph1} 開始" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:462 +#: website/public/showcase/ctf/index.html:468 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}02{ph1} Select" @@ -6754,7 +6754,7 @@ msgstr "{ph0}02{ph1} 選擇" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:470 +#: website/public/showcase/ctf/index.html:476 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}03{ph1} Add" @@ -6762,7 +6762,7 @@ msgstr "{ph0}03{ph1} 新增" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:478 +#: website/public/showcase/ctf/index.html:484 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}04{ph1} Advance" @@ -6770,18 +6770,18 @@ msgstr "{ph0}04{ph1} 前進,前進" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:486 +#: website/public/showcase/ctf/index.html:492 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}05{ph1} Compare" msgstr "{ph0}05{ph1} 比較一下" -#: website/public/showcase/ctf/index.html:498 +#: website/public/showcase/ctf/index.html:504 msgctxt "page:showcase/ctf/index.html" msgid "REA · selected original instructions" msgstr "REA · 選定的原始說明" -#: website/public/showcase/ctf/index.html:522 +#: website/public/showcase/ctf/index.html:528 msgctxt "page:showcase/ctf/index.html" msgid "Readable C · one-check summary" msgstr "可讀的C · 一檢查摘要" @@ -6789,7 +6789,7 @@ msgstr "可讀的C · 一檢查摘要" #. {ph0}: #. {ph1}: #. {ph2}: ECX -#: website/public/showcase/ctf/index.html:551 +#: website/public/showcase/ctf/index.html:557 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum." @@ -6797,7 +6797,7 @@ msgstr "{ph0}01 · 從零開始。{ph1} {ph2} 持有執行總和。" #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:555 +#: website/public/showcase/ctf/index.html:561 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6807,7 +6807,7 @@ msgstr "{ph0}02 · 檢查掩碼單元格。{ph1} 零值跳過字元;非零值包 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:559 +#: website/public/showcase/ctf/index.html:565 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6817,7 +6817,7 @@ msgstr "{ph0}03 · 新增字元程式碼。{ph1} 輸入在相同偏移量處的 #. {ph0}: #. {ph1}: -#: website/public/showcase/ctf/index.html:563 +#: website/public/showcase/ctf/index.html:569 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6829,7 +6829,7 @@ msgstr "{ph0}04 · 移動到下一個單元格。{ph1} 原始迴圈每個整數 #. {ph1}: #. {ph2}: EAX #. {ph3}: Incorrect! -#: website/public/showcase/ctf/index.html:568 +#: website/public/showcase/ctf/index.html:574 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6837,19 +6837,19 @@ msgid "" "in {ph2}. A mismatch jumps to {ph3}." msgstr "{ph0}05 · 與儲存的目標進行比較。{ph1} 呼叫方在 {ph2}. 不匹配跳轉到 {ph3}." -#: website/public/showcase/ctf/index.html:575 +#: website/public/showcase/ctf/index.html:581 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:583 +#: website/public/showcase/ctf/index.html:589 msgctxt "page:showcase/ctf/index.html" msgid "Solve the 26 equations" msgstr "求解26個方程" -#: website/public/showcase/ctf/index.html:584 +#: website/public/showcase/ctf/index.html:590 msgctxt "page:showcase/ctf/index.html" msgid "" "Most masks select several cells. For example, the first check adds 16 " @@ -6858,13 +6858,13 @@ msgid "" msgstr "" "大多數掩碼選擇幾個單元格。 例如,第一次檢查新增了16個字元程式碼,總共需要1441個。 重疊的選擇給出了一個小的Python指令碼可以一起求解的方程。" -#: website/public/showcase/ctf/index.html:592 +#: website/public/showcase/ctf/index.html:598 msgctxt "page:showcase/ctf/index.html" msgid "Python · solver excerpt" msgstr "Python · 求解器摘錄" #. {ph0}: DUCTF{…} -#: website/public/showcase/ctf/index.html:620 +#: website/public/showcase/ctf/index.html:626 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6876,19 +6876,19 @@ msgstr "" "Z3是一個求解器,可以找到滿足這些方程的值。 此摘錄使用提取的檢查,並假定 {ph0} 用字母,數字,下劃線和大括號標記。 " "完整的下載包括所有26個面具和目標。" -#: website/public/showcase/ctf/index.html:626 +#: website/public/showcase/ctf/index.html:632 msgctxt "page:showcase/ctf/index.html" msgid "Download the complete solver" msgstr "下載完整的求解器" -#: website/public/showcase/ctf/index.html:632 +#: website/public/showcase/ctf/index.html:638 msgctxt "page:showcase/ctf/index.html" msgid "Check the answer with the original program" msgstr "用原始程式檢查答案" #. {ph0}: z #. {ph1}: y -#: website/public/showcase/ctf/index.html:633 +#: website/public/showcase/ctf/index.html:639 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6898,59 +6898,59 @@ msgid "" msgstr "" "REA的程序捕獲記錄接受已解決標誌的原始可執行檔案。 更改一個選定的字元 {ph0} 到 {ph1} 使第一和1440而不是1441,並且程式拒絕它。" -#: website/public/showcase/ctf/index.html:643 +#: website/public/showcase/ctf/index.html:649 msgctxt "page:showcase/ctf/index.html" msgid "Input" msgstr "輸入" -#: website/public/showcase/ctf/index.html:644 +#: website/public/showcase/ctf/index.html:650 msgctxt "page:showcase/ctf/index.html" msgid "Observed output" msgstr "觀察到的輸出" -#: website/public/showcase/ctf/index.html:645 +#: website/public/showcase/ctf/index.html:651 msgctxt "page:showcase/ctf/index.html" msgid "Exit code" msgstr "退出程式碼" -#: website/public/showcase/ctf/index.html:650 +#: website/public/showcase/ctf/index.html:656 msgctxt "page:showcase/ctf/index.html" msgid "Solver's flag" msgstr "解算者之旗" -#: website/public/showcase/ctf/index.html:655 +#: website/public/showcase/ctf/index.html:661 msgctxt "page:showcase/ctf/index.html" msgid "One character changed" msgstr "一個角色改變了" -#: website/public/showcase/ctf/index.html:663 +#: website/public/showcase/ctf/index.html:669 msgctxt "page:showcase/ctf/index.html" msgid "Show the recovered flag and captured output" msgstr "顯示恢復的標誌和捕獲的輸出" -#: website/public/showcase/ctf/index.html:666 +#: website/public/showcase/ctf/index.html:672 msgctxt "page:showcase/ctf/index.html" msgid "REA · original program output" msgstr "REA · 原始程式輸出" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy flag" msgstr "複製標誌" -#: website/public/showcase/ctf/index.html:679 +#: website/public/showcase/ctf/index.html:685 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:685 +#: website/public/showcase/ctf/index.html:691 msgctxt "page:showcase/ctf/index.html" msgid "Source, target identity and analysis details" msgstr "來源、目標身份和分析詳細資訊" -#: website/public/showcase/ctf/index.html:686 +#: website/public/showcase/ctf/index.html:692 msgctxt "page:showcase/ctf/index.html" msgid "" "Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 " @@ -6960,7 +6960,7 @@ msgstr "" "在2026年10月8日使用REA4.1.0和Ghidra12.1.4在Linux x64上進行新的分析和兩個過程捕獲。 " "二進位制檔案是一個剝離的x86-64ELF,15,248位元組。" -#: website/public/showcase/ctf/index.html:697 +#: website/public/showcase/ctf/index.html:703 msgctxt "page:showcase/ctf/index.html" msgid "" "The string references, functions and constants were inspected before reading" @@ -6980,7 +6980,7 @@ msgstr "在閱讀組織者的原始碼或解決方案之前,對字串引用, #. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked- #. squares.md" > #. {ph5}: -#: website/public/showcase/ctf/index.html:702 +#: website/public/showcase/ctf/index.html:708 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -6988,25 +6988,25 @@ msgid "" "flag{ph3} · {ph4}REA evidence notes{ph5}" msgstr "{ph0}與主辦方來源比較{ph1} · {ph2}挑戰後設資料和標誌{ph3} · {ph4} REA證據說明{ph5}" -#: website/public/showcase/ctf/index.html:722 +#: website/public/showcase/ctf/index.html:728 msgctxt "page:showcase/ctf/index.html" msgid "Try it yourself" msgstr "你自己試試吧" -#: website/public/showcase/ctf/index.html:723 +#: website/public/showcase/ctf/index.html:729 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:739 +#: website/public/showcase/ctf/index.html:745 msgctxt "page:showcase/ctf/index.html" msgid "Terminal · solve and run" msgstr "終端 · 解決和執行" #. {ph0}: z3-solver -#: website/public/showcase/ctf/index.html:756 +#: website/public/showcase/ctf/index.html:762 #, python-brace-format msgctxt "page:showcase/ctf/index.html" msgid "" @@ -7015,7 +7015,7 @@ msgid "" "x86-64." msgstr "指令碼列印候選標誌;將其貼上到程式的提示符處。 解決需要Python和 {ph0}. 執行原始可執行檔案需要Linux x86-64。" -#: website/public/showcase/ctf/index.html:761 +#: website/public/showcase/ctf/index.html:767 msgctxt "page:showcase/ctf/index.html" msgid "Set up REA with your coding agent" msgstr "設定REA與你的程式設計助手" @@ -7033,27 +7033,27 @@ msgid "" "original program." msgstr "使用REA來解決DownUnderCTF的掩碼方塊flag 檢查器。 找到檢查函式,提取掩碼並將恢復的標誌與原始程式進行比較。" -#: website/public/showcase/ctf/index.html:254 +#: website/public/showcase/ctf/index.html:260 msgctxt "page:showcase/ctf/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/showcase/ctf/index.html:265 +#: website/public/showcase/ctf/index.html:271 msgctxt "page:showcase/ctf/index.html" msgid "CTF flag-checker case study" msgstr "CTFflag 檢查個案研究" -#: website/public/showcase/ctf/index.html:280 +#: website/public/showcase/ctf/index.html:286 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF example prompt" msgstr "複製CTF示例提示" -#: website/public/showcase/ctf/index.html:391 +#: website/public/showcase/ctf/index.html:397 msgctxt "page:showcase/ctf/index.html" msgid "CTF mask equation; scroll horizontally on smaller screens" msgstr "CTF掩碼方程;在較小的螢幕上水平滾動" -#: website/public/showcase/ctf/index.html:397 +#: website/public/showcase/ctf/index.html:403 msgctxt "page:showcase/ctf/index.html" msgid "" "The seventh mask skips 21 cells, selects position 21, then skips 14. Only " @@ -7061,42 +7061,42 @@ msgid "" "means the character is 7." msgstr "第七個掩碼跳過21個單元格,選擇位置21,然後跳過14。 只有該單元格貢獻總和。 它所需的字元程式碼是55,這意味著字元是7。" -#: website/public/showcase/ctf/index.html:449 +#: website/public/showcase/ctf/index.html:455 msgctxt "page:showcase/ctf/index.html" msgid "Follow the CTF check" msgstr "遵循CTF檢查" -#: website/public/showcase/ctf/index.html:499 +#: website/public/showcase/ctf/index.html:505 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF assembly" msgstr "複製CTF裝配" -#: website/public/showcase/ctf/index.html:523 +#: website/public/showcase/ctf/index.html:529 msgctxt "page:showcase/ctf/index.html" msgid "Copy readable CTF check" msgstr "複製可讀CTF檢查" -#: website/public/showcase/ctf/index.html:593 +#: website/public/showcase/ctf/index.html:599 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver excerpt" msgstr "複製CTF解算器摘錄" -#: website/public/showcase/ctf/index.html:667 +#: website/public/showcase/ctf/index.html:673 msgctxt "page:showcase/ctf/index.html" msgid "Copy recovered flag" msgstr "複製恢復標誌" -#: website/public/showcase/ctf/index.html:740 +#: website/public/showcase/ctf/index.html:746 msgctxt "page:showcase/ctf/index.html" msgid "Copy CTF solver commands" msgstr "複製CTF求解器命令" -#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/ctf/index.html:789 msgctxt "page:showcase/ctf/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/dx-ball/index.html:107 +#: website/public/showcase/dx-ball/index.html:113 msgctxt "page:showcase/dx-ball/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -7105,35 +7105,35 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:199 +#: website/public/showcase/dx-ball/index.html:205 #, 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" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:202 +#: website/public/showcase/dx-ball/index.html:208 msgctxt "page:showcase/dx-ball/index.html" msgid "Case study · DX-Ball 1.07" msgstr "案例 · DX-Ball 1.07" # Reviewed for clear terminology and preserved evidence. #. {ph0}:
-#: website/public/showcase/dx-ball/index.html:203 +#: website/public/showcase/dx-ball/index.html:209 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Rebuilding DX-Ball{ph0}from its executable." msgstr "從可執行檔案{ph0}重建 DX-Ball。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:204 +#: website/public/showcase/dx-ball/index.html:210 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The goal is a maintainable C version of the 1996 Windows game. REA helps the" " agent inspect the original, one function at a time." msgstr "目標是為這款 1996 年的 Windows 遊戲重建一份可維護的 C 程式碼。REA 幫助程式設計助手逐個分析原版函式。" -#: website/public/showcase/dx-ball/index.html:208 +#: website/public/showcase/dx-ball/index.html:214 msgctxt "page:showcase/dx-ball/index.html" msgid "Windows i386 · C · REA" msgstr "Windows i386 · C · REA" @@ -7141,7 +7141,7 @@ msgstr "Windows i386 · C · REA" # Reviewed for clear terminology and preserved evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:225 +#: website/public/showcase/dx-ball/index.html:231 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7152,7 +7152,7 @@ msgstr "" "從可執行檔案中的一個函式,到經過驗證的 C 程式碼:REA 提供指令、呼叫方和讀取的資料,重建專案據此實現並測試函式。{ph0}檢視大圖{ph1}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:236 +#: website/public/showcase/dx-ball/index.html:242 msgctxt "page:showcase/dx-ball/index.html" msgid "In this case study" msgstr "本案例內容" @@ -7160,7 +7160,7 @@ msgstr "本案例內容" # Reviewed for clear terminology and preserved evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:238 +#: website/public/showcase/dx-ball/index.html:244 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}The project{ph1}" @@ -7168,7 +7168,7 @@ msgstr "{ph0}專案進度{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:239 +#: website/public/showcase/dx-ball/index.html:245 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Sound pan{ph1}" @@ -7176,7 +7176,7 @@ msgstr "{ph0}聲像計算{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:240 +#: website/public/showcase/dx-ball/index.html:246 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Checking the result{ph1}" @@ -7184,25 +7184,25 @@ msgstr "{ph0}檢查結果{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:241 +#: website/public/showcase/dx-ball/index.html:247 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}Continue the work{ph1}" msgstr "{ph0}繼續工作{ph1}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:249 +#: website/public/showcase/dx-ball/index.html:255 msgctxt "page:showcase/dx-ball/index.html" msgid "maintained C functions" msgstr "個可維護的 C 函式" -#: website/public/showcase/dx-ball/index.html:253 +#: website/public/showcase/dx-ball/index.html:259 msgctxt "page:showcase/dx-ball/index.html" msgid "comparisons with original code" msgstr "與原始程式碼的比較" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:257 +#: website/public/showcase/dx-ball/index.html:263 msgctxt "page:showcase/dx-ball/index.html" msgid "functions with matching compiled bytes" msgstr "個編譯後位元組匹配的函式" @@ -7214,7 +7214,7 @@ msgstr "個編譯後位元組匹配的函式" #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:260 +#: website/public/showcase/dx-ball/index.html:266 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7223,13 +7223,13 @@ msgid "" msgstr "專案進度截至 2026 年 10 月 7 日。{ph0}進度記錄{ph1} · {ph2}測試覆蓋情況{ph3}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:272 +#: website/public/showcase/dx-ball/index.html:278 msgctxt "page:showcase/dx-ball/index.html" msgid "The project so far" msgstr "當前進度" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:273 +#: website/public/showcase/dx-ball/index.html:279 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered code covers board and resource handling, brick hits, " @@ -7242,13 +7242,13 @@ msgstr "" " Windows 整合。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:283 +#: website/public/showcase/dx-ball/index.html:289 msgctxt "page:showcase/dx-ball/index.html" msgid "Finding the sound-pan calculation" msgstr "找出聲音的左右位置如何計算" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:284 +#: website/public/showcase/dx-ball/index.html:290 msgctxt "page:showcase/dx-ball/index.html" msgid "" "When a brick is hit, its horizontal position is passed to the sound code. " @@ -7264,17 +7264,17 @@ msgstr "磚塊被擊中時,它的橫座標會傳給聲音處理程式碼。這 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/dx-ball/index.html:291 +#: website/public/showcase/dx-ball/index.html:297 #, 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:295 -#: website/public/showcase/dx-ball/index.html:486 -#: website/public/showcase/dx-ball/index.html:507 -#: website/public/showcase/dx-ball/index.html:578 -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:301 +#: website/public/showcase/dx-ball/index.html:492 +#: website/public/showcase/dx-ball/index.html:513 +#: website/public/showcase/dx-ball/index.html:584 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy" msgstr "複製" @@ -7286,7 +7286,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/showcase/dx-ball/index.html:304 +#: website/public/showcase/dx-ball/index.html:310 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7296,7 +7296,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 找出 DX-Ball 如何計算聲音的左右位置。解釋計算過程,並展示程式碼。{ph3}{ph4}{ph5}" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:312 +#: website/public/showcase/dx-ball/index.html:318 msgctxt "page:showcase/dx-ball/index.html" msgid "" "An example prompt for your coding agent, with the local executable " @@ -7305,7 +7305,7 @@ msgid "" msgstr "把本地可執行檔案交給程式設計助手,再使用這個示例 prompt。下面展示助手為回答問題發起的 REA 查詢,以及得到的證據。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:317 +#: website/public/showcase/dx-ball/index.html:323 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The agent used REA to inspect the function, follow its brick-hit caller and " @@ -7317,7 +7317,7 @@ msgstr "助手用 REA 檢查函式、追蹤呼叫它的磚塊碰撞函式,再 #. {ph0}: 0x406400 #. {ph1}: FUN_00406400(void) #. {ph2}: __ftol() -#: website/public/showcase/dx-ball/index.html:323 +#: website/public/showcase/dx-ball/index.html:329 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7328,13 +7328,13 @@ msgid "" msgstr "" "REA 最初返回的 {ph0} 虛擬碼宣告瞭 {ph1},並呼叫 {ph2}。但指令中還有來自棧的輸入和浮點運算。這個差異提示助手:還需要繼續查。" -#: website/public/showcase/dx-ball/index.html:331 +#: website/public/showcase/dx-ball/index.html:337 msgctxt "page:showcase/dx-ball/index.html" msgid "The first decompiler view" msgstr "最初的反編譯結果" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:344 +#: website/public/showcase/dx-ball/index.html:350 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The output shows a conversion call. Reading the instructions below reveals " @@ -7342,20 +7342,20 @@ msgid "" msgstr "結果裡能看到一次轉換呼叫。繼續閱讀下面的指令,就能找出輸入,以及傳入這個呼叫前的計算。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:350 +#: website/public/showcase/dx-ball/index.html:356 msgctxt "page:showcase/dx-ball/index.html" msgid "Three questions answered through REA" msgstr "用 REA 回答三個問題" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:353 +#: website/public/showcase/dx-ball/index.html:359 msgctxt "page:showcase/dx-ball/index.html" msgid "Recover the missing input" msgstr "找回缺失的輸入" # Reviewed for clear terminology and preserved evidence. #. {ph0}: [EBP+8] -#: website/public/showcase/dx-ball/index.html:370 +#: website/public/showcase/dx-ball/index.html:376 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7364,7 +7364,7 @@ msgid "" msgstr "函式結果同時提供虛擬碼、指令和呼叫方。這裡的 {ph0} 顯示了反編譯結果中缺失的整數輸入。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:377 +#: website/public/showcase/dx-ball/index.html:383 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the caller to understand the input" msgstr "追蹤呼叫方,理解輸入含義" @@ -7372,7 +7372,7 @@ msgstr "追蹤呼叫方,理解輸入含義" # Reviewed for clear terminology and preserved evidence. #. {ph0}: tile_x #. {ph1}: 20 + 30 × tile_x -#: website/public/showcase/dx-ball/index.html:394 +#: website/public/showcase/dx-ball/index.html:400 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7380,26 +7380,26 @@ msgid "" "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:401 +#: website/public/showcase/dx-ball/index.html:407 msgctxt "page:showcase/dx-ball/index.html" msgid "Read the values behind the memory addresses" msgstr "讀取記憶體地址後面的值" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:422 +#: website/public/showcase/dx-ball/index.html:428 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:430 +#: website/public/showcase/dx-ball/index.html:436 msgctxt "page:showcase/dx-ball/index.html" msgid "From REA's findings to C" msgstr "從 REA 分析結果到 C 程式碼" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:431 +#: website/public/showcase/dx-ball/index.html:437 msgctxt "page:showcase/dx-ball/index.html" msgid "" "Follow the five steps below. Each selection highlights the original " @@ -7408,7 +7408,7 @@ msgstr "下面分五步展示計算。點選每一步,原始指令和對應的 #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:441 +#: website/public/showcase/dx-ball/index.html:447 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}01{ph1} Input" @@ -7416,7 +7416,7 @@ msgstr "{ph0}01{ph1} 輸入" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:449 +#: website/public/showcase/dx-ball/index.html:455 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}02{ph1} Multiply" @@ -7424,7 +7424,7 @@ msgstr "{ph0}02{ph1} 乘以" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:457 +#: website/public/showcase/dx-ball/index.html:463 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}03{ph1} Subtract" @@ -7432,7 +7432,7 @@ msgstr "{ph0}03{ph1} 減去" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:465 +#: website/public/showcase/dx-ball/index.html:471 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}04{ph1} Scale" @@ -7440,20 +7440,20 @@ msgstr "{ph0}04{ph1} 縮放" #. {ph0}: #. {ph1}: -#: website/public/showcase/dx-ball/index.html:473 +#: website/public/showcase/dx-ball/index.html:479 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0}05{ph1} Return" msgstr "{ph0}05{ph1} 返回" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:485 +#: website/public/showcase/dx-ball/index.html:491 msgctxt "page:showcase/dx-ball/index.html" msgid "Original x86 · excerpt" msgstr "原始 x86 · 節選" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:506 +#: website/public/showcase/dx-ball/index.html:512 msgctxt "page:showcase/dx-ball/index.html" msgid "Reconstructed C" msgstr "重建的 C 程式碼" @@ -7464,7 +7464,7 @@ msgstr "重建的 C 程式碼" #. {ph2}: [EBP+8] #. {ph3}: FILD #. {ph4}: x -#: website/public/showcase/dx-ball/index.html:533 +#: website/public/showcase/dx-ball/index.html:539 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7483,7 +7483,7 @@ msgstr "" #. {ph3}: 0x420068 #. {ph4}: read_bytes #. {ph5}: 1.5625 -#: website/public/showcase/dx-ball/index.html:540 +#: website/public/showcase/dx-ball/index.html:546 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7500,7 +7500,7 @@ msgstr "" #. {ph3}: 0x420070 #. {ph4}: 500.0 #. {ph5}: 320 -#: website/public/showcase/dx-ball/index.html:546 +#: website/public/showcase/dx-ball/index.html:552 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7518,7 +7518,7 @@ msgstr "" #. {ph3}: 0x4210a0 #. {ph4}: dxball_pan_scale #. {ph5}: 1.0 -#: website/public/showcase/dx-ball/index.html:552 +#: website/public/showcase/dx-ball/index.html:558 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7535,7 +7535,7 @@ msgstr "" #. {ph2}: 0x406430 #. {ph3}: __ftol #. {ph4}: DxBallInt -#: website/public/showcase/dx-ball/index.html:559 +#: website/public/showcase/dx-ball/index.html:565 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7547,7 +7547,7 @@ msgstr "" "{ph4},再與原始 x86 函式比較,驗證返回值。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:568 +#: website/public/showcase/dx-ball/index.html:574 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The assembly excerpt selects the input, arithmetic and return instructions. " @@ -7555,24 +7555,24 @@ msgid "" "setup and cleanup." msgstr "這段彙編節選包含輸入、運算和返回指令。下面的完整列表還保留了中間的儲存操作,以及函式開頭和結尾的處理。" -#: website/public/showcase/dx-ball/index.html:574 +#: website/public/showcase/dx-ball/index.html:580 msgctxt "page:showcase/dx-ball/index.html" msgid "Full assembly and supporting evidence" msgstr "完整彙編與相關證據" -#: website/public/showcase/dx-ball/index.html:577 +#: website/public/showcase/dx-ball/index.html:583 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · 0x406400–0x40643e" msgstr "REA結果 · 0x406400–0x40643e" -#: website/public/showcase/dx-ball/index.html:611 +#: website/public/showcase/dx-ball/index.html:617 msgctxt "page:showcase/dx-ball/index.html" msgid "What the caller supplies" msgstr "呼叫方傳入什麼" # Reviewed for clear terminology and preserved evidence. #. {ph0}: 0x411f40 -#: website/public/showcase/dx-ball/index.html:612 +#: website/public/showcase/dx-ball/index.html:618 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7580,55 +7580,55 @@ msgid "" "then pushes it before the call:" msgstr "{ph0} 處的磚塊碰撞函式把格子座標乘以 30,再加上 20,然後在呼叫前將結果壓棧:" -#: website/public/showcase/dx-ball/index.html:626 +#: website/public/showcase/dx-ball/index.html:632 msgctxt "page:showcase/dx-ball/index.html" msgid "What the data reads establish" msgstr "讀取資料確認了什麼" -#: website/public/showcase/dx-ball/index.html:629 +#: website/public/showcase/dx-ball/index.html:635 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:634 +#: website/public/showcase/dx-ball/index.html:640 msgctxt "page:showcase/dx-ball/index.html" msgid "Address" msgstr "地址" -#: website/public/showcase/dx-ball/index.html:635 +#: website/public/showcase/dx-ball/index.html:641 msgctxt "page:showcase/dx-ball/index.html" msgid "Value" msgstr "數值" -#: website/public/showcase/dx-ball/index.html:636 +#: website/public/showcase/dx-ball/index.html:642 msgctxt "page:showcase/dx-ball/index.html" msgid "Used for" msgstr "用於" -#: website/public/showcase/dx-ball/index.html:643 +#: website/public/showcase/dx-ball/index.html:649 msgctxt "page:showcase/dx-ball/index.html" msgid "First multiplication" msgstr "第一次乘法" -#: website/public/showcase/dx-ball/index.html:648 +#: website/public/showcase/dx-ball/index.html:654 msgctxt "page:showcase/dx-ball/index.html" msgid "Subtraction" msgstr "減法" #. {ph0}: 1.0 -#: website/public/showcase/dx-ball/index.html:652 +#: website/public/showcase/dx-ball/index.html:658 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "{ph0} initially" msgstr "{ph0} 最初" -#: website/public/showcase/dx-ball/index.html:653 +#: website/public/showcase/dx-ball/index.html:659 msgctxt "page:showcase/dx-ball/index.html" msgid "Stored pan scale" msgstr "儲存的聲像縮放係數" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:658 +#: website/public/showcase/dx-ball/index.html:664 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 " @@ -7643,7 +7643,7 @@ msgstr "使用 REA 4.1.0 記錄,分析目標為透過雜湊確定的 DX-Ball 1 #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md" #. > #. {ph3}: -#: website/public/showcase/dx-ball/index.html:663 +#: website/public/showcase/dx-ball/index.html:669 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7651,13 +7651,13 @@ msgid "" "references{ph3}" msgstr "{ph0}重建原始碼{ph1} · {ph2}調查筆記與證據引用{ph3}" -#: website/public/showcase/dx-ball/index.html:677 +#: website/public/showcase/dx-ball/index.html:683 msgctxt "page:showcase/dx-ball/index.html" msgid "Checking the recovered function" msgstr "驗證還原的函式" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:678 +#: website/public/showcase/dx-ball/index.html:684 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The recovered function passes two checks: its return values match the " @@ -7665,13 +7665,13 @@ msgid "" msgstr "還原的函式透過了兩項檢查:返回值與原版一致,編譯後的位元組與原始可執行檔案一致。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:684 +#: website/public/showcase/dx-ball/index.html:690 msgctxt "page:showcase/dx-ball/index.html" msgid "3,205 behavior cases" msgstr "3,205 個行為測試用例" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:685 +#: website/public/showcase/dx-ball/index.html:691 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The tests execute the original x86 function and compare its return value " @@ -7682,13 +7682,13 @@ msgstr "" "和 −1。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:693 +#: website/public/showcase/dx-ball/index.html:699 msgctxt "page:showcase/dx-ball/index.html" msgid "63 matching bytes" msgstr "63 位元組完全匹配" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:694 +#: website/public/showcase/dx-ball/index.html:700 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The C function is compiled with the pinned VC4.0 toolchain. Compiler replay " @@ -7697,7 +7697,7 @@ msgid "" msgstr "C 函式使用指定的 VC4.0 工具鏈編譯。應用經過檢查的重定位,並核對引用的常量後,編譯結果與原始函式的全部位元組一致。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:702 +#: website/public/showcase/dx-ball/index.html:708 msgctxt "page:showcase/dx-ball/index.html" msgid "" "At a scale of 1, the recovered calculation returns −500 at the left edge, 0 " @@ -7709,19 +7709,19 @@ msgstr "縮放係數為 1 時,計算在螢幕左邊緣返回 −500,中心 #. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md" #. > #. {ph1}: -#: website/public/showcase/dx-ball/index.html:708 +#: website/public/showcase/dx-ball/index.html:714 #, 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:717 +#: website/public/showcase/dx-ball/index.html:723 msgctxt "page:showcase/dx-ball/index.html" msgid "Continue the investigation" msgstr "繼續調查" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:718 +#: website/public/showcase/dx-ball/index.html:724 msgctxt "page:showcase/dx-ball/index.html" msgid "" "The same approach is being used for particle updates, explosion queues and " @@ -7730,14 +7730,14 @@ msgid "" msgstr "粒子更新、爆炸佇列和獎勵生成也使用同樣的方法:檢查相關函式,還原狀態與依賴,再把實現和原版比較。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:724 +#: website/public/showcase/dx-ball/index.html:730 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:731 +#: website/public/showcase/dx-ball/index.html:737 msgctxt "page:showcase/dx-ball/index.html" msgid "In the DX-Ball checkout" msgstr "在 DX-Ball 儲存庫目錄中" @@ -7747,7 +7747,7 @@ msgstr "在 DX-Ball 儲存庫目錄中" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:745 +#: website/public/showcase/dx-ball/index.html:751 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7760,7 +7760,7 @@ msgstr "{ph0}DX-Ball 儲存庫{ph1}{ph2}當前原始碼、進度和本地配置 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:750 +#: website/public/showcase/dx-ball/index.html:756 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7775,7 +7775,7 @@ msgstr "{ph0}REA 分析流程{ph1}{ph2}追蹤這段計算,再用同樣方法 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/dx-ball/index.html:757 +#: website/public/showcase/dx-ball/index.html:763 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "" @@ -7799,14 +7799,14 @@ msgstr "" "檢視 DX-Ball 的重建過程:用 REA 分析二進位制檔案,編寫可維護的 C 程式碼,再透過原始 x86 行為測試和編譯位元組匹配驗證。" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:211 +#: website/public/showcase/dx-ball/index.html:217 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DX-Ball sound-pan investigation; scroll horizontally on smaller screens" msgstr "DX-Ball 聲像計算調查;小螢幕可橫向滾動" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:217 +#: website/public/showcase/dx-ball/index.html:223 msgctxt "page:showcase/dx-ball/index.html" msgid "" "DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller " @@ -7819,89 +7819,89 @@ msgstr "" "1.5625,減去 500.0,再乘以 pan_scale,最後返回整數。重建的 C 程式碼透過 3,205 個用例與原始 x86 函式比較,並用 " "VC4.0 編譯結果匹配全部 63 位元組。" -#: website/public/showcase/dx-ball/index.html:235 +#: website/public/showcase/dx-ball/index.html:241 msgctxt "page:showcase/dx-ball/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/showcase/dx-ball/index.html:244 +#: website/public/showcase/dx-ball/index.html:250 msgctxt "page:showcase/dx-ball/index.html" msgid "DX-Ball reconstruction case study" msgstr "DX-Ball重建案例研究" -#: website/public/showcase/dx-ball/index.html:295 +#: website/public/showcase/dx-ball/index.html:301 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy example prompt" msgstr "複製示例提示" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:436 +#: website/public/showcase/dx-ball/index.html:442 msgctxt "page:showcase/dx-ball/index.html" msgid "Follow the sound-pan calculation" msgstr "追蹤聲像計算" -#: website/public/showcase/dx-ball/index.html:486 +#: website/public/showcase/dx-ball/index.html:492 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy original assembly excerpt" msgstr "複製原始彙編摘錄" -#: website/public/showcase/dx-ball/index.html:507 +#: website/public/showcase/dx-ball/index.html:513 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy sound-pan function" msgstr "複製聲像函式" # Reviewed for clear terminology and preserved evidence. -#: website/public/showcase/dx-ball/index.html:578 +#: website/public/showcase/dx-ball/index.html:584 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy complete sound-pan assembly" msgstr "複製完整聲像計算彙編" -#: website/public/showcase/dx-ball/index.html:732 +#: website/public/showcase/dx-ball/index.html:738 msgctxt "page:showcase/dx-ball/index.html" msgid "Copy DX-Ball analysis command" msgstr "複製DX-Ball分析命令" -#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/dx-ball/index.html:797 msgctxt "page:showcase/dx-ball/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/index.html:107 +#: website/public/showcase/index.html:113 msgctxt "page:showcase/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/showcase/index.html:199 +#: website/public/showcase/index.html:205 #, python-brace-format msgctxt "page:showcase/index.html" msgid "{ph0}Home{ph1} / Showcases" msgstr "{ph0}首頁{ph1} /陳列櫃" -#: website/public/showcase/index.html:200 +#: website/public/showcase/index.html:206 msgctxt "page:showcase/index.html" msgid "REA case studies." msgstr "REA 實際案例。" -#: website/public/showcase/index.html:201 +#: website/public/showcase/index.html:207 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:208 +#: website/public/showcase/index.html:214 msgctxt "page:showcase/index.html" msgid "Android · APK analysis" msgstr "Android · APK 分析" -#: website/public/showcase/index.html:210 +#: website/public/showcase/index.html:216 msgctxt "page:showcase/index.html" msgid "How an authenticator generates a login code" msgstr "驗證器如何生成登入驗證碼" -#: website/public/showcase/index.html:211 +#: website/public/showcase/index.html:217 msgctxt "page:showcase/index.html" msgid "" "Find Aegis's six-digit code calculation in its released APK. Trace the " @@ -7909,22 +7909,22 @@ msgid "" "changes every 30 seconds." msgstr "在其釋出的APK中找到Aegis的六位數程式碼計算。 使用REA跟蹤生成方法,然後移動演示時鐘以檢視程式碼每30秒更改一次的原因。" -#: website/public/showcase/index.html:222 +#: website/public/showcase/index.html:228 msgctxt "page:showcase/index.html" msgid "Read the Android case study" msgstr "閱讀Android案例研究" -#: website/public/showcase/index.html:226 +#: website/public/showcase/index.html:232 msgctxt "page:showcase/index.html" msgid "CTF · Native analysis" msgstr "CTF · 原生分析" -#: website/public/showcase/index.html:228 +#: website/public/showcase/index.html:234 msgctxt "page:showcase/index.html" msgid "Solve a CTF flag checker" msgstr "分析 CTF flag 檢查器" -#: website/public/showcase/index.html:229 +#: website/public/showcase/index.html:235 msgctxt "page:showcase/index.html" msgid "" "Inspect an easy DownUnderCTF challenge with REA. Find its checking " @@ -7932,22 +7932,22 @@ msgid "" "with the original program." msgstr "使用REA檢查一個簡單的DownUnderCTF挑戰。 找到它的檢查函式,將掩碼和和轉換為方程,然後用原始程式驗證已求解的標誌。" -#: website/public/showcase/index.html:240 +#: website/public/showcase/index.html:246 msgctxt "page:showcase/index.html" msgid "Read the CTF case study" msgstr "閱讀CTF案例研究" -#: website/public/showcase/index.html:244 +#: website/public/showcase/index.html:250 msgctxt "page:showcase/index.html" msgid "Native · Reconstruction" msgstr "原生程式 · 重建" -#: website/public/showcase/index.html:246 +#: website/public/showcase/index.html:252 msgctxt "page:showcase/index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball 的聲像計算" -#: website/public/showcase/index.html:247 +#: website/public/showcase/index.html:253 msgctxt "page:showcase/index.html" msgid "" "Recover a sound-pan calculation from a 1996 Windows game. REA's " @@ -7957,22 +7957,22 @@ msgstr "" "從1996年的Windows遊戲中恢復左/右聲音位置的計算。 " "REA的指令,呼叫者引用和數字常量導致一個小的C函式,對照原始行為和所有63個編譯位元組進行檢查。" -#: website/public/showcase/index.html:259 +#: website/public/showcase/index.html:265 msgctxt "page:showcase/index.html" msgid "Read the DX-Ball case study" msgstr "閱讀DX-Ball案例研究" -#: website/public/showcase/index.html:263 +#: website/public/showcase/index.html:269 msgctxt "page:showcase/index.html" msgid "Electron · Feature tracing" msgstr "Electron · 功能追蹤" -#: website/public/showcase/index.html:265 +#: website/public/showcase/index.html:271 msgctxt "page:showcase/index.html" msgid "How Notion copies text and HTML" msgstr "Notion 如何複製文字和 HTML" -#: website/public/showcase/index.html:266 +#: website/public/showcase/index.html:272 msgctxt "page:showcase/index.html" msgid "" "Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC" @@ -7982,22 +7982,22 @@ msgstr "" "透過跟蹤面向頁面的API Notion包裝好了 JavaScript. " "跟隨它的IPC包裝到系統剪貼簿,然後看看一個小的HTML標記如何保持豐富的塊資料連線到複製。" -#: website/public/showcase/index.html:277 +#: website/public/showcase/index.html:283 msgctxt "page:showcase/index.html" msgid "Read the Notion case study" msgstr "閱讀Notion案例研究" -#: website/public/showcase/index.html:281 +#: website/public/showcase/index.html:287 msgctxt "page:showcase/index.html" msgid "PC-98 DOS · Reconstruction" msgstr "PC-98 DOS · 重建" -#: website/public/showcase/index.html:283 +#: website/public/showcase/index.html:289 msgctxt "page:showcase/index.html" msgid "How TH04 aims a ring of bullets" msgstr "TH04 如何把環形彈幕對準玩家" -#: website/public/showcase/index.html:284 +#: website/public/showcase/index.html:290 msgctxt "page:showcase/index.html" msgid "" "Inspect the original 16-bit angle helper with REA. Match its multiply, " @@ -8005,24 +8005,24 @@ msgid "" "a ring aimed at the player." msgstr "用REA檢查原始的16位角度助手。 將其乘法,除法和座標操作匹配到可讀的C++,然後看看它們如何產生一個針對玩家的環形彈幕。" -#: website/public/showcase/index.html:295 +#: website/public/showcase/index.html:301 msgctxt "page:showcase/index.html" msgid "Read the TH04 case study" msgstr "閱讀TH04案例研究" -#: website/public/showcase/index.html:300 +#: website/public/showcase/index.html:306 msgctxt "page:showcase/index.html" msgid "Step-by-step guides" msgstr "循序漸進指南" -#: website/public/showcase/index.html:301 +#: website/public/showcase/index.html:307 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:305 +#: website/public/showcase/index.html:311 msgctxt "page:showcase/index.html" msgid "Read the guides" msgstr "閱讀指南" @@ -8041,12 +8041,12 @@ msgstr "" "跟我來 REA 透過程式碼、數字和演示進行調查:Android身份驗證器, DX-Ball, Notion, TH04 " "和一個DownUnderCTFflag 檢查器。" -#: website/public/showcase/index.html:323 +#: website/public/showcase/index.html:329 msgctxt "page:showcase/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/notion/index.html:107 +#: website/public/showcase/notion/index.html:113 msgctxt "page:showcase/notion/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -8055,37 +8055,37 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:199 +#: website/public/showcase/notion/index.html:205 #, 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:202 +#: website/public/showcase/notion/index.html:208 msgctxt "page:showcase/notion/index.html" msgid "Case study · Electron" msgstr "個案研究*Electron" #. {ph0}:
-#: website/public/showcase/notion/index.html:203 +#: website/public/showcase/notion/index.html:209 #, 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:204 +#: website/public/showcase/notion/index.html:210 msgctxt "page:showcase/notion/index.html" msgid "" "Trace a clipboard call from Notion's page API, through the preload and main " "process, to Electron's clipboard writer." msgstr "跟蹤剪貼簿呼叫從Notion的頁面API,透過預載入和主程序,到Electron的剪貼簿編寫器。" -#: website/public/showcase/notion/index.html:208 +#: website/public/showcase/notion/index.html:214 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:212 +#: website/public/showcase/notion/index.html:218 msgctxt "page:showcase/notion/index.html" msgid "The bridge inside Notion's desktop package" msgstr "Notion 桌面包中的橋接程式碼" @@ -8097,7 +8097,7 @@ msgstr "Notion 桌面包中的橋接程式碼" #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:214 +#: website/public/showcase/notion/index.html:220 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8112,7 +8112,7 @@ msgstr "{ph0}01 · 面向頁面的API{ph1} {ph2}{ph3}{ph4} {ph5}預載入公開 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:221 +#: website/public/showcase/notion/index.html:227 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8127,7 +8127,7 @@ msgstr "{ph0}02 · 預載入包裝器{ph1} {ph2}{ph3}{ph4} {ph5}包裝器傳送 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:228 +#: website/public/showcase/notion/index.html:234 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8142,7 +8142,7 @@ msgstr "{ph0}03 · 主程序處理程式{ph1} {ph2}{ph3}{ph4} {ph5}接收器檢 #. {ph4}: #. {ph5}: #. {ph6}: -#: website/public/showcase/notion/index.html:235 +#: website/public/showcase/notion/index.html:241 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8151,28 +8151,28 @@ msgid "" msgstr "{ph0}04 · 系統剪貼簿{ph1} {ph2}{ph3}{ph4} {ph5}Electron 寫入提供的文字和HTML。{ph6}" #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:243 +#: website/public/showcase/notion/index.html:249 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "One channel joins the two sides: {ph0}" msgstr "一個通道連線雙方: {ph0}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:247 +#: website/public/showcase/notion/index.html:253 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:256 +#: website/public/showcase/notion/index.html:262 msgctxt "page:showcase/notion/index.html" msgid "In this case study" msgstr "在本個案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:258 +#: website/public/showcase/notion/index.html:264 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Follow the clipboard bridge{ph1}" @@ -8180,7 +8180,7 @@ msgstr "{ph0}跟隨剪貼簿橋{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:259 +#: website/public/showcase/notion/index.html:265 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "{ph0}Keeping a block's structure{ph1}" @@ -8188,20 +8188,20 @@ msgstr "{ph0}保留內容塊的結構{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/notion/index.html:260 +#: website/public/showcase/notion/index.html:266 #, 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:265 +#: website/public/showcase/notion/index.html:271 msgctxt "page:showcase/notion/index.html" msgid "Where does the copy operation go?" msgstr "複製操作去哪裡?" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: clipboard.write -#: website/public/showcase/notion/index.html:266 +#: website/public/showcase/notion/index.html:272 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8218,17 +8218,17 @@ msgstr "頁面可以呼叫名為 {ph0} 的方法。它在預載入指令碼中 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/notion/index.html:273 +#: website/public/showcase/notion/index.html:279 #, 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:277 -#: website/public/showcase/notion/index.html:350 -#: website/public/showcase/notion/index.html:379 -#: website/public/showcase/notion/index.html:410 -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:283 +#: website/public/showcase/notion/index.html:356 +#: website/public/showcase/notion/index.html:385 +#: website/public/showcase/notion/index.html:416 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy" msgstr "複製" @@ -8239,7 +8239,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/showcase/notion/index.html:286 +#: website/public/showcase/notion/index.html:292 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8248,20 +8248,20 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}使用REA跟蹤Notion如何將文字和HTML複製到系統剪貼簿。 在每個步驟顯示程式碼。{ph3}{ph4}{ph5}" -#: website/public/showcase/notion/index.html:294 +#: website/public/showcase/notion/index.html:300 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:299 +#: website/public/showcase/notion/index.html:305 msgctxt "page:showcase/notion/index.html" msgid "REA finds where to start reading" msgstr "REA查詢從哪裡開始閱讀" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:300 +#: website/public/showcase/notion/index.html:306 msgctxt "page:showcase/notion/index.html" msgid "" "Analyzing the tab preload with REA locates the API exposed to the page and " @@ -8269,14 +8269,14 @@ msgid "" " the minified bundle:" msgstr "用 REA 分析標籤頁的預載入指令碼,可以找到暴露給頁面的 API,以及傳送 IPC 請求的呼叫。兩個結果都給出了在壓縮程式碼中的位置:" -#: website/public/showcase/notion/index.html:306 +#: website/public/showcase/notion/index.html:312 msgctxt "page:showcase/notion/index.html" msgid "REA findings → two places to open" msgstr "REA 分析結果 → 兩個原始碼位置" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: analyze_javascript_application -#: website/public/showcase/notion/index.html:321 +#: website/public/showcase/notion/index.html:327 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8290,7 +8290,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: invokerInMain #. {ph1}: notion:clipboard:write -#: website/public/showcase/notion/index.html:328 +#: website/public/showcase/notion/index.html:334 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8302,25 +8302,25 @@ msgstr "" "助手開啟這些位置,在組裝的 API 中找到剪貼簿成員,再讀取 {ph0}。呼叫處傳入 " "{ph1},讓助手知道要在主程序程式碼中搜尋哪個名稱。下面四段程式碼展示這條呼叫鏈。" -#: website/public/showcase/notion/index.html:337 +#: website/public/showcase/notion/index.html:343 msgctxt "page:showcase/notion/index.html" msgid "Four short pieces of code" msgstr "四段簡短程式碼" -#: website/public/showcase/notion/index.html:338 +#: website/public/showcase/notion/index.html:344 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:344 +#: website/public/showcase/notion/index.html:350 msgctxt "page:showcase/notion/index.html" msgid "Start at the API exposed to the page" msgstr "從公開到頁面的API開始" #. {ph0}: invokerInMain -#: website/public/showcase/notion/index.html:366 +#: website/public/showcase/notion/index.html:372 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8328,14 +8328,14 @@ msgid "" "how the request leaves the page's process." msgstr "此成員提供通道名稱。 的實施 {ph0} 告訴我們請求如何離開頁面的程序。" -#: website/public/showcase/notion/index.html:373 +#: website/public/showcase/notion/index.html:379 msgctxt "page:showcase/notion/index.html" msgid "Resolve the preload's wrapper" msgstr "解析預載入的包裝器" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: notion:clipboard:write -#: website/public/showcase/notion/index.html:396 +#: website/public/showcase/notion/index.html:402 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8343,14 +8343,14 @@ msgid "" "response IPC. We can now look for {ph0} on the main-process side." msgstr "返回的函式透過 Electron 的請求/響應 IPC 轉發引數。接下來可以在主程序中查詢 {ph0}。" -#: website/public/showcase/notion/index.html:404 +#: website/public/showcase/notion/index.html:410 msgctxt "page:showcase/notion/index.html" msgid "Check how the receiver is registered" msgstr "檢查接收器是如何註冊的" #. {ph0}: addListener #. {ph1}: ipcMain.handle -#: website/public/showcase/notion/index.html:425 +#: website/public/showcase/notion/index.html:431 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8358,13 +8358,13 @@ msgid "" "receiver for that channel." msgstr "主程序使用另一個包裝器。 其 {ph0} 方法註冊一個 {ph1} 那個頻道的接收器。" -#: website/public/showcase/notion/index.html:432 +#: website/public/showcase/notion/index.html:438 msgctxt "page:showcase/notion/index.html" msgid "Find the write and its sender check" msgstr "查詢寫入及其發件人檢查" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:455 +#: website/public/showcase/notion/index.html:461 msgctxt "page:showcase/notion/index.html" msgid "" "This is the destination. After checking the sender, the handler passes the " @@ -8374,14 +8374,14 @@ msgstr "" "這就是呼叫的終點。處理函式檢查傳送方後,把收到的資料交給 Electron 的剪貼簿 " "API。通道名和兩個解析後的包裝函式,把暴露給頁面的方法連線到了這裡。" -#: website/public/showcase/notion/index.html:466 +#: website/public/showcase/notion/index.html:472 msgctxt "page:showcase/notion/index.html" msgid "How does a copied block keep its structure?" msgstr "複製的塊如何保持其結構?" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: electronApi.clipboard.write -#: website/public/showcase/notion/index.html:467 +#: website/public/showcase/notion/index.html:473 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8390,83 +8390,83 @@ msgid "" msgstr "" "Notion 的網頁編輯器透過 {ph0} 傳送文字和 HTML。它在本地保留內容塊資料,再在複製的 HTML 中放入一個 ID,將二者關聯起來。" -#: website/public/showcase/notion/index.html:473 +#: website/public/showcase/notion/index.html:479 msgctxt "page:showcase/notion/index.html" msgid "HTML links to saved block data" msgstr "儲存的塊資料的HTML連結" -#: website/public/showcase/notion/index.html:497 +#: website/public/showcase/notion/index.html:503 msgctxt "page:showcase/notion/index.html" msgid "Read the HTML ID" msgstr "讀取HTML ID" -#: website/public/showcase/notion/index.html:498 +#: website/public/showcase/notion/index.html:504 msgctxt "page:showcase/notion/index.html" msgid "Find the same local ID" msgstr "查詢相同的本地ID" -#: website/public/showcase/notion/index.html:499 +#: website/public/showcase/notion/index.html:505 msgctxt "page:showcase/notion/index.html" msgid "Restore Notion block data" msgstr "恢復Notion塊資料" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:501 +#: website/public/showcase/notion/index.html:507 msgctxt "page:showcase/notion/index.html" msgid "" "Illustrative text and ID. The recorded module test restores the block data " "when IDs match; a stale entry returns only text and HTML." msgstr "文字和 ID 為示意值。已記錄的模組測試顯示:ID 匹配時可以取回內容塊資料;條目失效時只返回文字和 HTML。" -#: website/public/showcase/notion/index.html:507 +#: website/public/showcase/notion/index.html:513 msgctxt "page:showcase/notion/index.html" msgid "" "On paste, Notion looks for the HTML ID and checks it against the saved copy." " Matching IDs restore the block data." msgstr "在貼上時,Notion查詢HTML ID並根據儲存的複製進行檢查。 匹配的Id恢復所述塊資料。" -#: website/public/showcase/notion/index.html:511 +#: website/public/showcase/notion/index.html:517 msgctxt "page:showcase/notion/index.html" msgid "Clipboard format recorded from web assets cached on July 13, 2026." msgstr "從2026年7月13日快取的web資產中記錄的剪貼簿格式。" -#: website/public/showcase/notion/index.html:517 +#: website/public/showcase/notion/index.html:523 msgctxt "page:showcase/notion/index.html" msgid "More examples and sources" msgstr "更多示例和來源" -#: website/public/showcase/notion/index.html:519 +#: website/public/showcase/notion/index.html:525 msgctxt "page:showcase/notion/index.html" msgid "Another example: Markdown tables" msgstr "另一個例子:Markdown 表格" -#: website/public/showcase/notion/index.html:520 +#: website/public/showcase/notion/index.html:526 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:525 +#: website/public/showcase/notion/index.html:531 msgctxt "page:showcase/notion/index.html" msgid "A table through Notion's Markdown parser" msgstr "透過Notion的Markdown解析器的表格" -#: website/public/showcase/notion/index.html:546 +#: website/public/showcase/notion/index.html:552 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:553 +#: website/public/showcase/notion/index.html:559 msgctxt "page:showcase/notion/index.html" msgid "Another path: the offline SQLite connection" msgstr "另一條路徑:離線SQLite連線" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: getSqliteMeta -#: website/public/showcase/notion/index.html:554 +#: website/public/showcase/notion/index.html:560 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8479,14 +8479,14 @@ msgstr "" "工具程序。後續的語句批次和結果直接透過這個埠傳輸。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:560 +#: website/public/showcase/notion/index.html:566 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:567 +#: website/public/showcase/notion/index.html:573 msgctxt "page:showcase/notion/index.html" msgid "Sources and how to read the excerpts" msgstr "資料來源及如何閱讀摘錄" @@ -8495,7 +8495,7 @@ msgstr "資料來源及如何閱讀摘錄" #. {ph0}: app.asar #. {ph1}: main/index.js #. {ph2}: isNotionWebContents -#: website/public/showcase/notion/index.html:568 +#: website/public/showcase/notion/index.html:574 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8512,7 +8512,7 @@ msgstr "" #. {ph1}: 58169 #. {ph2}: 736810 #. {ph3}: 422457 -#: website/public/showcase/notion/index.html:576 +#: website/public/showcase/notion/index.html:582 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8526,7 +8526,7 @@ msgstr "" "模組。這些資源有獨立版本。儲存的測試執行提取出的模組和小型測試程式;輸出反映的是這些測試,沒有記錄桌面 UI 操作。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/notion/index.html:584 +#: website/public/showcase/notion/index.html:590 msgctxt "page:showcase/notion/index.html" msgid "" "The REA result shown here is a focused analysis of the saved tab preload, " @@ -8539,7 +8539,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 422457 -#: website/public/showcase/notion/index.html:591 +#: website/public/showcase/notion/index.html:597 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8555,7 +8555,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:599 +#: website/public/showcase/notion/index.html:605 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8567,7 +8567,7 @@ msgstr "{ph0} JavaScript應用指南{ph1}{ph2}遵循一個小的Electron應用 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/notion/index.html:606 +#: website/public/showcase/notion/index.html:612 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "" @@ -8591,52 +8591,52 @@ msgstr "" "追蹤 Notion 的剪貼簿 API,經過 Electron 預載入指令碼、IPC " "包裝函式和主程序。透過簡短程式碼節選瞭解呼叫鏈,再檢視富文字剪貼簿格式。" -#: website/public/showcase/notion/index.html:255 +#: website/public/showcase/notion/index.html:261 msgctxt "page:showcase/notion/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/showcase/notion/index.html:263 +#: website/public/showcase/notion/index.html:269 msgctxt "page:showcase/notion/index.html" msgid "Notion Electron case study" msgstr "Notion Electron案例研究" -#: website/public/showcase/notion/index.html:277 +#: website/public/showcase/notion/index.html:283 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion analysis prompt" msgstr "複製Notion分析提示" -#: website/public/showcase/notion/index.html:350 +#: website/public/showcase/notion/index.html:356 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion preload excerpt" msgstr "複製Notion預載入摘錄" -#: website/public/showcase/notion/index.html:379 +#: website/public/showcase/notion/index.html:385 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion invoke wrapper excerpt" msgstr "複製 Notion 呼叫包裝摘錄" -#: website/public/showcase/notion/index.html:410 +#: website/public/showcase/notion/index.html:416 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion handler wrapper excerpt" msgstr "複製Notion處理程式包裝器摘錄" -#: website/public/showcase/notion/index.html:438 +#: website/public/showcase/notion/index.html:444 msgctxt "page:showcase/notion/index.html" msgid "Copy Notion clipboard receiver excerpt" msgstr "複製Notion剪貼簿接收器摘錄" -#: website/public/showcase/notion/index.html:493 +#: website/public/showcase/notion/index.html:499 msgctxt "page:showcase/notion/index.html" msgid "Restoring rich clipboard data on paste" msgstr "在貼上上還原豐富的剪貼簿資料" -#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/notion/index.html:643 msgctxt "page:showcase/notion/index.html" msgid "Back to top" msgstr "回到頂部" -#: website/public/showcase/th04/index.html:107 +#: website/public/showcase/th04/index.html:113 msgctxt "page:showcase/th04/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -8645,43 +8645,43 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:199 +#: website/public/showcase/th04/index.html:205 #, 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:202 +#: website/public/showcase/th04/index.html:208 msgctxt "page:showcase/th04/index.html" msgid "Case study · Touhou 4: Lotus Land Story" msgstr "個案研究·東方4:蓮花地故事" #. {ph0}:
-#: website/public/showcase/th04/index.html:203 +#: website/public/showcase/th04/index.html:209 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Reconstructing TH04's{ph0}bullet patterns." msgstr "重建TH04{ph0}子彈圖案。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:204 +#: website/public/showcase/th04/index.html:210 msgctxt "page:showcase/th04/index.html" msgid "" "A ring of bullets starts with a short angle calculation. Use REA to inspect " "the original DOS function, then follow its instructions into readable C++." msgstr "一圈彈幕從一段簡短的角度計算開始。用 REA 檢查原始 DOS 函式,再把指令對應到可讀的 C++ 程式碼。" -#: website/public/showcase/th04/index.html:209 +#: website/public/showcase/th04/index.html:215 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:210 +#: website/public/showcase/th04/index.html:216 msgctxt "page:showcase/th04/index.html" msgid "View the TH04 reconstruction" msgstr "檢視TH04重建" -#: website/public/showcase/th04/index.html:216 +#: website/public/showcase/th04/index.html:222 msgctxt "page:showcase/th04/index.html" msgid "From original instructions to checked source" msgstr "從原始指令到經過驗證的原始碼" @@ -8692,7 +8692,7 @@ msgstr "從原始指令到經過驗證的原始碼" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:218 +#: website/public/showcase/th04/index.html:224 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8707,7 +8707,7 @@ msgstr "{ph0}01 · 原創遊戲{ph1}{ph2}主要。EXE檔案{ph3}{ph4}該 PC-98 #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:225 +#: website/public/showcase/th04/index.html:231 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8725,7 +8725,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:233 +#: website/public/showcase/th04/index.html:239 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8741,7 +8741,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/showcase/th04/index.html:240 +#: website/public/showcase/th04/index.html:246 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8753,21 +8753,21 @@ msgstr "" "位元組匹配{ph3}{ph4}已記錄的編譯器檢查覆蓋了包含這個輔助函式的彈幕生成程式碼。{ph5}" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:249 +#: website/public/showcase/th04/index.html:255 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:257 +#: website/public/showcase/th04/index.html:263 msgctxt "page:showcase/th04/index.html" msgid "In this case study" msgstr "在本個案研究中" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:259 +#: website/public/showcase/th04/index.html:265 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The bullet ring{ph1}" @@ -8775,7 +8775,7 @@ msgstr "{ph0}子彈環{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:260 +#: website/public/showcase/th04/index.html:266 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}What REA returns{ph1}" @@ -8783,7 +8783,7 @@ msgstr "{ph0}REA 返回什麼{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:261 +#: website/public/showcase/th04/index.html:267 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Assembly to C++{ph1}" @@ -8791,7 +8791,7 @@ msgstr "{ph0}彙編到C++{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:262 +#: website/public/showcase/th04/index.html:268 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Checking the source{ph1}" @@ -8799,19 +8799,19 @@ msgstr "{ph0}檢查來源{ph1}" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:263 +#: website/public/showcase/th04/index.html:269 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}The full project{ph1}" msgstr "{ph0}完整專案{ph1}" -#: website/public/showcase/th04/index.html:268 +#: website/public/showcase/th04/index.html:274 msgctxt "page:showcase/th04/index.html" msgid "How a ring aims at the player" msgstr "環形彈幕如何瞄準玩家" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:269 +#: website/public/showcase/th04/index.html:275 msgctxt "page:showcase/th04/index.html" msgid "" "Elly's attack requests an aimed ring with an initial count of 16. One helper" @@ -8827,16 +8827,16 @@ msgstr "Elly 的攻擊請求一個初始數量為 16 的自機狙環形彈幕。 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/showcase/th04/index.html:276 +#: website/public/showcase/th04/index.html:282 #, 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:281 -#: website/public/showcase/th04/index.html:337 -#: website/public/showcase/th04/index.html:514 -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:287 +#: website/public/showcase/th04/index.html:343 +#: website/public/showcase/th04/index.html:520 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy" msgstr "複製" @@ -8847,7 +8847,7 @@ msgstr "複製" #. {ph3}: #. {ph4}: -#: website/public/showcase/th04/index.html:290 +#: website/public/showcase/th04/index.html:296 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8856,7 +8856,7 @@ msgid "" msgstr "" "{ph0}›{ph1}{ph2}使用REA查詢TH04如何建立一個子彈環並將其瞄準玩家。 解釋計算並顯示程式碼。{ph3}{ph4}{ph5}" -#: website/public/showcase/th04/index.html:299 +#: website/public/showcase/th04/index.html:305 msgctxt "page:showcase/th04/index.html" msgid "" "An example prompt, with the original executable and reconstruction checkout " @@ -8865,7 +8865,7 @@ msgstr "一個示例提示,原始可執行檔案和重建簽出可在本地使 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0, 16, 32, …, 240 -#: website/public/showcase/th04/index.html:303 +#: website/public/showcase/th04/index.html:309 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8878,7 +8878,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:323 +#: website/public/showcase/th04/index.html:329 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8886,12 +8886,12 @@ msgid "" "40 and template rotation 0. {ph0}Open figure{ph1}" msgstr "圖中演示還原出的角度計算:子彈數量為 16,玩家方向為 40,模板旋轉角為 0。{ph0}檢視大圖{ph1}" -#: website/public/showcase/th04/index.html:331 +#: website/public/showcase/th04/index.html:337 msgctxt "page:showcase/th04/index.html" msgid "The firing template in the recovered source" msgstr "還原原始碼中的發射模板" -#: website/public/showcase/th04/index.html:336 +#: website/public/showcase/th04/index.html:342 msgctxt "page:showcase/th04/index.html" msgid "Elly's ring attack · source excerpt" msgstr "Elly 的環形攻擊 · 原始碼節選" @@ -8900,7 +8900,7 @@ msgstr "Elly 的環形攻擊 · 原始碼節選" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:351 +#: website/public/showcase/th04/index.html:357 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8908,14 +8908,14 @@ msgid "" "{ph0}Read the attack's source{ph1}." msgstr "這些線在難度和效能調整之前選擇模式。 {ph0}閱讀攻擊的來源{ph1}." -#: website/public/showcase/th04/index.html:362 +#: website/public/showcase/th04/index.html:368 msgctxt "page:showcase/th04/index.html" msgid "What REA returns" msgstr "REA 返回什麼" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: bullet_velocity_and_angle_set() -#: website/public/showcase/th04/index.html:363 +#: website/public/showcase/th04/index.html:369 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8924,20 +8924,20 @@ msgid "" " result explain the pattern." msgstr "我們檢查設定每顆子彈速度和角度的函式 {ph0}。REA 返回指令、虛擬碼和引用,其中三部分解釋了這種彈幕如何生成。" -#: website/public/showcase/th04/index.html:371 +#: website/public/showcase/th04/index.html:377 msgctxt "page:showcase/th04/index.html" msgid "Check the DOS image before reading its code" msgstr "在閱讀其程式碼之前檢查DOS映像" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:392 +#: website/public/showcase/th04/index.html:398 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:398 +#: website/public/showcase/th04/index.html:404 msgctxt "page:showcase/th04/index.html" msgid "Read the ring's multiply and divide" msgstr "檢視環形彈幕的乘除計算" @@ -8946,7 +8946,7 @@ msgstr "檢視環形彈幕的乘除計算" #. {ph0}: SI #. {ph1}: DS:53AF #. {ph2}: bullet_template.count -#: website/public/showcase/th04/index.html:416 +#: website/public/showcase/th04/index.html:422 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -8956,13 +8956,13 @@ msgid "" msgstr "" "{ph0} 儲存子彈索引。移位將它乘以 256,再除以從 {ph1} 讀取的數量。重建原始碼把這個欄位命名為 {ph2}。完整指令序列見下文。" -#: website/public/showcase/th04/index.html:425 +#: website/public/showcase/th04/index.html:431 msgctxt "page:showcase/th04/index.html" msgid "Find where the pattern turns toward the player" msgstr "找到模式轉向玩家的位置" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:446 +#: website/public/showcase/th04/index.html:452 msgctxt "page:showcase/th04/index.html" msgid "" "The instruction operands expose two coordinate differences and a direction " @@ -8973,13 +8973,13 @@ msgstr "" "指令運算元顯示了兩個座標差,以及一個計算方向的輔助函式。它的返回值加到相對環形角度上。原始碼名稱讓這些地址的含義更易讀;REA " "則幫助助手核對地址背後的原始操作。" -#: website/public/showcase/th04/index.html:457 +#: website/public/showcase/th04/index.html:463 msgctxt "page:showcase/th04/index.html" msgid "From assembly to readable C++" msgstr "從彙編到可讀C++" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:458 +#: website/public/showcase/th04/index.html:464 msgctxt "page:showcase/th04/index.html" msgid "" "Select a step to match the original instructions with the angle calculation." @@ -8989,7 +8989,7 @@ msgstr "點選每一步,對照原始指令和角度計算。這份摘要展示 #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:469 +#: website/public/showcase/th04/index.html:475 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}01{ph1} Index" @@ -8997,7 +8997,7 @@ msgstr "{ph0}01{ph1} 索引" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:477 +#: website/public/showcase/th04/index.html:483 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}02{ph1} Space" @@ -9005,7 +9005,7 @@ msgstr "{ph0}02{ph1} 等分" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:485 +#: website/public/showcase/th04/index.html:491 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}03{ph1} Aim" @@ -9013,7 +9013,7 @@ msgstr "{ph0}03{ph1} 瞄準" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:493 +#: website/public/showcase/th04/index.html:499 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}04{ph1} Rotate" @@ -9021,18 +9021,18 @@ msgstr "{ph0}04{ph1} 旋轉" #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:501 +#: website/public/showcase/th04/index.html:507 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}05{ph1} Store" msgstr "{ph0}05{ph1} 儲存" -#: website/public/showcase/th04/index.html:513 +#: website/public/showcase/th04/index.html:519 msgctxt "page:showcase/th04/index.html" msgid "REA · original 16-bit instructions" msgstr "REA · 原始 16 位指令" -#: website/public/showcase/th04/index.html:547 +#: website/public/showcase/th04/index.html:553 msgctxt "page:showcase/th04/index.html" msgid "Readable C++ · aimed-ring summary" msgstr "可讀 C++ · 自機狙環形彈幕摘要" @@ -9041,7 +9041,7 @@ msgstr "可讀 C++ · 自機狙環形彈幕摘要" #. {ph0}: #. {ph1}: #. {ph2}: SI -#: website/public/showcase/th04/index.html:576 +#: website/public/showcase/th04/index.html:582 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9054,7 +9054,7 @@ msgstr "{ph0}01 · 讀取子彈索引。{ph1} 棧引數載入到 {ph2}。在 16 #. {ph1}: #. {ph2}: SHL AX,8 #. {ph3}: IDIV -#: website/public/showcase/th04/index.html:581 +#: website/public/showcase/th04/index.html:587 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9069,7 +9069,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AX -#: website/public/showcase/th04/index.html:588 +#: website/public/showcase/th04/index.html:594 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9084,7 +9084,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: ADD AL,[0x53ad] -#: website/public/showcase/th04/index.html:594 +#: website/public/showcase/th04/index.html:600 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9098,7 +9098,7 @@ msgstr "" #. {ph0}: #. {ph1}: #. {ph2}: AL -#: website/public/showcase/th04/index.html:600 +#: website/public/showcase/th04/index.html:606 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9111,7 +9111,7 @@ msgstr "" "後迴繞,與無符號位元組轉換一致。周圍原始碼還會根據這個角度和速率計算速度分量。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:609 +#: website/public/showcase/th04/index.html:615 msgctxt "page:showcase/th04/index.html" msgid "" "The assembly selects the aimed-ring branch, aim calculation and final store." @@ -9119,7 +9119,7 @@ msgid "" "maintained source in the linked project." msgstr "彙編節選展示自機狙環形分支、瞄準計算和最終儲存。上面的 C++ 是便於閱讀的摘要。下方的編譯器檢查針對連結專案中維護的原始碼。" -#: website/public/showcase/th04/index.html:615 +#: website/public/showcase/th04/index.html:621 msgctxt "page:showcase/th04/index.html" msgid "Read the maintained ring and aim source" msgstr "閱讀維護的環和瞄準源" @@ -9136,7 +9136,7 @@ msgstr "閱讀維護的環和瞄準源" #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6" #. > #. {ph5}: -#: website/public/showcase/th04/index.html:644 +#: website/public/showcase/th04/index.html:650 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9144,37 +9144,37 @@ msgid "" "representation{ph5}" msgstr "{ph0}環宏{ph1} · {ph2}目標和速度源{ph3} · {ph4}角度表示{ph5}" -#: website/public/showcase/th04/index.html:664 +#: website/public/showcase/th04/index.html:670 msgctxt "page:showcase/th04/index.html" msgid "Checking the maintained source" msgstr "檢查維護的源" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:665 +#: website/public/showcase/th04/index.html:671 msgctxt "page:showcase/th04/index.html" msgid "" "The TH04 project's recorded checks compile the bullet-generation code, " "including this helper, with its pinned Turbo C++ 4.0J toolchain." msgstr "TH04 專案記錄的檢查使用指定的 Turbo C++ 4.0J 工具鏈,編譯包含這個輔助函式的彈幕生成程式碼。" -#: website/public/showcase/th04/index.html:672 +#: website/public/showcase/th04/index.html:678 msgctxt "page:showcase/th04/index.html" msgid "2,139 matching bytes" msgstr "2,139匹配位元組" -#: website/public/showcase/th04/index.html:673 +#: website/public/showcase/th04/index.html:679 msgctxt "page:showcase/th04/index.html" msgid "" "The compiled bullet-generation code matches a 2,139-byte section of the " "original executable." msgstr "編譯的子彈生成程式碼與原始可執行檔案的2,139位元組部分相匹配。" -#: website/public/showcase/th04/index.html:679 +#: website/public/showcase/th04/index.html:685 msgctxt "page:showcase/th04/index.html" msgid "Two clean builds" msgstr "兩個乾淨的構建" -#: website/public/showcase/th04/index.html:680 +#: website/public/showcase/th04/index.html:686 msgctxt "page:showcase/th04/index.html" msgid "" "Two separate builds produce the same matching bytes. The recorded input " @@ -9185,66 +9185,66 @@ msgstr "兩個單獨的構建產生相同的匹配位元組。 記錄的輸入 #. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation" #. > #. {ph1}: -#: website/public/showcase/th04/index.html:686 +#: website/public/showcase/th04/index.html:692 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}." msgstr "2026年10月3日錄得。 {ph0}閱讀編譯器檢查{ph1}." -#: website/public/showcase/th04/index.html:694 +#: website/public/showcase/th04/index.html:700 msgctxt "page:showcase/th04/index.html" msgid "Target identity and analysis scope" msgstr "目標身份和分析範圍" -#: website/public/showcase/th04/index.html:699 +#: website/public/showcase/th04/index.html:705 msgctxt "page:showcase/th04/index.html" msgid "Original target" msgstr "原始目標" #. {ph0}: MAIN.EXE -#: website/public/showcase/th04/index.html:700 +#: website/public/showcase/th04/index.html:706 #, 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:703 +#: website/public/showcase/th04/index.html:709 msgctxt "page:showcase/th04/index.html" msgid "Helper entry" msgstr "傭工入境" #. {ph0}: 0x2cfc8 -#: website/public/showcase/th04/index.html:704 +#: website/public/showcase/th04/index.html:710 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0} in REA's loaded image" msgstr "{ph0} 在REA的載入影象" -#: website/public/showcase/th04/index.html:707 +#: website/public/showcase/th04/index.html:713 msgctxt "page:showcase/th04/index.html" msgid "Original file offset" msgstr "原始檔案偏移量" #. {ph0}: 0x1e7c8 #. {ph1}: address_to_file_offset -#: website/public/showcase/th04/index.html:708 +#: website/public/showcase/th04/index.html:714 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}, returned by {ph1}" msgstr "{ph0},返回 {ph1}" -#: website/public/showcase/th04/index.html:714 +#: website/public/showcase/th04/index.html:720 msgctxt "page:showcase/th04/index.html" msgid "Recorded code inspection" msgstr "記錄程式碼檢查" -#: website/public/showcase/th04/index.html:715 +#: website/public/showcase/th04/index.html:721 msgctxt "page:showcase/th04/index.html" msgid "REA 4.1.0 · 7 October 2026" msgstr "REA4.1.0*2026年10月7日" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:720 +#: website/public/showcase/th04/index.html:726 msgctxt "page:showcase/th04/index.html" msgid "" "Compiler checks cover the complete bullet-add code section, including this " @@ -9253,7 +9253,7 @@ msgstr "編譯器檢查覆蓋完整的彈幕新增程式碼段,包括這個輔 # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0x1000 -#: website/public/showcase/th04/index.html:725 +#: website/public/showcase/th04/index.html:731 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9267,7 +9267,7 @@ msgstr "" # Reviewed for clear case-study reasoning and evidence. #. {ph0}: 0d72e980 -#: website/public/showcase/th04/index.html:732 +#: website/public/showcase/th04/index.html:738 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9281,7 +9281,7 @@ msgstr "" "對同一原始目標的檢查。遊戲檔案的身份由儲存庫清單確定,獨立原始轉儲的來源仍未確定。" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:740 +#: website/public/showcase/th04/index.html:746 msgctxt "page:showcase/th04/index.html" msgid "" "The figure illustrates the angle calculation. Full-game controls, timing and" @@ -9289,13 +9289,13 @@ msgid "" "project." msgstr "圖中說明的是角度計算。完整遊戲的控制、時序和 PC-98 硬體行為,在重建專案中有各自的執行時檢查。" -#: website/public/showcase/th04/index.html:749 +#: website/public/showcase/th04/index.html:755 msgctxt "page:showcase/th04/index.html" msgid "The full TH04 reconstruction" msgstr "完整的TH04重建" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:750 +#: website/public/showcase/th04/index.html:756 msgctxt "page:showcase/th04/index.html" msgid "" "The project builds the game's four DOS products from maintained C++ and " @@ -9305,7 +9305,7 @@ msgstr "專案用維護中的 C++ 和彙編構建遊戲的四個 DOS 程式。 #. {ph0}: #. {ph1}: -#: website/public/showcase/th04/index.html:756 +#: website/public/showcase/th04/index.html:762 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "{ph0}Explore the TH04 repository{ph1}" @@ -9317,7 +9317,7 @@ msgstr "{ph0}探索 TH04 程式碼儲存庫{ph1}" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:762 +#: website/public/showcase/th04/index.html:768 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9331,7 +9331,7 @@ msgstr "{ph0}子彈生成源{ph1}{ph2}完整的助手,其他模式型別和模 #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:771 +#: website/public/showcase/th04/index.html:777 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9345,7 +9345,7 @@ msgstr "{ph0}DOS構建和執行指南{ph1}{ph2}構建原始碼並在專案的PC- #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/showcase/th04/index.html:780 +#: website/public/showcase/th04/index.html:786 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "" @@ -9367,29 +9367,29 @@ msgid "" "player." msgstr "用 REA 檢查 TH04 的原始 16 位 DOS 程式碼。對照彙編與還原的 C++,瞭解環形彈幕如何等分方向並瞄準玩家。" -#: website/public/showcase/th04/index.html:256 +#: website/public/showcase/th04/index.html:262 msgctxt "page:showcase/th04/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/showcase/th04/index.html:266 +#: website/public/showcase/th04/index.html:272 msgctxt "page:showcase/th04/index.html" msgid "TH04 bullet-pattern case study" msgstr "TH04子彈型案例研究" -#: website/public/showcase/th04/index.html:281 +#: website/public/showcase/th04/index.html:287 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 example prompt" msgstr "複製TH04示例提示" -#: website/public/showcase/th04/index.html:309 +#: website/public/showcase/th04/index.html:315 msgctxt "page:showcase/th04/index.html" msgid "" "TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens" msgstr "TH04固定和瞄準子彈環;在較小的螢幕上水平滾動" # Reviewed for clear case-study reasoning and evidence. -#: website/public/showcase/th04/index.html:315 +#: website/public/showcase/th04/index.html:321 msgctxt "page:showcase/th04/index.html" msgid "" "Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. " @@ -9400,27 +9400,27 @@ msgstr "" "兩幅圖展示 16 顆子彈的環。固定環從角度 0 開始。加上玩家方向 40 後,每個方向都旋轉相同角度,高亮的第一顆子彈指向玩家。兩者都保持 16 " "個角度單位的間距,即 22.5 度。" -#: website/public/showcase/th04/index.html:337 +#: website/public/showcase/th04/index.html:343 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 firing template" msgstr "複製 TH04 發射範本" -#: website/public/showcase/th04/index.html:464 +#: website/public/showcase/th04/index.html:470 msgctxt "page:showcase/th04/index.html" msgid "Follow the TH04 aimed-ring calculation" msgstr "按照TH04-環計算" -#: website/public/showcase/th04/index.html:514 +#: website/public/showcase/th04/index.html:520 msgctxt "page:showcase/th04/index.html" msgid "Copy TH04 assembly excerpt" msgstr "複製TH04彙編摘錄" -#: website/public/showcase/th04/index.html:548 +#: website/public/showcase/th04/index.html:554 msgctxt "page:showcase/th04/index.html" msgid "Copy readable aimed-ring calculation" msgstr "複製可讀瞄準環計算" -#: website/public/showcase/th04/index.html:806 +#: website/public/showcase/th04/index.html:812 msgctxt "page:showcase/th04/index.html" msgid "Back to top" msgstr "回到頂部" @@ -9883,598 +9883,598 @@ 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:118 -#: website/public/blog/reverse-engineering-models/index.html:118 -#: website/public/blog/touhou-reconstruction/index.html:118 -#: website/public/contributors/index.html:119 -#: website/public/examples/dino-lab/index.html:119 -#: website/public/faq/index.html:118 -#: website/public/first-investigation/index.html:118 -#: website/public/get-started/index.html:118 -#: website/public/guides/browser/index.html:118 -#: website/public/guides/index.html:118 -#: website/public/guides/javascript/index.html:118 -#: website/public/guides/native/index.html:118 website/public/index.html:120 -#: website/public/showcase/aegis/index.html:119 -#: website/public/showcase/ctf/index.html:118 -#: website/public/showcase/dx-ball/index.html:118 -#: website/public/showcase/index.html:118 -#: website/public/showcase/notion/index.html:118 -#: website/public/showcase/th04/index.html:118 +#: website/public/blog/index.html:124 +#: website/public/blog/reverse-engineering-models/index.html:124 +#: website/public/blog/touhou-reconstruction/index.html:124 +#: website/public/contributors/index.html:125 +#: website/public/examples/dino-lab/index.html:125 +#: website/public/faq/index.html:124 +#: website/public/first-investigation/index.html:124 +#: website/public/get-started/index.html:124 +#: website/public/guides/browser/index.html:124 +#: website/public/guides/index.html:124 +#: website/public/guides/javascript/index.html:124 +#: website/public/guides/native/index.html:124 website/public/index.html:126 +#: website/public/showcase/aegis/index.html:125 +#: website/public/showcase/ctf/index.html:124 +#: website/public/showcase/dx-ball/index.html:124 +#: website/public/showcase/index.html:124 +#: website/public/showcase/notion/index.html:124 +#: website/public/showcase/th04/index.html:124 msgctxt "shared" msgid "Showcases" msgstr "案例展示" -#: website/public/blog/index.html:119 -#: website/public/blog/reverse-engineering-models/index.html:119 -#: website/public/blog/touhou-reconstruction/index.html:119 -#: website/public/contributors/index.html:120 -#: website/public/examples/dino-lab/index.html:120 -#: website/public/faq/index.html:119 -#: website/public/first-investigation/index.html:119 -#: website/public/get-started/index.html:119 -#: website/public/guides/browser/index.html:119 -#: website/public/guides/index.html:119 -#: website/public/guides/javascript/index.html:119 -#: website/public/guides/native/index.html:119 website/public/index.html:121 -#: website/public/showcase/aegis/index.html:120 -#: website/public/showcase/ctf/index.html:119 -#: website/public/showcase/dx-ball/index.html:119 -#: website/public/showcase/index.html:119 -#: website/public/showcase/notion/index.html:119 -#: website/public/showcase/th04/index.html:119 +#: website/public/blog/index.html:125 +#: website/public/blog/reverse-engineering-models/index.html:125 +#: website/public/blog/touhou-reconstruction/index.html:125 +#: website/public/contributors/index.html:126 +#: website/public/examples/dino-lab/index.html:126 +#: website/public/faq/index.html:125 +#: website/public/first-investigation/index.html:125 +#: website/public/get-started/index.html:125 +#: website/public/guides/browser/index.html:125 +#: website/public/guides/index.html:125 +#: website/public/guides/javascript/index.html:125 +#: website/public/guides/native/index.html:125 website/public/index.html:127 +#: website/public/showcase/aegis/index.html:126 +#: website/public/showcase/ctf/index.html:125 +#: website/public/showcase/dx-ball/index.html:125 +#: website/public/showcase/index.html:125 +#: website/public/showcase/notion/index.html:125 +#: website/public/showcase/th04/index.html:125 msgctxt "shared" msgid "Blog" msgstr "部落格" -#: website/public/blog/index.html:117 -#: website/public/blog/reverse-engineering-models/index.html:117 -#: website/public/blog/touhou-reconstruction/index.html:117 -#: website/public/contributors/index.html:118 -#: 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 +#: website/public/blog/index.html:123 +#: website/public/blog/reverse-engineering-models/index.html:123 +#: website/public/blog/touhou-reconstruction/index.html:123 +#: website/public/contributors/index.html:124 +#: website/public/examples/dino-lab/index.html:124 +#: website/public/faq/index.html:123 +#: website/public/first-investigation/index.html:123 +#: website/public/get-started/index.html:123 +#: website/public/guides/browser/index.html:123 +#: website/public/guides/index.html:123 +#: website/public/guides/javascript/index.html:123 +#: website/public/guides/native/index.html:123 website/public/index.html:125 +#: website/public/showcase/aegis/index.html:124 +#: website/public/showcase/ctf/index.html:123 +#: website/public/showcase/dx-ball/index.html:123 +#: website/public/showcase/index.html:123 +#: website/public/showcase/notion/index.html:123 +#: website/public/showcase/th04/index.html:123 msgctxt "shared" msgid "Get started" msgstr "開始使用" -#: website/public/blog/index.html:120 -#: website/public/blog/reverse-engineering-models/index.html:120 -#: website/public/blog/touhou-reconstruction/index.html:120 -#: website/public/contributors/index.html:121 -#: website/public/examples/dino-lab/index.html:121 -#: website/public/faq/index.html:120 -#: website/public/first-investigation/index.html:120 -#: website/public/get-started/index.html:120 -#: website/public/guides/browser/index.html:120 -#: website/public/guides/index.html:120 -#: website/public/guides/javascript/index.html:120 -#: website/public/guides/native/index.html:120 website/public/index.html:122 -#: website/public/showcase/aegis/index.html:121 -#: website/public/showcase/ctf/index.html:120 -#: website/public/showcase/dx-ball/index.html:120 -#: website/public/showcase/index.html:120 -#: website/public/showcase/notion/index.html:120 -#: website/public/showcase/th04/index.html:120 +#: website/public/blog/index.html:126 +#: website/public/blog/reverse-engineering-models/index.html:126 +#: website/public/blog/touhou-reconstruction/index.html:126 +#: website/public/contributors/index.html:127 +#: website/public/examples/dino-lab/index.html:127 +#: website/public/faq/index.html:126 +#: website/public/first-investigation/index.html:126 +#: website/public/get-started/index.html:126 +#: website/public/guides/browser/index.html:126 +#: website/public/guides/index.html:126 +#: website/public/guides/javascript/index.html:126 +#: website/public/guides/native/index.html:126 website/public/index.html:128 +#: website/public/showcase/aegis/index.html:127 +#: website/public/showcase/ctf/index.html:126 +#: website/public/showcase/dx-ball/index.html:126 +#: website/public/showcase/index.html:126 +#: website/public/showcase/notion/index.html:126 +#: website/public/showcase/th04/index.html:126 msgctxt "shared" msgid "Guides" msgstr "指南" -#: website/public/blog/index.html:242 -#: website/public/blog/reverse-engineering-models/index.html:881 -#: website/public/blog/touhou-reconstruction/index.html:1078 -#: website/public/contributors/index.html:1129 -#: website/public/examples/dino-lab/index.html:473 -#: website/public/faq/index.html:571 -#: website/public/first-investigation/index.html:532 -#: website/public/get-started/index.html:1815 -#: website/public/guides/browser/index.html:505 -#: website/public/guides/index.html:280 -#: website/public/guides/javascript/index.html:501 -#: website/public/guides/native/index.html:507 website/public/index.html:1220 -#: website/public/showcase/aegis/index.html:806 -#: website/public/showcase/ctf/index.html:775 -#: website/public/showcase/dx-ball/index.html:783 -#: website/public/showcase/index.html:315 -#: website/public/showcase/notion/index.html:629 -#: website/public/showcase/th04/index.html:798 +#: website/public/blog/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:887 +#: website/public/blog/touhou-reconstruction/index.html:1084 +#: website/public/contributors/index.html:1135 +#: website/public/examples/dino-lab/index.html:479 +#: website/public/faq/index.html:577 +#: website/public/first-investigation/index.html:538 +#: website/public/get-started/index.html:1821 +#: website/public/guides/browser/index.html:511 +#: website/public/guides/index.html:286 +#: website/public/guides/javascript/index.html:507 +#: website/public/guides/native/index.html:513 website/public/index.html:1226 +#: website/public/showcase/aegis/index.html:812 +#: website/public/showcase/ctf/index.html:781 +#: website/public/showcase/dx-ball/index.html:789 +#: website/public/showcase/index.html:321 +#: website/public/showcase/notion/index.html:635 +#: website/public/showcase/th04/index.html:804 msgctxt "shared" msgid "Source" msgstr "原始碼" -#: website/public/blog/index.html:243 -#: website/public/blog/reverse-engineering-models/index.html:882 -#: website/public/blog/touhou-reconstruction/index.html:1079 -#: website/public/contributors/index.html:1130 -#: website/public/examples/dino-lab/index.html:474 -#: website/public/faq/index.html:572 -#: website/public/first-investigation/index.html:533 -#: website/public/get-started/index.html:1816 -#: website/public/guides/browser/index.html:506 -#: website/public/guides/index.html:281 -#: website/public/guides/javascript/index.html:502 -#: website/public/guides/native/index.html:508 website/public/index.html:1221 -#: website/public/showcase/aegis/index.html:807 -#: website/public/showcase/ctf/index.html:776 -#: website/public/showcase/dx-ball/index.html:784 -#: website/public/showcase/index.html:316 -#: website/public/showcase/notion/index.html:630 -#: website/public/showcase/th04/index.html:799 +#: website/public/blog/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:888 +#: website/public/blog/touhou-reconstruction/index.html:1085 +#: website/public/contributors/index.html:1136 +#: website/public/examples/dino-lab/index.html:480 +#: website/public/faq/index.html:578 +#: website/public/first-investigation/index.html:539 +#: website/public/get-started/index.html:1822 +#: website/public/guides/browser/index.html:512 +#: website/public/guides/index.html:287 +#: website/public/guides/javascript/index.html:508 +#: website/public/guides/native/index.html:514 website/public/index.html:1227 +#: website/public/showcase/aegis/index.html:813 +#: website/public/showcase/ctf/index.html:782 +#: website/public/showcase/dx-ball/index.html:790 +#: website/public/showcase/index.html:322 +#: website/public/showcase/notion/index.html:636 +#: website/public/showcase/th04/index.html:805 msgctxt "shared" msgid "MIT license" msgstr "MIT 許可證" -#: website/public/blog/index.html:244 -#: website/public/blog/reverse-engineering-models/index.html:883 -#: website/public/blog/touhou-reconstruction/index.html:1080 -#: website/public/contributors/index.html:1131 -#: website/public/examples/dino-lab/index.html:475 -#: website/public/faq/index.html:573 -#: website/public/first-investigation/index.html:534 -#: website/public/get-started/index.html:1817 -#: website/public/guides/browser/index.html:507 -#: website/public/guides/index.html:282 -#: website/public/guides/javascript/index.html:503 -#: website/public/guides/native/index.html:509 website/public/index.html:1222 -#: website/public/showcase/aegis/index.html:808 -#: website/public/showcase/ctf/index.html:777 -#: website/public/showcase/dx-ball/index.html:785 -#: website/public/showcase/index.html:317 -#: website/public/showcase/notion/index.html:631 -#: website/public/showcase/th04/index.html:800 +#: website/public/blog/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/touhou-reconstruction/index.html:1086 +#: website/public/contributors/index.html:1137 +#: website/public/examples/dino-lab/index.html:481 +#: website/public/faq/index.html:579 +#: website/public/first-investigation/index.html:540 +#: website/public/get-started/index.html:1823 +#: website/public/guides/browser/index.html:513 +#: website/public/guides/index.html:288 +#: website/public/guides/javascript/index.html:509 +#: website/public/guides/native/index.html:515 website/public/index.html:1228 +#: website/public/showcase/aegis/index.html:814 +#: website/public/showcase/ctf/index.html:783 +#: website/public/showcase/dx-ball/index.html:791 +#: website/public/showcase/index.html:323 +#: website/public/showcase/notion/index.html:637 +#: website/public/showcase/th04/index.html:806 msgctxt "shared" msgid "Join the community" msgstr "加入社群" -#: website/public/blog/index.html:245 -#: website/public/blog/reverse-engineering-models/index.html:884 -#: website/public/blog/touhou-reconstruction/index.html:1081 -#: website/public/contributors/index.html:1132 -#: website/public/examples/dino-lab/index.html:476 -#: website/public/faq/index.html:574 -#: website/public/first-investigation/index.html:535 -#: website/public/get-started/index.html:1818 -#: website/public/guides/browser/index.html:508 -#: website/public/guides/index.html:283 -#: website/public/guides/javascript/index.html:504 -#: website/public/guides/native/index.html:510 website/public/index.html:1223 -#: website/public/showcase/aegis/index.html:809 -#: website/public/showcase/ctf/index.html:778 -#: website/public/showcase/dx-ball/index.html:786 -#: website/public/showcase/index.html:318 -#: website/public/showcase/notion/index.html:632 -#: website/public/showcase/th04/index.html:801 +#: website/public/blog/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:890 +#: website/public/blog/touhou-reconstruction/index.html:1087 +#: website/public/contributors/index.html:1138 +#: website/public/examples/dino-lab/index.html:482 +#: website/public/faq/index.html:580 +#: website/public/first-investigation/index.html:541 +#: website/public/get-started/index.html:1824 +#: website/public/guides/browser/index.html:514 +#: website/public/guides/index.html:289 +#: website/public/guides/javascript/index.html:510 +#: website/public/guides/native/index.html:516 website/public/index.html:1229 +#: website/public/showcase/aegis/index.html:815 +#: website/public/showcase/ctf/index.html:784 +#: website/public/showcase/dx-ball/index.html:792 +#: website/public/showcase/index.html:324 +#: website/public/showcase/notion/index.html:638 +#: website/public/showcase/th04/index.html:807 msgctxt "shared" msgid "Follow us on X" msgstr "在 X 上關注我們" -#: website/public/examples/dino-lab/index.html:311 +#: website/public/examples/dino-lab/index.html:317 msgctxt "page:examples/dino-lab/index.html" msgid "REA · selected script source" msgstr "REA · 選定指令碼源" -#: website/public/first-investigation/index.html:379 +#: website/public/first-investigation/index.html:385 msgctxt "page:first-investigation/index.html" msgid "Source" msgstr "原始碼" -#: website/public/first-investigation/index.html:433 +#: website/public/first-investigation/index.html:439 msgctxt "page:first-investigation/index.html" msgid "Expected formatter output" msgstr "預期格式化程式輸出" -#: website/public/guides/index.html:224 +#: website/public/guides/index.html:230 msgctxt "page:guides/index.html" msgid "Instructions" msgstr "指令" -#: website/public/guides/index.html:225 +#: website/public/guides/index.html:231 msgctxt "page:guides/index.html" msgid "Caller" msgstr "呼叫方" -#: website/public/guides/index.html:226 +#: website/public/guides/index.html:232 msgctxt "page:guides/index.html" msgid "Constants" msgstr "常量" -#: website/public/guides/index.html:227 +#: website/public/guides/index.html:233 msgctxt "page:guides/index.html" msgid "C function" msgstr "C函式" -#: website/public/guides/index.html:242 +#: website/public/guides/index.html:248 msgctxt "page:guides/index.html" msgid "Button" msgstr "按鈕" -#: website/public/guides/index.html:243 +#: website/public/guides/index.html:249 msgctxt "page:guides/index.html" msgid "Preload API" msgstr "預載入API" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "IPC" msgstr "IPC" -#: website/public/guides/index.html:244 +#: website/public/guides/index.html:250 msgctxt "page:guides/index.html" msgid "CSV file" msgstr "CSV檔案" -#: website/public/guides/index.html:264 +#: website/public/guides/index.html:270 msgctxt "page:guides/index.html" msgid "Your click" msgstr "你的點選" -#: website/public/guides/index.html:265 +#: website/public/guides/index.html:271 msgctxt "page:guides/index.html" msgid "Captured request" msgstr "捕獲的請求" -#: website/public/guides/index.html:266 +#: website/public/guides/index.html:272 msgctxt "page:guides/index.html" msgid "Export script" msgstr "匯出指令碼" -#: website/public/guides/javascript/index.html:362 +#: website/public/guides/javascript/index.html:368 msgctxt "page:guides/javascript/index.html" msgid "REA result · summary.ipc excerpt" msgstr "REA 結果 · summary.ipc 摘錄" -#: website/public/guides/native/index.html:389 +#: website/public/guides/native/index.html:395 msgctxt "page:guides/native/index.html" msgid "REA instruction excerpt · 0x406409" msgstr "REA指令摘錄·0x406409" -#: website/public/guides/native/index.html:403 +#: website/public/guides/native/index.html:409 msgctxt "page:guides/native/index.html" msgid "REA caller excerpt · 0x411f5b" msgstr "REA呼叫方摘錄 · 0x411f5b" -#: website/public/guides/native/index.html:417 +#: website/public/guides/native/index.html:423 msgctxt "page:guides/native/index.html" msgid "REA byte results · interpreted as little-endian doubles" msgstr "REA位元組結果 · 解釋為little-endian雙精度浮點數" -#: website/public/guides/native/index.html:434 +#: website/public/guides/native/index.html:440 msgctxt "page:guides/native/index.html" msgid "Recovered C · excerpt" msgstr "恢復C · 摘錄" -#: website/public/index.html:1034 +#: website/public/index.html:1040 msgctxt "page:index.html" msgid "Showcases →" msgstr "檢視案例 →" -#: website/public/index.html:763 +#: website/public/index.html:769 msgctxt "page:index.html" msgid "Selected settings from the inspected script" msgstr "實際指令碼中的設定節選" -#: website/public/index.html:938 +#: website/public/index.html:944 msgctxt "page:index.html" msgid "Readable summary of the % handler" msgstr "% 處理函式的可讀摘要" -#: website/public/index.html:982 +#: website/public/index.html:988 msgctxt "page:index.html" msgid "REA · selected original instructions" msgstr "REA · 原始指令節選" -#: website/public/index.html:993 +#: website/public/index.html:999 msgctxt "page:index.html" msgid "Operator IDs · Microsoft’s source" msgstr "運算子 ID · Microsoft 原始碼" -#: website/public/showcase/aegis/index.html:404 -#: website/public/showcase/aegis/index.html:436 +#: website/public/showcase/aegis/index.html:410 +#: website/public/showcase/aegis/index.html:442 msgctxt "page:showcase/aegis/index.html" msgid "Agent → REA" msgstr "程式設計助手→ REA" -#: website/public/showcase/aegis/index.html:414 +#: website/public/showcase/aegis/index.html:420 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · selected results" msgstr "REA →程式設計助手 · 選定結果" -#: website/public/showcase/aegis/index.html:450 +#: website/public/showcase/aegis/index.html:456 msgctxt "page:showcase/aegis/index.html" msgid "REA → agent · methods and callers" msgstr "REA →程式設計助手·方法和呼叫者" -#: website/public/showcase/aegis/index.html:520 +#: website/public/showcase/aegis/index.html:526 msgctxt "page:showcase/aegis/index.html" msgid "REA · selected decompiled Java" msgstr "REA · 精選反編譯Java" -#: website/public/showcase/aegis/index.html:550 +#: website/public/showcase/aegis/index.html:556 msgctxt "page:showcase/aegis/index.html" msgid "Readable summary · agent's interpretation" msgstr "可讀摘要 · 程式設計助手解釋" -#: website/public/showcase/aegis/index.html:605 +#: website/public/showcase/aegis/index.html:611 msgctxt "page:showcase/aegis/index.html" msgid "REA · generateOTP, complete body" msgstr "REA · generateOTP 完整函式體" -#: website/public/showcase/aegis/index.html:723 +#: website/public/showcase/aegis/index.html:729 msgctxt "page:showcase/aegis/index.html" msgid "Download Aegis APK" msgstr "下載Aegis APK" -#: website/public/showcase/aegis/index.html:727 +#: website/public/showcase/aegis/index.html:733 msgctxt "page:showcase/aegis/index.html" msgid "Download Android analysis provider" msgstr "下載 Android 分析後端" -#: website/public/showcase/ctf/index.html:307 -#: website/public/showcase/ctf/index.html:343 +#: website/public/showcase/ctf/index.html:313 +#: website/public/showcase/ctf/index.html:349 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA" msgstr "程式設計助手→ REA" -#: website/public/showcase/ctf/index.html:323 +#: website/public/showcase/ctf/index.html:329 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected results" msgstr "REA →程式設計助手 · 選定結果" -#: website/public/showcase/ctf/index.html:355 +#: website/public/showcase/ctf/index.html:361 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · selected instructions" msgstr "REA →程式設計助手 · 選擇說明" -#: website/public/showcase/ctf/index.html:418 +#: website/public/showcase/ctf/index.html:424 msgctxt "page:showcase/ctf/index.html" msgid "Agent → REA · read_bytes" msgstr "程式設計助手→ REA · read_bytes" -#: website/public/showcase/ctf/index.html:425 +#: website/public/showcase/ctf/index.html:431 msgctxt "page:showcase/ctf/index.html" msgid "REA → agent · seventh entries" msgstr "REA →程式設計助手·第七項" -#: website/public/showcase/ctf/index.html:693 +#: website/public/showcase/ctf/index.html:699 msgctxt "page:showcase/ctf/index.html" msgid "Original executable · SHA-256" msgstr "原始可執行檔案 · SHA-256" -#: website/public/showcase/ctf/index.html:729 +#: website/public/showcase/ctf/index.html:735 msgctxt "page:showcase/ctf/index.html" msgid "Download the original challenge" msgstr "下載原始挑戰" -#: website/public/showcase/ctf/index.html:733 +#: website/public/showcase/ctf/index.html:739 msgctxt "page:showcase/ctf/index.html" msgid "Download solver" msgstr "下載求解器" -#: website/public/showcase/dx-ball/index.html:334 +#: website/public/showcase/dx-ball/index.html:340 msgctxt "page:showcase/dx-ball/index.html" msgid "REA result · pseudocode excerpt" msgstr "REA結果 · 虛擬碼摘錄" #. {ph0}: analyze_function -#: website/public/showcase/dx-ball/index.html:357 -#: website/public/showcase/dx-ball/index.html:381 +#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:387 #, python-brace-format msgctxt "page:showcase/dx-ball/index.html" msgid "Agent → REA · {ph0}" msgstr "程式設計助手→ REA · {ph0}" -#: website/public/showcase/dx-ball/index.html:363 +#: website/public/showcase/dx-ball/index.html:369 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →程式設計助手·指令摘錄" -#: website/public/showcase/dx-ball/index.html:387 +#: website/public/showcase/dx-ball/index.html:393 msgctxt "page:showcase/dx-ball/index.html" msgid "REA → agent · caller excerpt" msgstr "REA →程式設計助手·呼叫方摘錄" # Reviewed for clear terminology and preserved evidence. #. {ph0}: read_bytes -#: website/public/showcase/dx-ball/index.html:405 +#: website/public/showcase/dx-ball/index.html:411 #, 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:415 +#: website/public/showcase/dx-ball/index.html:421 msgctxt "page:showcase/dx-ball/index.html" msgid "REA byte results · decoded as doubles" msgstr "REA 位元組結果 · 雙精度浮點數解碼" -#: website/public/showcase/dx-ball/index.html:768 +#: website/public/showcase/dx-ball/index.html:774 msgctxt "page:showcase/dx-ball/index.html" msgid "Start with your own target" msgstr "從你自己的目標開始" -#: website/public/showcase/index.html:217 +#: website/public/showcase/index.html:223 msgctxt "page:showcase/index.html" msgid "APK" msgstr "APK" -#: website/public/showcase/index.html:218 +#: website/public/showcase/index.html:224 msgctxt "page:showcase/index.html" msgid "Generating code" msgstr "生成驗證碼" -#: website/public/showcase/index.html:219 +#: website/public/showcase/index.html:225 msgctxt "page:showcase/index.html" msgid "Recovered rule" msgstr "還原的規則" -#: website/public/showcase/index.html:220 +#: website/public/showcase/index.html:226 msgctxt "page:showcase/index.html" msgid "Adjustable clock" msgstr "可調時鐘" -#: website/public/showcase/index.html:235 +#: website/public/showcase/index.html:241 msgctxt "page:showcase/index.html" msgid "Binary" msgstr "二進位制" -#: website/public/showcase/index.html:236 +#: website/public/showcase/index.html:242 msgctxt "page:showcase/index.html" msgid "Checking code" msgstr "檢查 flag 的程式碼" -#: website/public/showcase/index.html:237 +#: website/public/showcase/index.html:243 msgctxt "page:showcase/index.html" msgid "Equations" msgstr "方程" -#: website/public/showcase/index.html:238 +#: website/public/showcase/index.html:244 msgctxt "page:showcase/index.html" msgid "Correct!" msgstr "正確!" -#: website/public/showcase/index.html:254 +#: website/public/showcase/index.html:260 msgctxt "page:showcase/index.html" msgid "Executable" msgstr "可執行檔案" -#: website/public/showcase/index.html:255 +#: website/public/showcase/index.html:261 msgctxt "page:showcase/index.html" msgid "REA findings" msgstr "REA調查結果" -#: website/public/showcase/index.html:256 +#: website/public/showcase/index.html:262 msgctxt "page:showcase/index.html" msgid "Recovered C" msgstr "還原的 C 程式碼" -#: website/public/showcase/index.html:257 +#: website/public/showcase/index.html:263 msgctxt "page:showcase/index.html" msgid "Validation" msgstr "驗證" -#: website/public/showcase/index.html:272 +#: website/public/showcase/index.html:278 msgctxt "page:showcase/index.html" msgid "Packaged app" msgstr "打包應用程式" -#: website/public/showcase/index.html:273 +#: website/public/showcase/index.html:279 msgctxt "page:showcase/index.html" msgid "Exposed API" msgstr "公開API" -#: website/public/showcase/index.html:274 +#: website/public/showcase/index.html:280 msgctxt "page:showcase/index.html" msgid "IPC wrappers" msgstr "IPC包裝器" -#: website/public/showcase/index.html:275 +#: website/public/showcase/index.html:281 msgctxt "page:showcase/index.html" msgid "Clipboard" msgstr "剪貼簿" -#: website/public/showcase/index.html:290 +#: website/public/showcase/index.html:296 msgctxt "page:showcase/index.html" msgid "Original DOS code" msgstr "原始DOS程式碼" -#: website/public/showcase/index.html:291 +#: website/public/showcase/index.html:297 msgctxt "page:showcase/index.html" msgid "REA instructions" msgstr "REA 指令" -#: website/public/showcase/index.html:292 +#: website/public/showcase/index.html:298 msgctxt "page:showcase/index.html" msgid "Angle calculation" msgstr "角度計算" -#: website/public/showcase/index.html:293 +#: website/public/showcase/index.html:299 msgctxt "page:showcase/index.html" msgid "Bullet ring" msgstr "環形彈幕" -#: website/public/showcase/notion/index.html:309 +#: website/public/showcase/notion/index.html:315 msgctxt "page:showcase/notion/index.html" msgid "Exposed page API" msgstr "公開頁面API" -#: website/public/showcase/notion/index.html:315 +#: website/public/showcase/notion/index.html:321 msgctxt "page:showcase/notion/index.html" msgid "Renderer IPC call" msgstr "渲染器IPC呼叫" -#: website/public/showcase/notion/index.html:477 +#: website/public/showcase/notion/index.html:483 msgctxt "page:showcase/notion/index.html" msgid "Sent to the system clipboard" msgstr "傳送到系統剪貼簿" -#: website/public/showcase/notion/index.html:485 +#: website/public/showcase/notion/index.html:491 msgctxt "page:showcase/notion/index.html" msgid "Saved locally by Notion" msgstr "Notion本地儲存" -#: website/public/showcase/notion/index.html:530 +#: website/public/showcase/notion/index.html:536 msgctxt "page:showcase/notion/index.html" msgid "Markdown input" msgstr "Markdown 輸入" -#: website/public/showcase/notion/index.html:537 +#: website/public/showcase/notion/index.html:543 msgctxt "page:showcase/notion/index.html" msgid "Structured parser output · excerpt" msgstr "結構化解析器輸出 · 摘錄" -#: website/public/showcase/notion/index.html:614 +#: website/public/showcase/notion/index.html:620 msgctxt "page:showcase/notion/index.html" msgid "Analyze your own app" msgstr "分析你自己的應用程式" -#: website/public/showcase/th04/index.html:374 +#: website/public/showcase/th04/index.html:380 msgctxt "page:showcase/th04/index.html" msgid "Agent → REA" msgstr "程式設計助手→ REA" -#: website/public/showcase/th04/index.html:383 +#: website/public/showcase/th04/index.html:389 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · selected fields" msgstr "REA →程式設計助手 · 選定欄位" #. {ph0}: analyze_function -#: website/public/showcase/th04/index.html:402 +#: website/public/showcase/th04/index.html:408 #, python-brace-format msgctxt "page:showcase/th04/index.html" msgid "Agent → REA · {ph0}" msgstr "程式設計助手→ REA · {ph0}" -#: website/public/showcase/th04/index.html:408 +#: website/public/showcase/th04/index.html:414 msgctxt "page:showcase/th04/index.html" msgid "REA → agent · instruction excerpt" msgstr "REA →程式設計助手·指令摘錄" -#: website/public/showcase/th04/index.html:429 +#: website/public/showcase/th04/index.html:435 msgctxt "page:showcase/th04/index.html" msgid "Same function result · aim excerpt" msgstr "相同的函式結果 · 目標摘錄" -#: website/public/showcase/th04/index.html:438 +#: website/public/showcase/th04/index.html:444 msgctxt "page:showcase/th04/index.html" msgid "Corresponding maintained C++" msgstr "對應維護的C++" -#: website/public/showcase/th04/index.html:618 +#: website/public/showcase/th04/index.html:624 msgctxt "page:showcase/th04/index.html" msgid "Ring macro · TH04 branch, excerpt" msgstr "環宏 · TH04分支,摘錄" -#: website/public/showcase/th04/index.html:628 +#: website/public/showcase/th04/index.html:634 msgctxt "page:showcase/th04/index.html" msgid "Angle and velocity · source excerpt" msgstr "角度和速度 · 源摘錄" @@ -10506,7 +10506,7 @@ msgstr "譯文正在更新,這一頁暫時顯示英文。" #. {ph4}: #. {ph5}: -#: website/public/faq/index.html:430 +#: website/public/faq/index.html:436 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10522,7 +10522,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/first-investigation/index.html:248 +#: website/public/first-investigation/index.html:254 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10542,7 +10542,7 @@ msgstr "" #. {ph5}: #. {ph6}: -#: website/public/first-investigation/index.html:298 +#: website/public/first-investigation/index.html:304 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10561,7 +10561,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:783 +#: website/public/get-started/index.html:789 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -10579,7 +10579,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/index.html:268 +#: website/public/index.html:274 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10591,14 +10591,14 @@ msgstr "" "REA,並連線到這個程式設計助手。先展示安裝計劃,等我確認後再執行,然後驗證安裝結果。{ph4}{ph5}{ph6}" #. {ph0}: dino-speed.js -#: website/public/examples/dino-lab/index.html:325 +#: website/public/examples/dino-lab/index.html:331 #, python-brace-format msgctxt "page:examples/dino-lab/index.html" msgid "Reconstruction · {ph0}" msgstr "重建工程 · {ph0}" #. {ph0}: Node.js -#: website/public/faq/index.html:223 +#: website/public/faq/index.html:229 #, python-brace-format msgctxt "page:faq/index.html" msgid "" @@ -10607,7 +10607,7 @@ msgid "" msgstr "準備好 {ph0} 和 npm 後,執行 setup,選擇程式設計助手,再確認擬進行的更改。" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:207 +#: website/public/first-investigation/index.html:213 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "A supplied example · {ph0} and npm · Your coding agent" @@ -10616,7 +10616,7 @@ msgstr "提供的示例 · {ph0} 和 npm · 程式設計助手" #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/first-investigation/index.html:226 +#: website/public/first-investigation/index.html:232 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10633,7 +10633,7 @@ msgstr "" #. {ph5}: #. {ph6}: notes.exportCsv() #. {ph7}: -#: website/public/first-investigation/index.html:344 +#: website/public/first-investigation/index.html:350 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}" @@ -10647,7 +10647,7 @@ msgstr "{ph0}頁面 · {ph1}{ph2}{ph3}Export notes(匯出筆記){ph4}{ph5} #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:352 +#: website/public/first-investigation/index.html:358 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10664,7 +10664,7 @@ msgstr "{ph0}橋接 · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}向主程序傳送命名訊 #. {ph6}: #. {ph7}: csv.js #. {ph8}: -#: website/public/first-investigation/index.html:360 +#: website/public/first-investigation/index.html:366 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10674,7 +10674,7 @@ msgstr "" "{ph0}處理函式 · {ph1}{ph2}{ph3}寫入 {ph4}{ph5}{ph6}呼叫 {ph7} 中的格式化函式,再寫入檔案。{ph8}" #. {ph0}: main.js -#: website/public/first-investigation/index.html:378 +#: website/public/first-investigation/index.html:384 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "{ph0} · lines 8–12" @@ -10689,7 +10689,7 @@ msgstr "{ph0} · 第 8–12 行" #. {ph6}: #. {ph7}: -#: website/public/first-investigation/index.html:420 +#: website/public/first-investigation/index.html:426 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10701,7 +10701,7 @@ msgstr "" "格式化函式驗證。展示預測和實際輸出。{ph6}{ph7}{ph8}" #. {ph0}: Node.js -#: website/public/first-investigation/index.html:438 +#: website/public/first-investigation/index.html:444 #, python-brace-format msgctxt "page:first-investigation/index.html" msgid "" @@ -10711,15 +10711,17 @@ msgstr "標題保留在一個帶引號的欄位裡,每個引號都寫成兩個 #. {ph0}: Node.js #. {ph1}: Node.js -#: website/public/get-started/index.html:256 +#: website/public/get-started/index.html:262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes with {ph1}." -msgstr "需要 {ph0} 22(22.23.4+)、24(24.22.1+)或 26+ (>=26.12.1)。npm 會隨 {ph1} 一起安裝。" +"You'll need {ph0} 22 (22.23.4+), 24 (24.22.1+) or 26+ (>=26.12.1). npm comes" +" with {ph1}." +msgstr "" +"需要 {ph0} 22(22.23.4+)、24(24.22.1+)或 26+ (>=26.12.1)。npm 會隨 {ph1} 一起安裝。" #. {ph0}: Node.js -#: website/public/get-started/index.html:262 +#: website/public/get-started/index.html:268 #, python-brace-format msgctxt "page:get-started/index.html" msgid "Don't have {ph0}, or not sure?" @@ -10727,19 +10729,19 @@ msgstr "還沒安裝 {ph0},或不確定?" #. {ph0}: node -v #. {ph1}: Node.js -#: website/public/get-started/index.html:281 +#: website/public/get-started/index.html:287 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" -"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it prints an " -"older version or \"not recognized\" / \"command not found\", install {ph1} " -"24 LTS:" +"If {ph0} prints v22.23.4+, v24.22.1+ or v26.12.1+, you're ready. If it " +"prints an older version or \"not recognized\" / \"command not found\", " +"install {ph1} 24 LTS:" msgstr "" -"如果 {ph0} 顯示 v22.23.4+、v24.22.1+ 或 v26.12.1+,就可以繼續。如果版本更舊,或顯示“無法識別”/“command not " -"found”,先安裝 {ph1} 24 LTS:" +"如果 {ph0} 顯示 v22.23.4+、v24.22.1+ 或 v26.12.1+,就可以繼續。如果版本更舊,或顯示“無法識別”/“command " +"not found”,先安裝 {ph1} 24 LTS:" #. {ph0}: export.js -#: website/public/guides/browser/index.html:446 +#: website/public/guides/browser/index.html:452 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "{ph0} · example source excerpt" @@ -10753,7 +10755,7 @@ msgstr "{ph0} · 示例源摘錄" #. {ph5}: #. {ph6}: notes.json #. {ph7}: -#: website/public/guides/browser/index.html:464 +#: website/public/guides/browser/index.html:470 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -10762,9 +10764,9 @@ msgid "" msgstr "{ph0}開啟示例{ph1} · {ph2}下載 {ph3}{ph4} · {ph5}下載 {ph6}{ph7}" #. {ph0}: renderer.js -#: website/public/guides/javascript/index.html:314 -#: website/public/guides/javascript/index.html:330 -#: website/public/guides/javascript/index.html:345 +#: website/public/guides/javascript/index.html:320 +#: website/public/guides/javascript/index.html:336 +#: website/public/guides/javascript/index.html:351 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "{ph0} · example source" @@ -10772,7 +10774,7 @@ msgstr "{ph0} · 示例來源" #. {ph0}: notes-example #. {ph1}: Node.js -#: website/public/guides/javascript/index.html:379 +#: website/public/guides/javascript/index.html:385 #, python-brace-format msgctxt "page:guides/javascript/index.html" msgid "" @@ -10784,7 +10786,7 @@ msgstr "下載示例並解壓縮。 存檔包含完整的 {ph0} 資料夾。 分 #. {ph0}: Node.js #. {ph1}: #. {ph2}: -#: website/public/index.html:313 +#: website/public/index.html:319 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10799,7 +10801,7 @@ msgstr "第一次使用,還沒安裝 {ph0} 或程式設計助手?{ph1}跟著 #. {ph4}: #. {ph5}: -#: website/public/index.html:528 +#: website/public/index.html:534 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10809,7 +10811,7 @@ msgstr "" "{ph0}›{ph1}{ph2}用 REA 檢查 Windows 計算器。為什麼 {ph3} 會得到 220?{ph4}{ph5}{ph6}" #. {ph0}: index.js -#: website/public/index.html:715 +#: website/public/index.html:721 #, python-brace-format msgctxt "page:index.html" msgid "REA · loaded {ph0} · selected lines" @@ -10823,7 +10825,7 @@ msgstr "REA · 已載入 {ph0} · 程式碼節選" #. {ph5}: #. {ph6}: ms-calculator: #. {ph7}: -#: website/public/index.html:951 +#: website/public/index.html:957 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -10841,7 +10843,7 @@ msgstr "" #. {ph4}: #. {ph5}: -#: website/public/showcase/aegis/index.html:283 +#: website/public/showcase/aegis/index.html:289 #, python-brace-format msgctxt "page:showcase/aegis/index.html" msgid "" @@ -10853,28 +10855,28 @@ msgstr "" "秒變化一次,再做一個可以調整時間的小示範。{ph4}{ph5}{ph6}" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:347 +#: website/public/showcase/notion/index.html:353 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · API member" msgstr "tab_browser_view/{ph0} · API 成員" #. {ph0}: preload.js -#: website/public/showcase/notion/index.html:376 +#: website/public/showcase/notion/index.html:382 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "tab_browser_view/{ph0} · IPC helper" msgstr "tab_browser_view/{ph0} · IPC 輔助函式" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:407 +#: website/public/showcase/notion/index.html:413 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · handler helper" msgstr "主要/{ph0} · 處理程式助手" #. {ph0}: index.js -#: website/public/showcase/notion/index.html:435 +#: website/public/showcase/notion/index.html:441 #, python-brace-format msgctxt "page:showcase/notion/index.html" msgid "main/{ph0} · clipboard receiver" @@ -10893,7 +10895,7 @@ msgstr "切換至深色模式" #. {ph0}: #. {ph1}: -#: website/public/guides/browser/index.html:485 +#: website/public/guides/browser/index.html:491 #, python-brace-format msgctxt "page:guides/browser/index.html" msgid "" @@ -10906,30 +10908,30 @@ msgstr "" "HAR 1.2 可在 REA 中離線取得擷取 Evidence,也可以連接 Everywhere 的 MCP 伺服器,讓代理檢查已擷取的流量。" #. {ph0}:
-#: website/public/blog/index.html:205 +#: website/public/blog/index.html:211 #, python-brace-format msgctxt "page:blog/index.html" msgid "Model specialization{ph0}Essay" msgstr "專用模型{ph0}隨筆" -#: website/public/blog/index.html:207 +#: website/public/blog/index.html:213 msgctxt "page:blog/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "逆向工程需要更大的模型嗎?" -#: website/public/blog/index.html:208 +#: website/public/blog/index.html:214 msgctxt "page:blog/index.html" msgid "" "What Touhou reconstruction suggests about general models, specialist models " "and learning from compiler feedback." msgstr "從 Touhou 重建的經驗,探討通用模型、專用模型,以及如何從編譯器回饋中學習。" -#: website/public/blog/index.html:215 +#: website/public/blog/index.html:221 msgctxt "page:blog/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:107 +#: website/public/blog/reverse-engineering-models/index.html:113 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Skip to content" msgstr "跳轉到內容" @@ -10938,37 +10940,37 @@ msgstr "跳轉到內容" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:199 +#: website/public/blog/reverse-engineering-models/index.html:205 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE" msgstr "{ph0}首頁{ph1} / {ph2}部落格{ph3} / 模型與逆向工程" -#: website/public/blog/reverse-engineering-models/index.html:202 +#: website/public/blog/reverse-engineering-models/index.html:208 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Essay" msgstr "隨筆" # Reviewed for technical meaning and readability; preserve the distinction # between historical evidence and proposed experiments. -#: website/public/blog/reverse-engineering-models/index.html:203 +#: website/public/blog/reverse-engineering-models/index.html:209 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Does reverse engineering need a bigger model?" msgstr "逆向工程需要更大的模型嗎?" -#: website/public/blog/reverse-engineering-models/index.html:204 +#: website/public/blog/reverse-engineering-models/index.html:210 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "By N0zoM1z0 · 13 October 2026" msgstr "作者 N0zoM1z0 · 2026 年 10 月 13 日" -#: website/public/blog/reverse-engineering-models/index.html:206 +#: website/public/blog/reverse-engineering-models/index.html:212 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Takeaway" msgstr "要點" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:208 +#: website/public/blog/reverse-engineering-models/index.html:214 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10978,7 +10980,7 @@ msgstr "{ph0}模型能力會影響 agent 能提出哪些假設。{ph1} 後來的 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:216 +#: website/public/blog/reverse-engineering-models/index.html:222 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10988,7 +10990,7 @@ msgstr "{ph0}熟悉的編譯器為專用模型提供了具體的學習對象。{ #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:223 +#: website/public/blog/reverse-engineering-models/index.html:229 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -10998,7 +11000,7 @@ msgstr "{ph0}也要公平評估程式碼倉庫裡的知識。{ph1} 較小的模 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:228 +#: website/public/blog/reverse-engineering-models/index.html:234 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11008,7 +11010,7 @@ msgstr "{ph0}訓練模型選擇下一個有價值的實驗,同時檢驗它使 #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:235 +#: website/public/blog/reverse-engineering-models/index.html:241 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11016,14 +11018,14 @@ msgid "" " result I want from the whole agent." msgstr "{ph0}結合時間和成本,評估透過驗證的重建成果。{ph1} 這是我希望從整個 agent 工作流程中獲得的結果。" -#: website/public/blog/reverse-engineering-models/index.html:246 +#: website/public/blog/reverse-engineering-models/index.html:252 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "In this article" msgstr "在本文中" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:248 +#: website/public/blog/reverse-engineering-models/index.html:254 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What better models changed{ph1}" @@ -11031,7 +11033,7 @@ msgstr "{ph0}更強的模型改變了什麼{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:249 +#: website/public/blog/reverse-engineering-models/index.html:255 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Why specialize?{ph1}" @@ -11039,7 +11041,7 @@ msgstr "{ph0}為什麼考慮專用模型?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:250 +#: website/public/blog/reverse-engineering-models/index.html:256 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Where experience lives{ph1}" @@ -11047,7 +11049,7 @@ msgstr "{ph0}這些經驗應該存在哪裡?{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:251 +#: website/public/blog/reverse-engineering-models/index.html:257 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}Learning the next experiment{ph1}" @@ -11055,7 +11057,7 @@ msgstr "{ph0}學習選擇下一個有價值的實驗{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:252 +#: website/public/blog/reverse-engineering-models/index.html:258 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}RE and reinforcement learning{ph1}" @@ -11063,7 +11065,7 @@ msgstr "{ph0}逆向工程與強化學習{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:253 +#: website/public/blog/reverse-engineering-models/index.html:259 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}When the oracle is wrong{ph1}" @@ -11071,7 +11073,7 @@ msgstr "{ph0}當驗證器出錯時{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:254 +#: website/public/blog/reverse-engineering-models/index.html:260 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}A comparison worth running{ph1}" @@ -11079,18 +11081,18 @@ msgstr "{ph0}值得做的對照實驗{ph1}" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:255 +#: website/public/blog/reverse-engineering-models/index.html:261 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "{ph0}What kind of agent?{ph1}" msgstr "{ph0}這意味著怎樣的 agent?{ph1}" -#: website/public/blog/reverse-engineering-models/index.html:263 +#: website/public/blog/reverse-engineering-models/index.html:269 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What better models changed" msgstr "更強的模型改變了什麼" -#: website/public/blog/reverse-engineering-models/index.html:264 +#: website/public/blog/reverse-engineering-models/index.html:270 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Since August 2026, I have been exploring how much reverse engineering an " @@ -11102,7 +11104,7 @@ msgstr "" "從 2026 年 8 月開始,我一直在探索:如果給 agent " "訪問程式的能力,以及驗證自身工作的手段,它能獨立完成多少逆向工作?我的經驗主要來自遊戲重建,尤其是東方系列。隨著我更換模型,程式碼倉庫記錄了每次工作還原出的內容。" -#: website/public/blog/reverse-engineering-models/index.html:272 +#: website/public/blog/reverse-engineering-models/index.html:278 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of that work aims at exact reconstruction: we compile the maintained " @@ -11112,12 +11114,12 @@ msgid "" msgstr "" "這些工作很大一部分追求精確重建:用固定版本的歷史工具鏈編譯我們維護的原始碼,檢查它能否復現目標函式。當後來的模型解決了早期工作卡住的問題,我們可以從原始碼變化中看出,是什麼促成了這次進展。" -#: website/public/blog/reverse-engineering-models/index.html:279 +#: website/public/blog/reverse-engineering-models/index.html:285 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The temporary values had to stay alive together" msgstr "臨時值需要同時保持有效" -#: website/public/blog/reverse-engineering-models/index.html:280 +#: website/public/blog/reverse-engineering-models/index.html:286 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Much of a TH09 attack function's logic had already been reconstructed, but " @@ -11136,7 +11138,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:287 +#: website/public/blog/reverse-engineering-models/index.html:293 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11148,7 +11150,7 @@ msgstr "" "{ph0}GPT-6-Sol 的一次工作記錄{ph1}表明,嘗試幾種常見的原始碼寫法後,差異仍未消除。後來,{ph2}GPT-6.1-Sol " "重新研究這個問題{ph3},提出了一個有價值的假設:關鍵可能在於這些臨時值的生命週期。" -#: website/public/blog/reverse-engineering-models/index.html:301 +#: website/public/blog/reverse-engineering-models/index.html:307 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The function produced temporary results and copied them into animation " @@ -11162,7 +11164,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:308 +#: website/public/blog/reverse-engineering-models/index.html:314 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11173,7 +11175,7 @@ msgid "" msgstr "" "其中一個結果仍然與稍後用於碰撞檢查的值共享儲存。給那個值單獨的生命週期後,最後一處重疊也消失了。經過幾次有針對性的實驗,{ph0}一次乾淨的重新構建確認,整個函式都已匹配{ph1}。" -#: website/public/blog/reverse-engineering-models/index.html:317 +#: website/public/blog/reverse-engineering-models/index.html:323 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "What interests me is how the discovery and the tests worked together. The " @@ -11182,7 +11184,7 @@ msgid "" msgstr "" "我感興趣的是,發現與驗證如何共同推進工作。生命週期的假設給 agent 指明瞭新方向;編譯器的回饋又幫助它逐步調整原始碼,直到找到匹配的寫法。" -#: website/public/blog/reverse-engineering-models/index.html:323 +#: website/public/blog/reverse-engineering-models/index.html:329 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A different control-flow graph" msgstr "換一種控制流結構" @@ -11191,7 +11193,7 @@ msgstr "換一種控制流結構" #. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:324 +#: website/public/blog/reverse-engineering-models/index.html:330 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11211,7 +11213,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:335 +#: website/public/blog/reverse-engineering-models/index.html:341 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11226,7 +11228,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:347 +#: website/public/blog/reverse-engineering-models/index.html:353 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11238,7 +11240,7 @@ msgstr "" "{ph0}換一種表達方式,開啟了更有價值的搜尋空間。{ph1} 這兩個例子讓我認真看待通用模型的能力:agent " "可能花很長時間嘗試局部變化,才找到一種更好的整體寫法。" -#: website/public/blog/reverse-engineering-models/index.html:356 +#: website/public/blog/reverse-engineering-models/index.html:362 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "At the same time, the later sessions started with earlier source and " @@ -11249,7 +11251,7 @@ msgid "" msgstr "" "不過,後來的工作也繼承了之前的原始碼和失敗記錄。這些積累本身就是優勢的一部分。歷史記錄讓我們可以檢查發現及其驗證過程;要區分模型能力和繼承經驗各自帶來的幫助,還需要對照實驗。" -#: website/public/blog/reverse-engineering-models/index.html:363 +#: website/public/blog/reverse-engineering-models/index.html:369 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is where the question becomes interesting to me. Some of the progress " @@ -11260,12 +11262,12 @@ msgid "" msgstr "" "這正是我覺得有趣的地方。有些進展來自新的表達方式,剩下的大量工作則是在熟悉的編譯器上試驗不同寫法。其中有多少需要廣泛的推理能力?又有多少可以透過反覆接觸這個編譯器和這些程式碼來學會?" -#: website/public/blog/reverse-engineering-models/index.html:373 +#: website/public/blog/reverse-engineering-models/index.html:379 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why might a specialist do well?" msgstr "為什麼專用模型可能做得很好?" -#: website/public/blog/reverse-engineering-models/index.html:374 +#: website/public/blog/reverse-engineering-models/index.html:380 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Touhou gives us a concrete reason to expect that experience to help. Much of" @@ -11277,7 +11279,7 @@ msgstr "" "東方系列給了我們一個具體的理由,去期待經驗積累能發揮作用。大量遊戲程式碼出自同一個作者 " "ZUN,因此,把反覆出現的程式設計習慣作為初始假設是合理的。程式碼倉庫也提供了實際例子:相似的迴圈和輔助函式組織方式,曾為其他遊戲的重建提供假設。" -#: website/public/blog/reverse-engineering-models/index.html:381 +#: website/public/blog/reverse-engineering-models/index.html:387 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those source patterns become more specific when we include the compiler. " @@ -11293,7 +11295,7 @@ msgstr "把編譯器也考慮進去,這些原始碼模式就更加具體了。 #. > #. {ph3}: Supervisor::LoadDat #. {ph4}: -#: website/public/blog/reverse-engineering-models/index.html:387 +#: website/public/blog/reverse-engineering-models/index.html:393 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11307,14 +11309,14 @@ msgstr "" "為它安排的儲存位置{ph1}。只移動宣告並不能解決佈局問題,但先前重建的一個背景函式揭示了會影響編譯器選擇的命名模式。這為{ph2}重建 " "{ph3}{ph4}提供了更有希望的假設。" -#: website/public/blog/reverse-engineering-models/index.html:401 +#: website/public/blog/reverse-engineering-models/index.html:407 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reusing that pattern for the file-size variable produced the required layout" " without adding storage. The full function then matched." msgstr "把這個模式用於表示檔案大小的變數,不增加額外儲存就得到了所需佈局。隨後,整個函式實現了匹配。" -#: website/public/blog/reverse-engineering-models/index.html:406 +#: website/public/blog/reverse-engineering-models/index.html:412 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This is the sort of narrow detail a general model may not know when it " @@ -11322,7 +11324,7 @@ msgid "" "cases and learn which source variations are worth testing first." msgstr "這類細節非常具體,通用模型第一次接觸時未必知道。而針對這個編譯器訓練的專用模型,可以接觸許多類似案例,學會哪些原始碼變化值得優先嚐試。" -#: website/public/blog/reverse-engineering-models/index.html:412 +#: website/public/blog/reverse-engineering-models/index.html:418 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The opportunity is especially clear in final matching problems where we " @@ -11337,7 +11339,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:420 +#: website/public/blog/reverse-engineering-models/index.html:426 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11352,14 +11354,14 @@ msgstr "" "但這些模式必須保留適用的上下文。TH08 使用的 Visual C++ 版本早於 TH095 和 TH09。TH04 用的是另一種 DOS " "時代的編譯器,其{ph0}玩家邏輯重建{ph1}需要不同的假設,既涉及原始碼寫法,也涉及編譯後的程式碼如何連結成可執行檔案。同一作者為我們提供了先驗,具體目標則告訴我們它是否適用。區分這些情況,也是專用模型需要學會的事。" -#: website/public/blog/reverse-engineering-models/index.html:436 +#: website/public/blog/reverse-engineering-models/index.html:442 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Where should that experience live?" msgstr "這些經驗應該存在哪裡?" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:437 +#: website/public/blog/reverse-engineering-models/index.html:443 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11371,7 +11373,7 @@ msgid "" msgstr "" "在決定透過訓練讓模型學會這些模式之前,我會先看看程式碼倉庫裡已有的知識。在{ph0}上一篇文章{ph1}中,我寫過:倉庫正在成為專案的工作記憶。這裡儲存著對編譯器的認識,也儲存著相關原始碼和失敗實驗,讓這些經驗有據可查。" -#: website/public/blog/reverse-engineering-models/index.html:446 +#: website/public/blog/reverse-engineering-models/index.html:452 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "By retrieving that record, an agent can start with a known result and " @@ -11385,7 +11387,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:452 +#: website/public/blog/reverse-engineering-models/index.html:458 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11401,7 +11403,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:463 +#: website/public/blog/reverse-engineering-models/index.html:469 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11414,7 +11416,7 @@ msgstr "" "{ph0}“模型不知道這個編譯器特性”和“模型不會利用它”,是兩個不同的問題。{ph1} " "檢索可能解決前者,但把知識變成有價值的候選原始碼,仍然需要能力。如果候選方案失敗了,模型還得判斷這次結果對下一次嘗試意味著什麼。知道相關模式,只是這個過程的起點。" -#: website/public/blog/reverse-engineering-models/index.html:473 +#: website/public/blog/reverse-engineering-models/index.html:479 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For that reason, I would include a smaller general model with good retrieval" @@ -11424,12 +11426,12 @@ msgid "" msgstr "" "所以,在任何對照實驗中,我都會加入一個具備良好檢索能力的小型通用模型。給它相同的經驗庫,才能看清訓練究竟增加了什麼:更好的候選方案、更好的回饋後決策,還是兩者都有?" -#: website/public/blog/reverse-engineering-models/index.html:481 +#: website/public/blog/reverse-engineering-models/index.html:487 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Learning the next useful experiment" msgstr "學習選擇下一個有價值的實驗" -#: website/public/blog/reverse-engineering-models/index.html:482 +#: website/public/blog/reverse-engineering-models/index.html:488 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Those decisions after feedback are what I would most like to study. In " @@ -11440,7 +11442,7 @@ msgstr "" "回饋之後如何決策,是我最想研究的部分。在 agent " "驅動的重建中,模型提出解釋,再用程式來驗證。即使候選方案失敗了,結果也可能縮小剩餘的可能性,提示下一步更值得嘗試什麼。" -#: website/public/blog/reverse-engineering-models/index.html:489 +#: website/public/blog/reverse-engineering-models/index.html:495 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Consider the temporary-results example again. Its final source shows the " @@ -11449,67 +11451,67 @@ msgid "" "needed to change." msgstr "再看前面的臨時結果例子。最終原始碼展示了成功的寫法,但得到它的過程包含更多資訊。下面的每次實驗,都幫助我們確定了還有什麼需要改變。" -#: website/public/blog/reverse-engineering-models/index.html:502 +#: website/public/blog/reverse-engineering-models/index.html:508 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Experiment" msgstr "實驗" -#: website/public/blog/reverse-engineering-models/index.html:503 +#: website/public/blog/reverse-engineering-models/index.html:509 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What its result taught us" msgstr "結果告訴了我們什麼" -#: website/public/blog/reverse-engineering-models/index.html:508 +#: website/public/blog/reverse-engineering-models/index.html:514 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Try a different way to copy the results" msgstr "嘗試另一種複製結果的方式" -#: website/public/blog/reverse-engineering-models/index.html:509 +#: website/public/blog/reverse-engineering-models/index.html:515 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "The copy code changes, but the function still differs." msgstr "複製程式碼改變了,但函式仍有差異。" -#: website/public/blog/reverse-engineering-models/index.html:514 +#: website/public/blog/reverse-engineering-models/index.html:520 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Use the returned values directly" msgstr "直接使用回傳值" -#: website/public/blog/reverse-engineering-models/index.html:515 +#: website/public/blog/reverse-engineering-models/index.html:521 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Copying follows the original pattern, but temporary storage still differs." msgstr "複製方式與原版一致,但臨時儲存佈局仍有差異。" -#: website/public/blog/reverse-engineering-models/index.html:521 +#: website/public/blog/reverse-engineering-models/index.html:527 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the temporary results alive together" msgstr "讓臨時結果同時保持有效" -#: website/public/blog/reverse-engineering-models/index.html:522 +#: website/public/blog/reverse-engineering-models/index.html:528 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "They get separate storage, but one still overlaps a value used later for " "collision checks." msgstr "它們得到了各自的儲存空間,但其中一個仍與稍後用於碰撞檢查的值重疊。" -#: website/public/blog/reverse-engineering-models/index.html:528 +#: website/public/blog/reverse-engineering-models/index.html:534 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Keep the collision-check value separate" msgstr "讓碰撞檢查的值擁有獨立儲存" -#: website/public/blog/reverse-engineering-models/index.html:529 +#: website/public/blog/reverse-engineering-models/index.html:535 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A clean rebuild confirms the complete match." msgstr "乾淨的重新構建確認了整個函式的匹配。" -#: website/public/blog/reverse-engineering-models/index.html:534 +#: website/public/blog/reverse-engineering-models/index.html:540 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Selected experiments from the attack-function reconstruction above, grouped " "by what they taught us." msgstr "選自前面攻擊函式的重建實驗,按每次得到的認識整理。" -#: website/public/blog/reverse-engineering-models/index.html:538 +#: website/public/blog/reverse-engineering-models/index.html:544 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "A training record that keeps this sequence can teach more than the final " @@ -11522,7 +11524,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:545 +#: website/public/blog/reverse-engineering-models/index.html:551 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11535,7 +11537,7 @@ msgstr "" "結果沒有變化,可能意味著該重新考慮這個改動;差異發生變化,則可能指向另一個原因。當局部修改不再提供有效資訊時,agent " "應該可以重新考慮原始碼的整體表達,或者回頭檢查證據。" -#: website/public/blog/reverse-engineering-models/index.html:554 +#: website/public/blog/reverse-engineering-models/index.html:560 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Learning to make those choices requires autonomy. Sometimes the useful next " @@ -11545,12 +11547,12 @@ msgid "" msgstr "" "學會這些選擇,需要自主性。有時,更有價值的下一步是檢查另一個呼叫者,而不是再修改一次原始碼並編譯。如果強制按照固定順序改寫,就會剝奪這種選擇,也失去一部分我們希望模型學會的行為。" -#: website/public/blog/reverse-engineering-models/index.html:563 +#: website/public/blog/reverse-engineering-models/index.html:569 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Why RE is interesting for reinforcement learning" msgstr "為什麼逆向工程值得用來探索強化學習" -#: website/public/blog/reverse-engineering-models/index.html:564 +#: website/public/blog/reverse-engineering-models/index.html:570 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Bounded reconstruction gives us a practical environment for studying these " @@ -11561,7 +11563,7 @@ msgstr "" "範圍明確的重建任務,為研究這些選擇提供了一個實際環境。目標和編譯器版本固定之後,許多原始碼實驗都能快速給出可重複的回饋。agent " "可以編譯候選原始碼、檢查差異,再根據觀察選擇下一步。" -#: website/public/blog/reverse-engineering-models/index.html:571 +#: website/public/blog/reverse-engineering-models/index.html:577 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Reinforcement learning could train that decision-making process through the " @@ -11575,7 +11577,7 @@ msgstr "" #. {ph1}: #. {ph2}: #. {ph3}: -#: website/public/blog/reverse-engineering-models/index.html:577 +#: website/public/blog/reverse-engineering-models/index.html:583 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11592,7 +11594,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:589 +#: website/public/blog/reverse-engineering-models/index.html:595 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11605,7 +11607,7 @@ msgstr "" "不過,要得到這樣一個定義明確的任務,有時得先確定函式負責哪些資源,或者設計新的方法觀察程式執行時的行為。在 TH08 " "中,{ph0}一次碰撞差異最終追溯到原版處理浮點計算的方式{ph1}。agent 必須先弄清楚該測量什麼,才能驗證有價值的修正。" -#: website/public/blog/reverse-engineering-models/index.html:600 +#: website/public/blog/reverse-engineering-models/index.html:606 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This suggests another role for a broadly capable model: helping make the " @@ -11613,12 +11615,12 @@ msgid "" "investigate how far a learned search policy can get with it." msgstr "這提示了能力全面的模型的另一個作用:先把問題變得可驗證。驗證手段建立起來後,我們才可以研究,學出來的搜尋策略能走多遠。" -#: website/public/blog/reverse-engineering-models/index.html:608 +#: website/public/blog/reverse-engineering-models/index.html:614 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "When the oracle is wrong" msgstr "當驗證器出錯時" -#: website/public/blog/reverse-engineering-models/index.html:609 +#: website/public/blog/reverse-engineering-models/index.html:615 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Once we train against that check, its coverage becomes part of what the " @@ -11628,7 +11630,7 @@ msgstr "" "一旦用某項檢查來訓練模型,它的覆蓋範圍就會成為學習環境的一部分。我把這種參考標準或驗證器稱為 " "oracle。即使它能給出可重複的答案,我們也必須知道,這個答案覆蓋了什麼。" -#: website/public/blog/reverse-engineering-models/index.html:615 +#: website/public/blog/reverse-engineering-models/index.html:621 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "TH08 showed how much can hide outside that coverage. Some reconstructed " @@ -11647,7 +11649,7 @@ msgstr "" #. {ph1}: #. {ph2}: 1.0f #. {ph3}: 32.0f -#: website/public/blog/reverse-engineering-models/index.html:624 +#: website/public/blog/reverse-engineering-models/index.html:630 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11660,7 +11662,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:634 +#: website/public/blog/reverse-engineering-models/index.html:640 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11674,7 +11676,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:644 +#: website/public/blog/reverse-engineering-models/index.html:650 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11687,7 +11689,7 @@ msgstr "" "功能測試也可能存在類似盲點。{ph0}針對 LLM " "反編譯器的差分模糊測試研究{ph1}發現,在已有測試之外,程式行為仍可能不同。因此,理解“測試透過”時,必須看它實際覆蓋了哪些情況;理解“指令匹配”時,也必須看它檢查了哪些位元組和資料。" -#: website/public/blog/reverse-engineering-models/index.html:654 +#: website/public/blog/reverse-engineering-models/index.html:660 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Before using either kind of check as a reward, I would test it with " @@ -11700,7 +11702,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:662 +#: website/public/blog/reverse-engineering-models/index.html:668 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11709,12 +11711,12 @@ msgid "" " we give it, understanding that feedback becomes more important too." msgstr "{ph0}改進模型和改進它的驗證器,屬於同一個研究問題。{ph1} 模型越擅長最佳化我們給它的回饋,我們就越需要理解回饋本身。" -#: website/public/blog/reverse-engineering-models/index.html:672 +#: website/public/blog/reverse-engineering-models/index.html:678 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "A comparison worth running" msgstr "值得做的對照實驗" -#: website/public/blog/reverse-engineering-models/index.html:673 +#: website/public/blog/reverse-engineering-models/index.html:679 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "With those checks in place, I would start the comparison on a fixed VC7.1 " @@ -11727,7 +11729,7 @@ msgstr "" "任務開始比較。先為強通用模型和小型通用模型建立基線,再給小模型加入倉庫知識,觀察檢索帶來的變化。接著比較監督訓練的專用模型,以及在此基礎上進行 RL " "訓練的版本,看看訓練增加了什麼。" -#: website/public/blog/reverse-engineering-models/index.html:681 +#: website/public/blog/reverse-engineering-models/index.html:687 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "To make those comparisons informative, each model would receive the same " @@ -11737,7 +11739,7 @@ msgid "" msgstr "" "為了讓比較有意義,每個模型都應獲得相同的目標證據和工具。專門比較訓練效果時,還要固定基礎模型和可用知識。重複實驗有助於區分可靠的搜尋策略與偶然成功的候選方案。" -#: website/public/blog/reverse-engineering-models/index.html:688 +#: website/public/blog/reverse-engineering-models/index.html:694 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would then separate two starting conditions: reconstructing a function " @@ -11748,7 +11750,7 @@ msgid "" msgstr "" "我還會區分兩種起點:從指令開始重建函式,以及在已有原始碼中消除最後幾處差異。專用模型可能很擅長後者,而通用模型承擔了到達這個階段的大部分工作。分別評估,才能看清這種分工。" -#: website/public/blog/reverse-engineering-models/index.html:696 +#: website/public/blog/reverse-engineering-models/index.html:702 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both tasks need genuinely held-out examples. Because related Touhou games " @@ -11758,7 +11760,7 @@ msgid "" msgstr "" "兩類任務都需要真正未見過的測試案例。東方系列的相關遊戲會共享引擎程式碼,只留出某個遊戲,仍可能讓幾乎相同的函式進入訓練集。我會改為按相關原始碼家族留出測試集,並把它們透過驗證的答案同時排除在訓練資料和檢索庫之外。" -#: website/public/blog/reverse-engineering-models/index.html:703 +#: website/public/blog/reverse-engineering-models/index.html:709 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "On those examples, the outcome would be complete, independently validated " @@ -11769,7 +11771,7 @@ msgid "" msgstr "" "在這些案例上,要統計的是完整、獨立驗證過的匹配成果。給每個模型相同的候選數量或編譯次數預算,可以比較搜尋品質。記錄總耗時和總成本,包括編譯,才能知道這種品質是否轉化成了高效的工作流程。訓練成本也要單獨計算。" -#: website/public/blog/reverse-engineering-models/index.html:711 +#: website/public/blog/reverse-engineering-models/index.html:717 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "Both views matter because a cheaper proposal can become an expensive " @@ -11783,7 +11785,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:717 +#: website/public/blog/reverse-engineering-models/index.html:723 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11799,7 +11801,7 @@ msgstr "" "只統計透過驗收的結果,也能幫助我們合理看待中間進展。TH09 " "的一個{ph0}錄影儲存候選方案{ph1}看起來很有希望,因為編譯後函式的大小符合預期,但完整比較仍發現大量差異。編譯器改變指令排列,也可能讓候選原始碼看起來更接近,卻沒有解決根本問題。這些診斷可以指導下一步,但若要獎勵“變得更接近”,我會先對照完整驗收檢查,確認這種獎勵有效。" -#: website/public/blog/reverse-engineering-models/index.html:732 +#: website/public/blog/reverse-engineering-models/index.html:738 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "I would be interested in the pattern across these results. If a specialist " @@ -11810,12 +11812,12 @@ msgid "" msgstr "" "我想看這些結果呈現出什麼規律。如果專用模型在熟悉的編譯器上表現很好,換了工具鏈後,這種優勢還在嗎?當雙方都擁有良好的檢索能力時,訓練還能增加多少價值?這些答案能幫助我們決定,每類模型最適合用在哪裡。" -#: website/public/blog/reverse-engineering-models/index.html:741 +#: website/public/blog/reverse-engineering-models/index.html:747 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "What kind of agent does this suggest?" msgstr "這意味著怎樣的 agent?" -#: website/public/blog/reverse-engineering-models/index.html:742 +#: website/public/blog/reverse-engineering-models/index.html:748 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "If the models turn out to help at different stages, a useful arrangement " @@ -11828,7 +11830,7 @@ msgstr "" "可以呼叫專用模型。當任務變成一種熟悉的編譯器搜尋時,它可以請專用模型提出候選方案。如果結果開始說不通,通用 agent " "可以回頭檢查目標證據,或者調查測量本身。" -#: website/public/blog/reverse-engineering-models/index.html:750 +#: website/public/blog/reverse-engineering-models/index.html:756 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "In that arrangement, specialization becomes a tool the agent can choose as " @@ -11837,7 +11839,7 @@ msgid "" msgstr "" "在這樣的安排中,專用模型成為 agent 隨著調查進展可以選擇的工具。agent 仍然擁有改變方向的自由,而這正是前面那些突破發生的重要條件。" -#: website/public/blog/reverse-engineering-models/index.html:755 +#: website/public/blog/reverse-engineering-models/index.html:761 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "This follows naturally from the industrial shift I described in the previous" @@ -11847,7 +11849,7 @@ msgid "" msgstr "" "這自然延續了上一篇文章中談到的工業化轉變。能夠開展更多實驗,會改變我們組織工作的方式,也讓我們有理由追問:哪些決策需要全面的判斷,哪些可以透過反覆積累某項具體技藝來改善?" -#: website/public/blog/reverse-engineering-models/index.html:762 +#: website/public/blog/reverse-engineering-models/index.html:768 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "For now, the strongest general model has earned its place in my workflow by " @@ -11860,7 +11862,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:770 +#: website/public/blog/reverse-engineering-models/index.html:776 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11868,12 +11870,12 @@ msgid "" "to use that record to build the comparison and see what we learn." msgstr "{ph0}這些程式碼倉庫讓我們有機會驗證這個問題。{ph1} 我想利用這些記錄建立對照實驗,看看我們能學到什麼。" -#: website/public/blog/reverse-engineering-models/index.html:780 +#: website/public/blog/reverse-engineering-models/index.html:786 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Evidence and model attribution" msgstr "證據與模型歸屬" -#: website/public/blog/reverse-engineering-models/index.html:788 +#: website/public/blog/reverse-engineering-models/index.html:794 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The examples describe historical function-level comparisons recorded in the " @@ -11884,7 +11886,7 @@ msgstr "" #. {ph0}: gpt-dots #. {ph1}: gpt-web -#: website/public/blog/reverse-engineering-models/index.html:794 +#: website/public/blog/reverse-engineering-models/index.html:800 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11907,7 +11909,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616" #. > #. {ph5}: -#: website/public/blog/reverse-engineering-models/index.html:803 +#: website/public/blog/reverse-engineering-models/index.html:809 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11929,7 +11931,7 @@ msgstr "{ph0}TH09 臨時值生命週期:{ph1}{ph2}早期上下文檢查{ph3} #. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:815 +#: website/public/blog/reverse-engineering-models/index.html:821 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11953,7 +11955,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:831 +#: website/public/blog/reverse-engineering-models/index.html:837 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11978,7 +11980,7 @@ msgstr "" #. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016" #. > #. {ph7}: -#: website/public/blog/reverse-engineering-models/index.html:847 +#: website/public/blog/reverse-engineering-models/index.html:853 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -11989,7 +11991,7 @@ msgstr "" "{ph0}檢查與診斷:{ph1}{ph2}TH08 浮點常量審計{ph3}、{ph4}TH08 數值問題調查{ph5}、{ph6}TH09 " "錄影儲存重建{ph7}。" -#: website/public/blog/reverse-engineering-models/index.html:864 +#: website/public/blog/reverse-engineering-models/index.html:870 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" "The proposed specialist and RL comparisons are future experiments. The " @@ -12009,22 +12011,22 @@ msgid "" " and learning to propose better hypotheses from compiler feedback." msgstr "東方重建讓我如何思考通用模型、專用模型,以及怎樣從編譯器回饋中學會提出更好的假設。" -#: website/public/blog/reverse-engineering-models/index.html:245 +#: website/public/blog/reverse-engineering-models/index.html:251 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "On this page" msgstr "在本頁" -#: website/public/blog/reverse-engineering-models/index.html:258 +#: website/public/blog/reverse-engineering-models/index.html:264 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Models and reverse engineering essay" msgstr "模型與逆向工程隨筆" -#: website/public/blog/reverse-engineering-models/index.html:496 +#: website/public/blog/reverse-engineering-models/index.html:502 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Selected reconstruction experiments" msgstr "重建實驗選例" -#: website/public/blog/reverse-engineering-models/index.html:889 +#: website/public/blog/reverse-engineering-models/index.html:895 msgctxt "page:blog/reverse-engineering-models/index.html" msgid "Back to top" msgstr "回到頂部" @@ -12033,7 +12035,7 @@ msgstr "回到頂部" #. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse- #. engineering-models.md" > #. {ph1}: -#: website/public/blog/reverse-engineering-models/index.html:781 +#: website/public/blog/reverse-engineering-models/index.html:787 #, python-brace-format msgctxt "page:blog/reverse-engineering-models/index.html" msgid "" @@ -12043,68 +12045,68 @@ msgstr "{ph0}詳細證據記錄{ph1}包含歷史比較結果與實驗背景。" #. {ph0}: #. {ph1}: -#: website/public/index.html:217 +#: website/public/index.html:223 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases{ph1}" msgstr "{ph0}案例展示{ph1}" -#: website/public/index.html:1028 +#: website/public/index.html:1034 msgctxt "page:index.html" msgid "REA case studies." msgstr "REA 實際案例。" -#: website/public/index.html:1038 +#: website/public/index.html:1044 msgctxt "page:index.html" msgid "Android · APK analysis" msgstr "Android · APK 分析" -#: website/public/index.html:1039 +#: website/public/index.html:1045 msgctxt "page:index.html" msgid "How an authenticator generates a login code" msgstr "驗證器如何生成登入驗證碼" -#: website/public/index.html:1044 +#: website/public/index.html:1050 msgctxt "page:index.html" msgid "Read the Android case study" msgstr "閱讀Android案例研究" -#: website/public/index.html:1049 +#: website/public/index.html:1055 msgctxt "page:index.html" msgid "Electron · Feature tracing" msgstr "Electron · 功能追蹤" -#: website/public/index.html:1050 +#: website/public/index.html:1056 msgctxt "page:index.html" msgid "How Notion copies text and HTML" msgstr "Notion 如何複製文字和 HTML" -#: website/public/index.html:1055 +#: website/public/index.html:1061 msgctxt "page:index.html" msgid "Read the Notion case study" msgstr "閱讀Notion案例研究" -#: website/public/index.html:1060 +#: website/public/index.html:1066 msgctxt "page:index.html" msgid "Native · Reconstruction" msgstr "原生程式 · 重建" -#: website/public/index.html:1061 +#: website/public/index.html:1067 msgctxt "page:index.html" msgid "DX-Ball's sound-pan calculation" msgstr "DX-Ball 的聲像計算" -#: website/public/index.html:1066 +#: website/public/index.html:1072 msgctxt "page:index.html" msgid "Read the DX-Ball case study" msgstr "閱讀DX-Ball案例研究" -#: website/public/index.html:295 +#: website/public/index.html:301 msgctxt "page:index.html" msgid "Setup options" msgstr "配置方式" -#: website/public/get-started/index.html:201 +#: website/public/get-started/index.html:207 msgctxt "page:get-started/index.html" msgid "" "Set up your computer and coding agent, connect REA, then investigate a small" @@ -12113,7 +12115,7 @@ msgstr "準備好電腦和程式開發助手,連接 REA,再分析一個小 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:205 +#: website/public/get-started/index.html:211 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12123,7 +12125,7 @@ msgstr "第一次使用?按下面四步來。已經有程式開發助手?直 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:214 +#: website/public/get-started/index.html:220 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}1. Prepare your computer{ph1}" @@ -12131,7 +12133,7 @@ msgstr "{ph0}1. 準備電腦{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:215 +#: website/public/get-started/index.html:221 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}2. Choose an agent{ph1}" @@ -12139,7 +12141,7 @@ msgstr "{ph0}2. 選擇程式開發助手{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:216 +#: website/public/get-started/index.html:222 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}3. Connect REA{ph1}" @@ -12147,7 +12149,7 @@ msgstr "{ph0}3. 連接 REA{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:217 +#: website/public/get-started/index.html:223 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}4. Try an investigation{ph1}" @@ -12155,25 +12157,25 @@ msgstr "{ph0}4. 試著分析一個應用程式{ph1}" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:218 +#: website/public/get-started/index.html:224 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Other targets and providers{ph1}" msgstr "{ph0}其他目標和分析工具{ph1}" -#: website/public/get-started/index.html:225 +#: website/public/get-started/index.html:231 msgctxt "page:get-started/index.html" msgid "1. Prepare your computer" msgstr "1. 準備電腦" -#: website/public/get-started/index.html:226 +#: website/public/get-started/index.html:232 msgctxt "page:get-started/index.html" msgid "" "Use the computer where your target files are stored. A local coding agent " "can read those files and run tools for you." msgstr "在存放目標檔案的電腦上操作。本機的程式開發助手可以讀取這些檔案,並幫你執行分析工具。" -#: website/public/get-started/index.html:251 +#: website/public/get-started/index.html:257 msgctxt "page:get-started/index.html" msgid "" "Commands go in the terminal. Prompts labeled “Your coding agent” go in the " @@ -12182,7 +12184,7 @@ msgstr "指令貼到終端機;標著「你的程式開發助手」的提問貼 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:307 +#: website/public/get-started/index.html:313 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download the Node.js installer{ph1} if winget is unavailable." @@ -12193,7 +12195,7 @@ msgstr "如果沒有 winget,可以{ph0}下載 Node.js 安裝程式{ph1}。" #. {ph2}: npx #. {ph3}: npx.cmd #. {ph4}: npm.cmd -#: website/public/get-started/index.html:313 +#: website/public/get-started/index.html:319 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12202,41 +12204,41 @@ msgid "" msgstr "" "如果執行 {ph2} 時 PowerShell 提示{ph0}「此系統上禁止執行指令碼」{ph1},改用 {ph3}。npm 則改用 {ph4}:" -#: website/public/get-started/index.html:411 +#: website/public/get-started/index.html:417 msgctxt "page:get-started/index.html" msgid "Make a working folder for your agent" msgstr "為程式開發助手建一個工作資料夾" -#: website/public/get-started/index.html:412 +#: website/public/get-started/index.html:418 msgctxt "page:get-started/index.html" msgid "In your terminal, make a folder for the exercise, then move into it:" msgstr "在終端機中為練習建一個資料夾,然後進入它:" -#: website/public/get-started/index.html:431 +#: website/public/get-started/index.html:437 msgctxt "page:get-started/index.html" msgid "" "Keep this terminal open for the next step. If you already have a working " "folder, open it instead." msgstr "下一步繼續使用這個終端機。如果已經有工作資料夾,進入那個資料夾即可。" -#: website/public/get-started/index.html:438 +#: website/public/get-started/index.html:444 msgctxt "page:get-started/index.html" msgid "2. Choose a coding agent" msgstr "2. 選擇程式開發助手" -#: website/public/get-started/index.html:439 +#: website/public/get-started/index.html:445 msgctxt "page:get-started/index.html" msgid "" "Your agent is the AI you talk to. REA supplies the inspection tools it uses." " Pick one client below; open its instructions if you haven't used it before." msgstr "你和程式開發助手對話,它呼叫 REA 來分析軟體。從下面選一個用戶端;第一次使用就展開它的安裝步驟。" -#: website/public/get-started/index.html:445 +#: website/public/get-started/index.html:451 msgctxt "page:get-started/index.html" msgid "Codex · use your ChatGPT account" msgstr "Codex · 使用 ChatGPT 帳號" -#: website/public/get-started/index.html:493 +#: website/public/get-started/index.html:499 msgctxt "page:get-started/index.html" msgid "" "Choose “Sign in with ChatGPT”, complete the browser sign-in, then return to " @@ -12245,39 +12247,39 @@ msgstr "選擇「Sign in with ChatGPT」,在瀏覽器中登入後回到終端 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:498 +#: website/public/get-started/index.html:504 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Codex installation and sign-in{ph1}" msgstr "{ph0}Codex 安裝與登入{ph1}" -#: website/public/get-started/index.html:505 +#: website/public/get-started/index.html:511 msgctxt "page:get-started/index.html" msgid "Cursor, Windsurf or VS Code · use an editor" msgstr "Cursor、Windsurf 或 VS Code · 使用編輯器" -#: website/public/get-started/index.html:507 +#: website/public/get-started/index.html:513 msgctxt "page:get-started/index.html" msgid "Install the editor for your operating system and sign in." msgstr "安裝適合你作業系統的編輯器,然後登入。" -#: website/public/get-started/index.html:510 +#: website/public/get-started/index.html:516 msgctxt "page:get-started/index.html" msgid "Open the rea-work folder you made in step 1." msgstr "打開第 1 步建立的 rea-work 資料夾。" -#: website/public/get-started/index.html:529 +#: website/public/get-started/index.html:535 msgctxt "page:get-started/index.html" msgid "Claude Code · use your Claude account" msgstr "Claude Code · 使用 Claude 帳號" -#: website/public/get-started/index.html:530 +#: website/public/get-started/index.html:536 msgctxt "page:get-started/index.html" msgid "Install using the command for your operating system:" msgstr "使用適合你作業系統的安裝指令:" #. {ph0}: claude -#: website/public/get-started/index.html:559 +#: website/public/get-started/index.html:565 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12288,13 +12290,13 @@ msgstr "重新打開終端機,回到工作資料夾並執行 {ph0},按提示 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:564 +#: website/public/get-started/index.html:570 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Claude Code installation and account options{ph1}" msgstr "{ph0}Claude Code 安裝與帳號選項{ph1}" -#: website/public/get-started/index.html:571 +#: website/public/get-started/index.html:577 msgctxt "page:get-started/index.html" msgid "Claude Desktop · use a desktop chat" msgstr "Claude Desktop · 使用桌面聊天應用程式" @@ -12304,7 +12306,7 @@ msgstr "Claude Desktop · 使用桌面聊天應用程式" #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:595 +#: website/public/get-started/index.html:601 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12314,7 +12316,7 @@ msgstr "{ph0}下載 Claude Desktop{ph1} · {ph2}Claude Desktop 連接詳情{ph3} #. {ph0}: opencode #. {ph1}: /connect -#: website/public/get-started/index.html:620 +#: website/public/get-started/index.html:626 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12324,19 +12326,19 @@ msgstr "在工作資料夾裡執行 {ph0}。在聊天框中使用 {ph1} 連接 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:625 +#: website/public/get-started/index.html:631 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}OpenCode installation and model setup{ph1}" msgstr "{ph0}OpenCode 安裝與模型設定{ph1}" -#: website/public/get-started/index.html:632 +#: website/public/get-started/index.html:638 msgctxt "page:get-started/index.html" msgid "All supported clients and setup IDs" msgstr "全部支援的用戶端與 setup ID" #. {ph0}: --client -#: website/public/get-started/index.html:633 +#: website/public/get-started/index.html:639 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12344,12 +12346,12 @@ msgid "" " choosing a client explicitly." msgstr "npm 6.4.0 支援下面這些用戶端。指定用戶端時,在 {ph0} 後填寫對應的 ID。" -#: website/public/get-started/index.html:641 +#: website/public/get-started/index.html:647 msgctxt "page:get-started/index.html" msgid "Client" msgstr "用戶端" -#: website/public/get-started/index.html:642 +#: website/public/get-started/index.html:648 msgctxt "page:get-started/index.html" msgid "Setup ID" msgstr "Setup ID" @@ -12359,7 +12361,7 @@ msgstr "Setup ID" #. {ph2}: trae #. {ph3}: zcode #. {ph4}: dsh -#: website/public/get-started/index.html:717 +#: website/public/get-started/index.html:723 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12377,7 +12379,7 @@ msgstr "" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#released- #. package-and-main" > #. {ph3}: -#: website/public/get-started/index.html:724 +#: website/public/get-started/index.html:730 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12385,13 +12387,13 @@ msgid "" "availability{ph3}" msgstr "{ph0}用戶端設定與疑難排解{ph1} · {ph2}版本支援情況{ph3}" -#: website/public/get-started/index.html:736 +#: website/public/get-started/index.html:742 msgctxt "page:get-started/index.html" msgid "Grok Bot · connect on its hosted computer" msgstr "Grok Bot · 在它的託管電腦上連接" #. {ph0}: rea -#: website/public/get-started/index.html:737 +#: website/public/get-started/index.html:743 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12402,29 +12404,29 @@ msgstr "在 Grok Bot 聊天中,請它新增名為 {ph0} 的自訂 MCP 服務 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:755 +#: website/public/get-started/index.html:761 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Grok Bot connector instructions{ph1}" msgstr "{ph0}Grok Bot 連接器說明{ph1}" -#: website/public/get-started/index.html:765 +#: website/public/get-started/index.html:771 msgctxt "page:get-started/index.html" msgid "3. Connect REA" msgstr "3. 連接 REA" -#: website/public/get-started/index.html:766 +#: website/public/get-started/index.html:772 msgctxt "page:get-started/index.html" msgid "Copy this into your coding agent:" msgstr "把這段話複製給程式設計助手:" -#: website/public/get-started/index.html:810 +#: website/public/get-started/index.html:816 msgctxt "page:get-started/index.html" msgid "For one specific client, add its setup ID:" msgstr "如果只設定一個指定用戶端,附上它的 setup ID:" #. {ph0}: y -#: website/public/get-started/index.html:825 +#: website/public/get-started/index.html:831 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12434,14 +12436,14 @@ msgid "" msgstr "" "如果 npm 詢問是否下載,輸入 {ph0} 後按 Enter。在 REA 的用戶端清單中,用方向鍵移動、空白鍵選擇,然後按 Enter 繼續。" -#: website/public/get-started/index.html:836 +#: website/public/get-started/index.html:842 msgctxt "page:get-started/index.html" msgid "" "MCP is the connection that lets your agent call REA. The skill gives it a " "workflow for investigating software." msgstr "MCP 讓程式開發助手能夠呼叫 REA;skill 則告訴它分析軟體時該怎樣使用這些工具。" -#: website/public/get-started/index.html:840 +#: website/public/get-started/index.html:846 msgctxt "page:get-started/index.html" msgid "" "For the first exercise, you can skip the optional Hopper installation. " @@ -12450,7 +12452,7 @@ msgstr "第一次練習可以跳過可選的 Hopper 安裝。setup 完成後, #. {ph0}: codex #. {ph1}: "healthy": true -#: website/public/get-started/index.html:873 +#: website/public/get-started/index.html:879 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12458,19 +12460,19 @@ msgid "" " Then ask your agent:" msgstr "把 {ph0} 換成你用戶端的 setup ID。檢查通過時會顯示 {ph1}。然後問程式開發助手:" -#: website/public/get-started/index.html:879 +#: website/public/get-started/index.html:885 msgctxt "page:get-started/index.html" msgid "Check that REA is connected and show me which REA tools you can use." msgstr "檢查 REA 是否已連接,並告訴我你能使用哪些 REA 工具。" -#: website/public/get-started/index.html:886 +#: website/public/get-started/index.html:892 msgctxt "page:get-started/index.html" msgid "4. Try your first investigation" msgstr "4. 開始第一次分析" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:887 +#: website/public/get-started/index.html:893 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12481,7 +12483,7 @@ msgstr "" "示例是一個包含六個檔案的 Electron 應用,帶有{ph0}Export notes(匯出筆記){ph1}按鈕。助手無需安裝或啟動 Electron" " 就能檢查程式碼。" -#: website/public/get-started/index.html:894 +#: website/public/get-started/index.html:900 msgctxt "page:get-started/index.html" msgid "Your coding agent" msgstr "你的程式開發助手" @@ -12495,7 +12497,7 @@ msgstr "你的程式開發助手" #. {ph5}: #. {ph6}: -#: website/public/get-started/index.html:904 +#: website/public/get-started/index.html:910 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12507,7 +12509,7 @@ msgstr "" "{ph0}›{ph1}{ph2}下載 {ph3},放進一個新的示例資料夾並解壓。用 REA 找出點選 Export notes 後發生了什麼。展示 " "{ph4} 寫到哪裡、有哪些欄位,以及相關檔案和行號。{ph5}{ph6}{ph7}" -#: website/public/get-started/index.html:918 +#: website/public/get-started/index.html:924 msgctxt "page:get-started/index.html" msgid "Look for a short explanation with file and line references:" msgstr "尋找帶檔案和行號的簡短解釋:" @@ -12516,7 +12518,7 @@ msgstr "尋找帶檔案和行號的簡短解釋:" #. {ph1}: notes.csv #. {ph2}: id #. {ph3}: title -#: website/public/get-started/index.html:920 +#: website/public/get-started/index.html:926 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12527,13 +12529,13 @@ msgstr "按鈕傳送 {ph0} 訊息。主程序把筆記轉換為 CSV,並將 {ph #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:927 +#: website/public/get-started/index.html:933 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Check a prediction in the guided exercise →{ph1}" msgstr "{ph0}跟著練習檢查一個預測 →{ph1}" -#: website/public/get-started/index.html:933 +#: website/public/get-started/index.html:939 msgctxt "page:get-started/index.html" msgid "Download the example yourself, or use your own app" msgstr "自行下載範例,或使用自己的應用程式" @@ -12541,14 +12543,14 @@ msgstr "自行下載範例,或使用自己的應用程式" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:936 +#: website/public/get-started/index.html:942 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download example ZIP{ph1}" msgstr "{ph0}下載示例ZIP{ph1}" #. {ph0}: notes-example -#: website/public/get-started/index.html:944 +#: website/public/get-started/index.html:950 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12557,7 +12559,7 @@ msgid "" msgstr "如果助手不能下載檔案,你也可以手動解壓。把 {ph0} 資料夾的路徑交給它,再問同一個匯出問題。" #. {ph0}: /absolute/path/to/app -#: website/public/get-started/index.html:950 +#: website/public/get-started/index.html:956 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12565,71 +12567,71 @@ msgid "" "relevant files and lines." msgstr "用 REA 檢查 {ph0} 中的應用程式。找出它怎樣匯出資料,並給出相關檔案和行號。" -#: website/public/get-started/index.html:980 +#: website/public/get-started/index.html:986 msgctxt "page:get-started/index.html" msgid "Analyze another kind of software" msgstr "分析其他類型的軟體" -#: website/public/get-started/index.html:981 +#: website/public/get-started/index.html:987 msgctxt "page:get-started/index.html" msgid "" "Choose the section for your target. A provider is the local analysis tool " "REA uses for that kind of software." msgstr "按目標類型展開下面的步驟。Provider 指 REA 分析這類軟體時使用的本機工具。" -#: website/public/get-started/index.html:986 +#: website/public/get-started/index.html:992 msgctxt "page:get-started/index.html" msgid "Native executables and libraries · Hopper, Ghidra or IDA" msgstr "原生執行檔和函式庫 · Hopper、Ghidra 或 IDA" -#: website/public/get-started/index.html:989 +#: website/public/get-started/index.html:995 msgctxt "page:get-started/index.html" msgid "" "Install one analysis tool on the computer running REA. The host is your " "operating system; the target is the program you want to inspect." msgstr "在執行 REA 的電腦上安裝一個分析工具。Host 指你使用的作業系統,target 指要分析的程式。" -#: website/public/get-started/index.html:998 +#: website/public/get-started/index.html:1004 msgctxt "page:get-started/index.html" msgid "Provider" msgstr "分析工具" -#: website/public/get-started/index.html:1007 +#: website/public/get-started/index.html:1013 msgctxt "page:get-started/index.html" msgid "Unavailable" msgstr "不支援" -#: website/public/get-started/index.html:1009 +#: website/public/get-started/index.html:1015 msgctxt "page:get-started/index.html" msgid "Supported distributions" msgstr "支援的發行版" -#: website/public/get-started/index.html:1013 +#: website/public/get-started/index.html:1019 msgctxt "page:get-started/index.html" msgid "x64 · experimental" msgstr "x64 · 實驗性支援" -#: website/public/get-started/index.html:1019 +#: website/public/get-started/index.html:1025 msgctxt "page:get-started/index.html" msgid "Verified profiles" msgstr "已驗證的設定" -#: website/public/get-started/index.html:1020 +#: website/public/get-started/index.html:1026 msgctxt "page:get-started/index.html" msgid "Verified headless profile" msgstr "已驗證的無介面設定" -#: website/public/get-started/index.html:1021 +#: website/public/get-started/index.html:1027 msgctxt "page:get-started/index.html" msgid "See provider guide" msgstr "參閱 provider 指南" -#: website/public/get-started/index.html:1027 +#: website/public/get-started/index.html:1033 msgctxt "page:get-started/index.html" msgid "Hopper · let setup install or connect it" msgstr "Hopper · 透過 setup 安裝或連接" -#: website/public/get-started/index.html:1033 +#: website/public/get-started/index.html:1039 msgctxt "page:get-started/index.html" msgid "" "Choose Hopper in setup and review its separate installation plan. On macOS, " @@ -12639,7 +12641,7 @@ msgstr "" "在 setup 中選擇 Hopper,查看它的獨立安裝計畫。macOS 首次打開 Hopper 時選擇試用模式或啟用授權;Linux 的 setup " "會準備支援的試用版及其專用顯示環境。" -#: website/public/get-started/index.html:1039 +#: website/public/get-started/index.html:1045 msgctxt "page:get-started/index.html" msgid "" "Linux hosts: Ubuntu 24.04+, Fedora 41+, Nobara 44+, Arch Linux, CachyOS or " @@ -12648,7 +12650,7 @@ msgstr "" "Linux 支援 Ubuntu 24.04+、Fedora 41+、Nobara 44+、Arch Linux、CachyOS 和 " "Omarchy。Hopper 是商業軟體,試用版有廠商規定的限制。" -#: website/public/get-started/index.html:1058 +#: website/public/get-started/index.html:1064 msgctxt "page:get-started/index.html" msgid "" "If macOS asks for Automation permission, allow the app that starts REA in " @@ -12659,18 +12661,18 @@ msgstr "如果 macOS 請求自動化權限,在「系統設定 → 隱私權與 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#hopper" #. > #. {ph1}: -#: website/public/get-started/index.html:1063 +#: website/public/get-started/index.html:1069 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Hopper setup and troubleshooting{ph1}" msgstr "{ph0}Hopper 安裝與疑難排解{ph1}" -#: website/public/get-started/index.html:1071 +#: website/public/get-started/index.html:1077 msgctxt "page:get-started/index.html" msgid "Ghidra · install the free analysis tool and Java" msgstr "Ghidra · 安裝免費的分析工具和 Java" -#: website/public/get-started/index.html:1075 +#: website/public/get-started/index.html:1081 msgctxt "page:get-started/index.html" msgid "" "Install a 64-bit JDK 21 or newer, including the Java compiler. Choose the " @@ -12678,7 +12680,7 @@ msgid "" msgstr "安裝包含 Java 編譯器的 64 位元 JDK 21 或更新版本。下載時選擇符合電腦架構的安裝套件。" #. {ph0}: ghidra_…_PUBLIC_….zip -#: website/public/get-started/index.html:1080 +#: website/public/get-started/index.html:1086 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12689,7 +12691,7 @@ msgstr "從 Ghidra 12.1.4 發布頁的 Assets 清單下載並解壓縮 {ph0}。 #. {ph0}: ghidraRun #. {ph1}: ghidraRun.bat #. {ph2}: GHIDRA_INSTALL_DIR -#: website/public/get-started/index.html:1085 +#: website/public/get-started/index.html:1091 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12703,7 +12705,7 @@ msgstr "找到解壓縮後包含 {ph0} 或 {ph1} 的資料夾,把該資料夾 #. href="https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1.4_build" #. > #. {ph3}: -#: website/public/get-started/index.html:1091 +#: website/public/get-started/index.html:1097 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Download a JDK{ph1} · {ph2}Download Ghidra 12.1.4{ph3}" @@ -12711,7 +12713,7 @@ msgstr "{ph0}下載 JDK{ph1} · {ph2}下載 Ghidra 12.1.4{ph3}" #. {ph0}: java.home #. {ph1}: JAVA_HOME -#: website/public/get-started/index.html:1101 +#: website/public/get-started/index.html:1107 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12719,7 +12721,7 @@ msgid "" "second confirms the compiler is installed:" msgstr "檢查 Java。第一條指令會顯示 {ph0},將該資料夾用於 {ph1};第二條確認編譯器已安裝:" -#: website/public/get-started/index.html:1217 +#: website/public/get-started/index.html:1223 msgctxt "page:get-started/index.html" msgid "" "Keep these commands in the same terminal session. Rerun setup after setting " @@ -12734,7 +12736,7 @@ msgstr "在同一個終端機工作階段中執行這些指令。設定路徑後 #. {ph2}: #. {ph3}: -#: website/public/get-started/index.html:1222 +#: website/public/get-started/index.html:1228 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12742,12 +12744,12 @@ msgid "" "guide{ph3}" msgstr "{ph0}Ghidra 設定與架構要求{ph1} · {ph2}Windows Ghidra 指南{ph3}" -#: website/public/get-started/index.html:1235 +#: website/public/get-started/index.html:1241 msgctxt "page:get-started/index.html" msgid "IDA · connect an existing installation" msgstr "IDA · 連接既有安裝" -#: website/public/get-started/index.html:1236 +#: website/public/get-started/index.html:1242 msgctxt "page:get-started/index.html" msgid "" "Use the IDA provider guide to prepare an upstream MCP registration. Choose " @@ -12756,7 +12758,7 @@ msgid "" msgstr "" "按 IDA provider 指南準備上游 MCP 設定。可以連接已打開原始程式的 IDA 介面,或使用建立獨立資料庫的無介面 supervisor。" -#: website/public/get-started/index.html:1241 +#: website/public/get-started/index.html:1247 msgctxt "page:get-started/index.html" msgid "" "Verified profiles include the Windows legacy GUI and headless supervisor, " @@ -12766,7 +12768,7 @@ msgstr "" "已驗證的設定包括 Windows 舊版 GUI 與無介面 supervisor,以及 macOS arm64 上的 IDA Professional " "9.1 無介面 supervisor。可選的原生 GUI 橋接另有版本和平台要求。" -#: website/public/get-started/index.html:1336 +#: website/public/get-started/index.html:1342 msgctxt "page:get-started/index.html" msgid "" "Use the JSON registration file you prepared with the provider guide, then " @@ -12776,13 +12778,13 @@ msgstr "使用按 provider 指南準備好的 JSON 設定檔,再執行 setup #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1340 +#: website/public/get-started/index.html:1346 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}IDA profiles, registration examples and verified platforms{ph1}" msgstr "{ph0}IDA 設定、註冊範例與已驗證平台{ph1}" -#: website/public/get-started/index.html:1348 +#: website/public/get-started/index.html:1354 msgctxt "page:get-started/index.html" msgid "" "Once connected, give your agent the original executable's full path and name" @@ -12791,128 +12793,128 @@ msgstr "連接後,把原始執行檔的完整路徑和分析工具名稱告訴 #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1360 +#: website/public/get-started/index.html:1366 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Follow a native analysis example{ph1}" msgstr "{ph0}跟著範例分析原生程式{ph1}" -#: website/public/get-started/index.html:1365 +#: website/public/get-started/index.html:1371 msgctxt "page:get-started/index.html" msgid "Websites, Android, .NET, firmware and other targets" msgstr "網站、Android、.NET、韌體及其他目標" -#: website/public/get-started/index.html:1368 +#: website/public/get-started/index.html:1374 msgctxt "page:get-started/index.html" msgid "" "Open the guide for the target you have. Each guide gives the additional " "tools, supported hosts and first command." msgstr "打開對應目標的指南,其中會列出額外工具、支援的平台和第一條分析指令。" -#: website/public/get-started/index.html:1376 +#: website/public/get-started/index.html:1382 msgctxt "page:get-started/index.html" msgid "Target" msgstr "目標" -#: website/public/get-started/index.html:1377 +#: website/public/get-started/index.html:1383 msgctxt "page:get-started/index.html" msgid "Tools to prepare" msgstr "需要準備的工具" -#: website/public/get-started/index.html:1378 +#: website/public/get-started/index.html:1384 msgctxt "page:get-started/index.html" msgid "Guide" msgstr "指南" -#: website/public/get-started/index.html:1383 +#: website/public/get-started/index.html:1389 msgctxt "page:get-started/index.html" msgid "JavaScript / Electron" msgstr "JavaScript / Electron" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:1385 -#: website/public/get-started/index.html:1390 -#: website/public/get-started/index.html:1395 -#: website/public/get-started/index.html:1405 -#: website/public/get-started/index.html:1415 -#: website/public/get-started/index.html:1425 -#: website/public/get-started/index.html:1435 -#: website/public/get-started/index.html:1445 -#: website/public/get-started/index.html:1455 -#: website/public/get-started/index.html:1465 -#: website/public/get-started/index.html:1475 -#: website/public/get-started/index.html:1485 -#: website/public/get-started/index.html:1495 -#: website/public/get-started/index.html:1505 -#: website/public/get-started/index.html:1515 -#: website/public/get-started/index.html:1525 +#: website/public/get-started/index.html:1391 +#: website/public/get-started/index.html:1396 +#: website/public/get-started/index.html:1401 +#: website/public/get-started/index.html:1411 +#: website/public/get-started/index.html:1421 +#: website/public/get-started/index.html:1431 +#: website/public/get-started/index.html:1441 +#: website/public/get-started/index.html:1451 +#: website/public/get-started/index.html:1461 +#: website/public/get-started/index.html:1471 +#: website/public/get-started/index.html:1481 +#: website/public/get-started/index.html:1491 +#: website/public/get-started/index.html:1501 +#: website/public/get-started/index.html:1511 +#: website/public/get-started/index.html:1521 +#: website/public/get-started/index.html:1531 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Open guide{ph1}" msgstr "{ph0}查看指南{ph1}" -#: website/public/get-started/index.html:1388 +#: website/public/get-started/index.html:1394 msgctxt "page:get-started/index.html" msgid "Website" msgstr "網站" -#: website/public/get-started/index.html:1393 +#: website/public/get-started/index.html:1399 msgctxt "page:get-started/index.html" msgid ".NET / Flutter / packages" msgstr ".NET / Flutter / 軟體套件" -#: website/public/get-started/index.html:1403 +#: website/public/get-started/index.html:1409 msgctxt "page:get-started/index.html" msgid "Android APK" msgstr "Android APK" -#: website/public/get-started/index.html:1413 +#: website/public/get-started/index.html:1419 msgctxt "page:get-started/index.html" msgid "Android device" msgstr "Android 裝置" -#: website/public/get-started/index.html:1423 +#: website/public/get-started/index.html:1429 msgctxt "page:get-started/index.html" msgid "Android resources" msgstr "Android 資源" -#: website/public/get-started/index.html:1433 +#: website/public/get-started/index.html:1439 msgctxt "page:get-started/index.html" msgid "JEB project" msgstr "JEB 專案" -#: website/public/get-started/index.html:1443 +#: website/public/get-started/index.html:1449 msgctxt "page:get-started/index.html" msgid "Firmware" msgstr "韌體" -#: website/public/get-started/index.html:1453 +#: website/public/get-started/index.html:1459 msgctxt "page:get-started/index.html" msgid "WASM" msgstr "WASM" -#: website/public/get-started/index.html:1483 +#: website/public/get-started/index.html:1489 msgctxt "page:get-started/index.html" msgid "ELF / Linux crash" msgstr "ELF / Linux 當機記錄" -#: website/public/get-started/index.html:1493 +#: website/public/get-started/index.html:1499 msgctxt "page:get-started/index.html" msgid "HAR / SAZ / mitmproxy" msgstr "HAR / SAZ / mitmproxy" -#: website/public/get-started/index.html:1503 +#: website/public/get-started/index.html:1509 msgctxt "page:get-started/index.html" msgid "PCAP / PCAPNG" msgstr "PCAP / PCAPNG" -#: website/public/get-started/index.html:1513 +#: website/public/get-started/index.html:1519 msgctxt "page:get-started/index.html" msgid "Logic signals" msgstr "邏輯訊號" -#: website/public/get-started/index.html:1523 +#: website/public/get-started/index.html:1529 msgctxt "page:get-started/index.html" msgid "Process behavior" msgstr "程序行為" @@ -12928,7 +12930,7 @@ msgstr "程序行為" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/get-started/index.html:1535 +#: website/public/get-started/index.html:1541 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12938,18 +12940,18 @@ msgstr "" "{ph0}Flutter 指南{ph1} · {ph2}軟體套件與資源{ph3} · {ph4}EVM 位元碼{ph5} · " "{ph6}全部分析指南{ph7}" -#: website/public/get-started/index.html:1555 +#: website/public/get-started/index.html:1561 msgctxt "page:get-started/index.html" msgid "Use REA from a terminal" msgstr "在終端機中使用 REA" -#: website/public/get-started/index.html:1557 +#: website/public/get-started/index.html:1563 msgctxt "page:get-started/index.html" msgid "CLI commands, global installation and curl" msgstr "CLI 指令、全域安裝與 curl" #. {ph0}: main -#: website/public/get-started/index.html:1654 +#: website/public/get-started/index.html:1660 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -12957,26 +12959,26 @@ msgid "" "list. Ghidra must be configured first." msgstr "把 {ph0} 換成目標函式清單中的名稱或位址。先完成 Ghidra 設定再執行。" -#: website/public/get-started/index.html:1658 +#: website/public/get-started/index.html:1664 msgctxt "page:get-started/index.html" msgid "" "On macOS or Linux, you can also use the curl installer after preparing " "Node.js:" msgstr "macOS 或 Linux 準備好 Node.js 後,也可以使用 curl 安裝:" -#: website/public/get-started/index.html:1696 +#: website/public/get-started/index.html:1702 msgctxt "page:get-started/index.html" msgid "" "Use the client check in step 3 with your setup ID. In editor clients, enable" " REA in MCP settings and allow its tools in the agent chat." msgstr "在第 3 步的檢查指令中填寫你的 setup ID。使用編輯器時,在 MCP 設定中啟用 REA,並在助手聊天中允許使用它的工具。" -#: website/public/get-started/index.html:1724 +#: website/public/get-started/index.html:1730 msgctxt "page:get-started/index.html" msgid "Windows, WSL and paths with spaces" msgstr "Windows、WSL 與含空白的路徑" -#: website/public/get-started/index.html:1725 +#: website/public/get-started/index.html:1731 msgctxt "page:get-started/index.html" msgid "" "Use Windows PowerShell for Windows clients and analysis tools. If your agent" @@ -12986,17 +12988,17 @@ msgstr "" "Windows 用戶端和分析工具使用 Windows PowerShell。如果程式開發助手在 WSL 內執行,就在那個 Linux 環境中安裝 " "Node.js 和 REA,並使用 Linux 路徑。無介面 provider 與 REA 在同一個系統環境中執行。" -#: website/public/get-started/index.html:1734 +#: website/public/get-started/index.html:1740 msgctxt "page:get-started/index.html" msgid "Windows setup command:" msgstr "Windows setup 指令:" -#: website/public/get-started/index.html:1751 +#: website/public/get-started/index.html:1757 msgctxt "page:get-started/index.html" msgid "Update or remove REA" msgstr "更新或移除 REA" -#: website/public/get-started/index.html:1752 +#: website/public/get-started/index.html:1758 msgctxt "page:get-started/index.html" msgid "" "To refresh your agent connection, run the latest setup command again, review" @@ -13005,7 +13007,7 @@ msgstr "要更新程式開發助手的連接,重新執行最新版 setup,查 #. {ph0}: rea update #. {ph1}: npx rea-agents@latest uninstall -#: website/public/get-started/index.html:1770 +#: website/public/get-started/index.html:1776 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13017,52 +13019,52 @@ msgstr "全域安裝的 CLI 用 {ph0} 更新。使用 {ph1} 移除 REA 的用戶 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#diagnose- #. update-and-remove" > #. {ph1}: -#: website/public/get-started/index.html:1776 +#: website/public/get-started/index.html:1782 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Update and uninstall details{ph1}" msgstr "{ph0}更新與解除安裝詳情{ph1}" -#: website/public/get-started/index.html:322 +#: website/public/get-started/index.html:328 msgctxt "page:get-started/index.html" msgid "Copy Windows REA setup command" msgstr "複製 Windows REA setup 指令" -#: website/public/get-started/index.html:419 -#: website/public/get-started/index.html:450 -#: website/public/get-started/index.html:464 -#: website/public/get-started/index.html:482 -#: website/public/get-started/index.html:534 -#: website/public/get-started/index.html:548 -#: website/public/get-started/index.html:580 -#: website/public/get-started/index.html:609 -#: website/public/get-started/index.html:744 -#: website/public/get-started/index.html:799 -#: website/public/get-started/index.html:814 -#: website/public/get-started/index.html:862 -#: website/public/get-started/index.html:1047 -#: website/public/get-started/index.html:1109 -#: website/public/get-started/index.html:1132 -#: website/public/get-started/index.html:1156 -#: website/public/get-started/index.html:1204 -#: website/public/get-started/index.html:1279 -#: website/public/get-started/index.html:1305 -#: website/public/get-started/index.html:1322 -#: website/public/get-started/index.html:1643 -#: website/public/get-started/index.html:1665 -#: website/public/get-started/index.html:1738 -#: website/public/get-started/index.html:1759 +#: website/public/get-started/index.html:425 +#: website/public/get-started/index.html:456 +#: website/public/get-started/index.html:470 +#: website/public/get-started/index.html:488 +#: website/public/get-started/index.html:540 +#: website/public/get-started/index.html:554 +#: website/public/get-started/index.html:586 +#: website/public/get-started/index.html:615 +#: website/public/get-started/index.html:750 +#: website/public/get-started/index.html:805 +#: website/public/get-started/index.html:820 +#: website/public/get-started/index.html:868 +#: website/public/get-started/index.html:1053 +#: website/public/get-started/index.html:1115 +#: website/public/get-started/index.html:1138 +#: website/public/get-started/index.html:1162 +#: website/public/get-started/index.html:1210 +#: website/public/get-started/index.html:1285 +#: website/public/get-started/index.html:1311 +#: website/public/get-started/index.html:1328 +#: website/public/get-started/index.html:1649 +#: website/public/get-started/index.html:1671 +#: website/public/get-started/index.html:1744 +#: website/public/get-started/index.html:1765 msgctxt "page:get-started/index.html" msgid "Copy command" msgstr "複製指令" -#: website/public/get-started/index.html:895 +#: website/public/get-started/index.html:901 msgctxt "page:get-started/index.html" msgid "Copy Notes investigation prompt" msgstr "複製筆記調查提示" #. {ph0}: sudo apt install curl unzip -#: website/public/get-started/index.html:362 +#: website/public/get-started/index.html:368 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13070,12 +13072,12 @@ msgid "" "{ph0}; on other distributions, use your package manager." msgstr "如果沒有 curl 和 unzip,先安裝它們。Debian 或 Ubuntu 使用 {ph0};其他發行版使用對應的套件管理工具。" -#: website/public/get-started/index.html:381 +#: website/public/get-started/index.html:387 msgctxt "page:get-started/index.html" msgid "Close the terminal, open it again, then:" msgstr "關閉終端機,重新打開,再執行:" -#: website/public/get-started/index.html:511 +#: website/public/get-started/index.html:517 msgctxt "page:get-started/index.html" msgid "" "Open its AI chat and choose Agent mode. In Windsurf or Devin Desktop, open " @@ -13090,7 +13092,7 @@ msgstr "" #. {ph3}: #. {ph4}: #. {ph5}: -#: website/public/get-started/index.html:517 +#: website/public/get-started/index.html:523 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13100,19 +13102,19 @@ msgstr "" "{ph0}Cursor 安裝{ph1} · {ph2}Windsurf / Devin Desktop 安裝{ph3} · {ph4}VS Code 與" " Copilot 設定{ph5}" -#: website/public/get-started/index.html:605 +#: website/public/get-started/index.html:611 msgctxt "page:get-started/index.html" msgid "OpenCode · choose an AI model" msgstr "OpenCode · 選擇 AI 模型" -#: website/public/get-started/index.html:1263 +#: website/public/get-started/index.html:1269 msgctxt "page:get-started/index.html" msgid "Prepare the IDA registration file" msgstr "準備 IDA 設定檔" #. {ph0}: ida-mcp.json #. {ph1}: .txt -#: website/public/get-started/index.html:1264 +#: website/public/get-started/index.html:1270 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13126,7 +13128,7 @@ msgstr "" #. {ph0}: idb_open #. {ph1}: idb_list #. {ph2}: idb_close -#: website/public/get-started/index.html:1271 +#: website/public/get-started/index.html:1277 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13137,7 +13139,7 @@ msgstr "如果使用提供 {ph0}、{ph1} 和 {ph2} 的無介面 supervisor,檔 #. {ph0}: command #. {ph1}: args #. {ph2}: env -#: website/public/get-started/index.html:1294 +#: website/public/get-started/index.html:1300 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13148,22 +13150,22 @@ msgstr "" "如果連接舊版 1.4.0 GUI 服務,把可用的 {ph0}、{ph1} 和可選的 {ph2} 複製到檔案中。先在 IDA " "中打開原始程式並啟動上游外掛,再讓 REA 分析。" -#: website/public/get-started/index.html:1463 +#: website/public/get-started/index.html:1469 msgctxt "page:get-started/index.html" msgid "SQLite database" msgstr "SQLite 資料庫" -#: website/public/get-started/index.html:1473 +#: website/public/get-started/index.html:1479 msgctxt "page:get-started/index.html" msgid "EVM bytecode" msgstr "EVM 位元碼" -#: website/public/get-started/index.html:446 +#: website/public/get-started/index.html:452 msgctxt "page:get-started/index.html" msgid "Install Codex using the command for your operating system:" msgstr "使用適合你作業系統的指令安裝 Codex:" -#: website/public/get-started/index.html:475 +#: website/public/get-started/index.html:481 msgctxt "page:get-started/index.html" msgid "" "After installation, reopen your terminal and return to the working folder. " @@ -13172,7 +13174,7 @@ msgstr "安裝後,重新打開終端機並回到工作資料夾,再啟動 Co #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:336 +#: website/public/get-started/index.html:342 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13181,12 +13183,12 @@ msgid "" msgstr "" "首次安裝時,下載 {ph0}Node.js 24 LTS 的 macOS 安裝套件(.pkg){ph1},打開並按提示安裝,然後重新打開終端機。" -#: website/public/get-started/index.html:343 +#: website/public/get-started/index.html:349 msgctxt "page:get-started/index.html" msgid "Already use Homebrew?" msgstr "已經在使用 Homebrew?" -#: website/public/get-started/index.html:572 +#: website/public/get-started/index.html:578 msgctxt "page:get-started/index.html" msgid "" "Install Claude Desktop on Windows or macOS and sign in. Quit it completely, " @@ -13196,7 +13198,7 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/get-started/index.html:591 +#: website/public/get-started/index.html:597 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13204,7 +13206,7 @@ msgid "" "in step 3{ph1}." msgstr "查看並確認計畫,重新打開 Claude,再{ph0}按第 3 步檢查連接{ph1}。" -#: website/public/get-started/index.html:1168 +#: website/public/get-started/index.html:1174 msgctxt "page:get-started/index.html" msgid "" "Replace both paths with your existing installations. For a fresh macOS or " @@ -13214,12 +13216,12 @@ msgstr "" "把兩個路徑換成你已有的安裝位置。如果剛在 macOS 或 Linux arm64 上解壓縮 " "Ghidra,先為這台電腦編譯原生反編譯器,再繼續下面的步驟。" -#: website/public/get-started/index.html:1174 +#: website/public/get-started/index.html:1180 msgctxt "page:get-started/index.html" msgid "Build Ghidra's native decompiler" msgstr "編譯 Ghidra 的原生反編譯器" -#: website/public/get-started/index.html:1175 +#: website/public/get-started/index.html:1181 msgctxt "page:get-started/index.html" msgid "" "On macOS, the build needs Xcode Command Line Tools, make and bison. Use the " @@ -13230,7 +13232,7 @@ msgstr "macOS 編譯需要 Xcode Command Line Tools、make 和 bison。選擇符 #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#missing- #. macos-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1180 +#: website/public/get-started/index.html:1186 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Intel{ph1}" @@ -13240,7 +13242,7 @@ msgstr "{ph0}macOS · Intel{ph1}" #. href="https://github.com/morluto/rea/blob/main/docs/installation.md#macos- #. arm64-native-decompiler" > #. {ph1}: -#: website/public/get-started/index.html:1186 +#: website/public/get-started/index.html:1192 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}macOS · Apple Silicon{ph1}" @@ -13250,19 +13252,19 @@ msgstr "{ph0}macOS · Apple Silicon{ph1}" #. href="https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_12.1.4_build/GhidraDocs/GettingStarted.md#building- #. native-components" > #. {ph1}: -#: website/public/get-started/index.html:1192 +#: website/public/get-started/index.html:1198 #, python-brace-format msgctxt "page:get-started/index.html" msgid "{ph0}Linux arm64 · native build instructions{ph1}" msgstr "{ph0}Linux arm64 · 原生元件編譯說明{ph1}" -#: website/public/get-started/index.html:1200 +#: website/public/get-started/index.html:1206 msgctxt "page:get-started/index.html" msgid "Then check Ghidra and save its paths for your client:" msgstr "然後檢查 Ghidra,並為用戶端儲存這些路徑:" #. {ph0}: 200 + 10% -#: website/public/index.html:351 +#: website/public/index.html:357 #, python-brace-format msgctxt "page:index.html" msgid "Why does Calculator give 220 for {ph0}?" @@ -13270,35 +13272,35 @@ msgstr "為什麼計算機中的 {ph0} 得到 220?" #. {ph0}: #. {ph1}: -#: website/public/index.html:214 +#: website/public/index.html:220 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}How it works{ph1}" msgstr "{ph0}如何運作{ph1}" -#: website/public/index.html:230 +#: website/public/index.html:236 msgctxt "page:index.html" msgid "" "Ask your coding agent about an app, a game or a website. REA gives it the " "tools to inspect the code behind the answer." msgstr "向你的程式開發助手提一個關於應用程式、遊戲或網站的問題。REA 為它提供工具,讓它檢查答案背後的程式碼。" -#: website/public/index.html:235 +#: website/public/index.html:241 msgctxt "page:index.html" msgid "Get started" msgstr "開始使用" -#: website/public/index.html:236 +#: website/public/index.html:242 msgctxt "page:index.html" msgid "See an example ↓" msgstr "看一個例子 ↓" -#: website/public/index.html:326 +#: website/public/index.html:332 msgctxt "page:index.html" msgid "How it works" msgstr "如何運作" -#: website/public/index.html:328 +#: website/public/index.html:334 msgctxt "page:index.html" msgid "" "Reverse engineering means learning how software works by inspecting the " @@ -13306,86 +13308,86 @@ msgid "" "and help you rebuild it." msgstr "逆向工程就是透過檢查程式本身,了解軟體如何運作。有了 REA,你的助手可以追蹤程式碼、解釋一個功能,並幫你重新實作它。" -#: website/public/index.html:335 +#: website/public/index.html:341 msgctxt "page:index.html" msgid "Ask about one feature" msgstr "問一個具體功能" -#: website/public/index.html:336 +#: website/public/index.html:342 msgctxt "page:index.html" msgid "Give your agent a program or page and a question." msgstr "給助手一個程式或頁面,再提一個問題。" -#: website/public/index.html:339 +#: website/public/index.html:345 msgctxt "page:index.html" msgid "Inspect the program" msgstr "檢查程式" -#: website/public/index.html:340 +#: website/public/index.html:346 msgctxt "page:index.html" msgid "REA returns code, references and runtime observations." msgstr "REA 回傳程式碼、參照關係和執行時觀察結果。" -#: website/public/index.html:343 +#: website/public/index.html:349 msgctxt "page:index.html" msgid "Explain it, then try a change" msgstr "理解它,再試著修改" -#: website/public/index.html:344 +#: website/public/index.html:350 msgctxt "page:index.html" msgid "Your agent uses the findings to explain or rebuild the feature." msgstr "助手根據這些發現解釋或重新實作這個功能。" -#: website/public/index.html:360 +#: website/public/index.html:366 msgctxt "page:index.html" msgid "Follow the instructions step by step" msgstr "一步步閱讀指令" -#: website/public/index.html:511 +#: website/public/index.html:517 msgctxt "page:index.html" msgid "Ask your agent the same question" msgstr "向助手提同一個問題" -#: website/public/index.html:724 +#: website/public/index.html:730 msgctxt "page:index.html" msgid "" "Start at 6. Add 0.001 each update without a collision, while speed is below " "13." msgstr "起始速度為 6。速度低於 13 時,每次沒有發生碰撞的更新增加 0.001。" -#: website/public/index.html:1029 +#: website/public/index.html:1035 msgctxt "page:index.html" msgid "" "Explore a feature in a released app or game, with code and checked results." msgstr "查看已發行應用程式或遊戲中的一個功能,以及相關程式碼和驗證結果。" -#: website/public/index.html:1040 +#: website/public/index.html:1046 msgctxt "page:index.html" msgid "" "Trace Aegis's six-digit login code through its released APK, then move a " "demo clock to see why it changes every 30 seconds." msgstr "在 Aegis 已發行的 APK 中追蹤六位登入驗證碼,再移動示範時鐘,看看它為什麼每 30 秒變化一次。" -#: website/public/index.html:1051 +#: website/public/index.html:1057 msgctxt "page:index.html" msgid "" "Follow Notion's packaged JavaScript to the system clipboard and see how a " "copy preserves rich block data." msgstr "從 Notion 打包的 JavaScript 追蹤到系統剪貼簿,看看複製如何保留豐富的區塊資料。" -#: website/public/index.html:1062 +#: website/public/index.html:1068 msgctxt "page:index.html" msgid "" "Recover how a ball's position becomes left/right sound in a 1996 Windows " "game." msgstr "還原一款 1996 年 Windows 遊戲如何把球的位置轉成左右聲道的聲音。" -#: website/public/index.html:1093 +#: website/public/index.html:1099 msgctxt "page:index.html" msgid "Choose your target." msgstr "選擇你的目標。" -#: website/public/index.html:1094 +#: website/public/index.html:1100 msgctxt "page:index.html" msgid "" "These guides cover setup and a first investigation for each kind of " @@ -13394,7 +13396,7 @@ msgstr "這些指南介紹各類軟體的環境設定和第一次調查。" #. {ph0}: #. {ph1}: -#: website/public/index.html:566 +#: website/public/index.html:572 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13410,13 +13412,13 @@ msgstr "彙編節選自已安裝的計算器 DLL。思考過程和回答用於 #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1131 +#: website/public/index.html:1137 #, 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:1154 +#: website/public/index.html:1160 msgctxt "page:index.html" msgid "Yes, this one." msgstr "對,就是這個網站。" @@ -13429,7 +13431,7 @@ msgstr "對,就是這個網站。" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:1159 +#: website/public/index.html:1165 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13442,7 +13444,7 @@ msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}示例 prompt · 遊戲重建" #. {ph3}: #. {ph4}: -#: website/public/index.html:1173 +#: website/public/index.html:1179 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13454,18 +13456,18 @@ msgstr "" #. {ph0}: #. {ph1}: -#: website/public/index.html:1182 +#: website/public/index.html:1188 #, 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:1136 +#: website/public/index.html:1142 msgctxt "page:index.html" msgid "Copy website project prompt" msgstr "複製網站專案提示" -#: website/public/index.html:1164 +#: website/public/index.html:1170 msgctxt "page:index.html" msgid "Copy game reconstruction prompt" msgstr "複製遊戲重建提示" @@ -13477,7 +13479,7 @@ msgstr "複製遊戲重建提示" #. {ph4}: #. {ph5}: -#: website/public/index.html:1145 +#: website/public/index.html:1151 #, python-brace-format msgctxt "page:index.html" msgid "" @@ -13487,7 +13489,7 @@ msgstr "{ph0}›{ph1}{ph2}用 REA 檢查 {ph3}。幫我克隆這個網站。{ph4 #. {ph0}: #. {ph1}: -#: website/public/index.html:239 +#: website/public/index.html:245 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Showcases →{ph1} — investigations and interactive demos." @@ -13495,37 +13497,37 @@ msgstr "{ph0}案例展示 →{ph1} — 調查過程與互動示範。" #. {ph0}: #. {ph1}: -#: website/public/index.html:243 +#: website/public/index.html:249 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Blog →{ph1} — methods and reconstruction notes." msgstr "{ph0}部落格 →{ph1} — 方法與軟體重建筆記。" -#: website/public/index.html:350 +#: website/public/index.html:356 msgctxt "page:index.html" msgid "See the full Calculator investigation" msgstr "展開完整的計算機調查" -#: website/public/index.html:1126 +#: website/public/index.html:1132 msgctxt "page:index.html" msgid "Try a larger project" msgstr "試一個更大的專案" -#: website/public/index.html:578 +#: website/public/index.html:584 msgctxt "page:index.html" msgid "" "Let’s try two examples: change a game’s speed, then rebuild Calculator’s % " "button." msgstr "試兩個例子吧:先改變遊戲速度,再重新實作計算機的 % 按鈕。" -#: website/public/index.html:586 +#: website/public/index.html:592 msgctxt "page:index.html" msgid "" "The game gets faster as you run. To rebuild it with a speed control, we " "first need to find out how the speed changes." msgstr "遊戲會隨著奔跑越來越快。要重新實作它並加上速度控制,我們先得弄清速度怎麼變化。" -#: website/public/index.html:592 +#: website/public/index.html:598 msgctxt "page:index.html" msgid "1. Ask about the speed" msgstr "1. 問一問速度" @@ -13538,52 +13540,52 @@ msgstr "1. 問一問速度" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:595 +#: website/public/index.html:601 #, python-brace-format msgctxt "page:index.html" msgid "" "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Dinosaur game" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}範例問題 · 恐龍遊戲" -#: website/public/index.html:618 +#: website/public/index.html:624 msgctxt "page:index.html" msgid "2. Find the speed rule" msgstr "2. 找到速度規則" -#: website/public/index.html:619 +#: website/public/index.html:625 msgctxt "page:index.html" msgid "" "REA lets the agent read the game’s running code. The speed starts at 6 and " "increases a little each update while it is below 13." msgstr "REA 讓助手讀到遊戲正在執行的程式碼。速度從 6 開始,低於 13 時,每次更新都會增加一點。" -#: website/public/index.html:626 +#: website/public/index.html:632 msgctxt "page:index.html" msgid "3. Play the result" msgstr "3. 玩一玩結果" -#: website/public/index.html:627 +#: website/public/index.html:633 msgctxt "page:index.html" msgid "" "We rebuilt that rule in the mini-game below and added a speed slider. Press " "Play, then choose your own speed." msgstr "我們把這條規則用在下面的小遊戲裡,加上了速度滑桿。點擊開始,再選一個自己的速度。" -#: website/public/index.html:692 +#: website/public/index.html:698 msgctxt "page:index.html" msgid "" "Enable JavaScript to play. You can still read the rule and open the source " "code below." msgstr "開啟 JavaScript 就能玩。你仍然可以閱讀規則,並展開下方的原始碼。" -#: website/public/index.html:810 +#: website/public/index.html:816 msgctxt "page:index.html" msgid "" "The % button does different things after + and ×. Let’s find both rules and " "try them in a small calculator." msgstr "% 按鈕在 + 和 × 之後做的事情不同。我們來找出兩條規則,在一個小計算機裡試試。" -#: website/public/index.html:816 +#: website/public/index.html:822 msgctxt "page:index.html" msgid "1. Ask about the % button" msgstr "1. 問一問 % 按鈕" @@ -13596,37 +13598,37 @@ msgstr "1. 問一問 % 按鈕" #. {ph5}: #. {ph6}: #. {ph7}: -#: website/public/index.html:819 +#: website/public/index.html:825 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example question · Calculator" msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}範例問題 · 計算機" -#: website/public/index.html:842 +#: website/public/index.html:848 msgctxt "page:index.html" msgid "2. Find both rules" msgstr "2. 找到兩條規則" -#: website/public/index.html:843 +#: website/public/index.html:849 msgctxt "page:index.html" msgid "" "REA helps the agent read the code behind the % button. It applies two " "different rules:" msgstr "REA 幫助助手讀到 % 按鈕背後的程式碼。它使用兩條不同的規則:" -#: website/public/index.html:864 +#: website/public/index.html:870 msgctxt "page:index.html" msgid "3. Try the % button" msgstr "3. 試試 % 按鈕" -#: website/public/index.html:865 +#: website/public/index.html:871 msgctxt "page:index.html" msgid "We recreated both rules below. Choose + or ×, press %, then press =." msgstr "我們在下面重新實作了兩條規則。選 + 或 ×,按 %,再按 =。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1195 +#: website/public/index.html:1201 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Read the FAQ{ph1} — setup and common questions." @@ -13634,7 +13636,7 @@ msgstr "{ph0}閱讀 FAQ{ph1} — 安裝設定和常見問題。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1198 +#: website/public/index.html:1204 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}Join Discord{ph1} — get help and discuss your investigations." @@ -13642,13 +13644,13 @@ msgstr "{ph0}加入 Discord{ph1} — 尋求協助,交流你的調查。" #. {ph0}: #. {ph1}: -#: website/public/index.html:1202 +#: website/public/index.html:1208 #, python-brace-format msgctxt "page:index.html" msgid "{ph0}GitHub issues{ph1} — report a bug or request a feature." msgstr "{ph0}GitHub issues{ph1} — 回報問題或提出功能需求。" -#: website/public/index.html:296 +#: website/public/index.html:302 msgctxt "page:index.html" msgid "Setup for your platform:" msgstr "依你的平台設定:" @@ -13656,14 +13658,14 @@ msgstr "依你的平台設定:" #. {ph0}: #. {ph1}: curl #. {ph2}: -#: website/public/index.html:307 +#: website/public/index.html:313 #, python-brace-format msgctxt "page:index.html" msgid "Other install options: {ph0}{ph1} →{ph2}" msgstr "其他安裝方式:{ph0}{ph1} →{ph2}" #. {ph0}: rea setup -#: website/public/get-started/index.html:1676 +#: website/public/get-started/index.html:1682 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13676,7 +13678,7 @@ msgstr "依設定提示連接你的助手。如果沒有出現提示,執行 {p #. setup" > #. {ph1}: #. {ph2}: 6.4.0 -#: website/public/get-started/index.html:1247 +#: website/public/get-started/index.html:1253 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13689,7 +13691,7 @@ msgstr "" #. {ph0}: node scripts/rea.mjs doctor --provider ida --json #. {ph1}: node scripts/rea.mjs setup #. {ph2}: npx -#: website/public/get-started/index.html:1256 +#: website/public/get-started/index.html:1262 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13699,7 +13701,7 @@ msgstr "在已建置的原始碼目錄中,執行 {ph0} 和 {ph1},不要使 #. {ph0}: rea #. {ph1}: "$HOME/.local/bin/rea" setup -#: website/public/get-started/index.html:1680 +#: website/public/get-started/index.html:1686 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13708,7 +13710,7 @@ msgid "" msgstr "如果終端找不到 {ph0},請使用安裝器印出的執行檔路徑。在 Linux 上,預設的設定命令是 {ph1}。" #. {ph0}: /absolute/path/to/program -#: website/public/get-started/index.html:1353 +#: website/public/get-started/index.html:1359 #, python-brace-format msgctxt "page:get-started/index.html" msgid "" @@ -13717,89 +13719,89 @@ msgid "" "the code." msgstr "使用 REA 和我已設定的分析工具檢查 {ph0}。列出其中的函式和字串,然後說明處理使用者輸入的部分,並提供程式碼引用。" -#: website/public/blog/index.html:122 website/public/blog/index.html:241 -#: website/public/blog/reverse-engineering-models/index.html:122 -#: website/public/blog/reverse-engineering-models/index.html:880 -#: website/public/blog/touhou-reconstruction/index.html:122 -#: website/public/blog/touhou-reconstruction/index.html:1077 -#: website/public/contributors/index.html:123 -#: website/public/contributors/index.html:1128 -#: website/public/examples/dino-lab/index.html:123 -#: website/public/examples/dino-lab/index.html:472 -#: website/public/faq/index.html:122 website/public/faq/index.html:570 -#: website/public/first-investigation/index.html:122 -#: website/public/first-investigation/index.html:531 -#: website/public/get-started/index.html:122 -#: website/public/get-started/index.html:1814 -#: website/public/guides/browser/index.html:122 -#: website/public/guides/browser/index.html:504 -#: website/public/guides/index.html:122 website/public/guides/index.html:279 -#: website/public/guides/javascript/index.html:122 -#: website/public/guides/javascript/index.html:500 -#: website/public/guides/native/index.html:122 -#: website/public/guides/native/index.html:506 website/public/index.html:124 -#: website/public/index.html:1219 website/public/showcase/aegis/index.html:123 -#: website/public/showcase/aegis/index.html:805 -#: website/public/showcase/ctf/index.html:122 -#: website/public/showcase/ctf/index.html:774 -#: website/public/showcase/dx-ball/index.html:122 -#: website/public/showcase/dx-ball/index.html:782 -#: website/public/showcase/index.html:122 -#: website/public/showcase/index.html:314 -#: website/public/showcase/notion/index.html:122 -#: website/public/showcase/notion/index.html:628 -#: website/public/showcase/th04/index.html:122 -#: website/public/showcase/th04/index.html:797 +#: website/public/blog/index.html:128 website/public/blog/index.html:247 +#: website/public/blog/reverse-engineering-models/index.html:128 +#: website/public/blog/reverse-engineering-models/index.html:886 +#: website/public/blog/touhou-reconstruction/index.html:128 +#: website/public/blog/touhou-reconstruction/index.html:1083 +#: website/public/contributors/index.html:129 +#: website/public/contributors/index.html:1134 +#: website/public/examples/dino-lab/index.html:129 +#: website/public/examples/dino-lab/index.html:478 +#: website/public/faq/index.html:128 website/public/faq/index.html:576 +#: website/public/first-investigation/index.html:128 +#: website/public/first-investigation/index.html:537 +#: website/public/get-started/index.html:128 +#: website/public/get-started/index.html:1820 +#: website/public/guides/browser/index.html:128 +#: website/public/guides/browser/index.html:510 +#: website/public/guides/index.html:128 website/public/guides/index.html:285 +#: website/public/guides/javascript/index.html:128 +#: website/public/guides/javascript/index.html:506 +#: website/public/guides/native/index.html:128 +#: website/public/guides/native/index.html:512 website/public/index.html:130 +#: website/public/index.html:1225 website/public/showcase/aegis/index.html:129 +#: website/public/showcase/aegis/index.html:811 +#: website/public/showcase/ctf/index.html:128 +#: website/public/showcase/ctf/index.html:780 +#: website/public/showcase/dx-ball/index.html:128 +#: website/public/showcase/dx-ball/index.html:788 +#: website/public/showcase/index.html:128 +#: website/public/showcase/index.html:320 +#: website/public/showcase/notion/index.html:128 +#: website/public/showcase/notion/index.html:634 +#: website/public/showcase/th04/index.html:128 +#: website/public/showcase/th04/index.html:803 msgctxt "shared" msgid "Contributors" msgstr "貢獻者" -#: website/public/contributors/index.html:108 +#: website/public/contributors/index.html:114 msgctxt "page:contributors/index.html" msgid "Skip to content" msgstr "跳轉到內容" #. {ph0}: #. {ph1}: -#: website/public/contributors/index.html:200 +#: website/public/contributors/index.html:206 #, python-brace-format msgctxt "page:contributors/index.html" msgid "{ph0}Home{ph1} / Contributors" msgstr "{ph0}首頁{ph1} / 貢獻者" -#: website/public/contributors/index.html:201 +#: website/public/contributors/index.html:207 msgctxt "page:contributors/index.html" msgid "Built together." msgstr "一起打造。" -#: website/public/contributors/index.html:202 +#: website/public/contributors/index.html:208 msgctxt "page:contributors/index.html" msgid "Thank you to everyone who helps make REA better." msgstr "感謝每一位讓 REA 變得更好的人。" -#: website/public/contributors/index.html:203 +#: website/public/contributors/index.html:209 msgctxt "page:contributors/index.html" msgid "" "Code, documentation, tests, translations and ideas — there are many ways to " "contribute." msgstr "程式碼、文件、測試、翻譯和想法——你可以用許多方式參與。" -#: website/public/contributors/index.html:208 +#: website/public/contributors/index.html:214 msgctxt "page:contributors/index.html" msgid "How to contribute" msgstr "如何參與貢獻" -#: website/public/contributors/index.html:213 +#: website/public/contributors/index.html:219 msgctxt "page:contributors/index.html" msgid "Join the conversation →" msgstr "加入討論 →" -#: website/public/contributors/index.html:223 +#: website/public/contributors/index.html:229 msgctxt "page:contributors/index.html" msgid "Contributors" msgstr "貢獻者" -#: website/public/contributors/index.html:225 +#: website/public/contributors/index.html:231 msgctxt "page:contributors/index.html" msgid "Find a contributor" msgstr "尋找貢獻者" @@ -13807,13 +13809,13 @@ msgstr "尋找貢獻者" #. {ph0}: #. {ph1}: #. {ph2}: -#: website/public/contributors/index.html:1112 +#: website/public/contributors/index.html:1118 #, python-brace-format msgctxt "page:contributors/index.html" msgid "From {ph0}GitHub’s contributor list{ph1} · Updated {ph2}." msgstr "來自 {ph0}GitHub 貢獻者名單{ph1} · 更新於 {ph2}。" -#: website/public/contributors/index.html:1117 +#: website/public/contributors/index.html:1123 msgctxt "page:contributors/index.html" msgid "No matching contributors. Try another username." msgstr "找不到符合的貢獻者。試試其他使用者名稱。" @@ -13829,12 +13831,12 @@ msgid "" "Meet the people who contribute code, documentation, tests and ideas to REA." msgstr "認識為 REA 貢獻程式碼、文件、測試和想法的人。" -#: website/public/contributors/index.html:226 +#: website/public/contributors/index.html:232 msgctxt "page:contributors/index.html" msgid "GitHub username" msgstr "GitHub 使用者名稱" -#: website/public/contributors/index.html:1137 +#: website/public/contributors/index.html:1143 msgctxt "page:contributors/index.html" msgid "Back to top" msgstr "回到頂部" diff --git a/website/public/blog/index.html b/website/public/blog/index.html index f8f558a5f14..73171449792 100644 --- a/website/public/blog/index.html +++ b/website/public/blog/index.html @@ -59,6 +59,8 @@ + + @@ -126,7 +128,7 @@ Contributors
-
English
+
English